diff --git a/.gn b/.gn index 0729534a..31de0b27 100644 --- a/.gn +++ b/.gn
@@ -99,7 +99,6 @@ "//extensions/browser/api/cast_channel:*", # 3 errors "//extensions/browser/api/cec_private:*", # 4 errors "//extensions/browser/api/clipboard:*", # 3 errors - "//extensions/browser/api/crash_report_private:*", # 1 error "//extensions/browser/api/declarative:*", # 20 errors "//extensions/browser/api/declarative_content:*", # 2 errors "//extensions/browser/api/declarative_net_request/filter_list_converter:*", # 1
diff --git a/BUILD.gn b/BUILD.gn index e28e693..313199a 100644 --- a/BUILD.gn +++ b/BUILD.gn
@@ -1067,6 +1067,7 @@ "//third_party/blink/public/mojom:mojom_platform_js_data_deps", "//third_party/blink/renderer/core:js_files_for_form_controls_web_tests", "//third_party/catapult/third_party/typ", + "//third_party/hyphenation-patterns:test_data", "//third_party/mesa_headers", "//tools/imagediff", ]
diff --git a/DEPS b/DEPS index 310edd7..a166802 100644 --- a/DEPS +++ b/DEPS
@@ -206,11 +206,11 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': '13fa34606b78b9d01d4c34fcadb5f09de9393818', + 'skia_revision': '82f373c0d7135b213f2d5b10a0b7bf7eade8ad97', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'v8_revision': 'de50d9668fa280e7c845c482315c47bd33efd88d', + 'v8_revision': '5c5a797885ab5f35d91688d8c001976d2322b798', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling swarming_client # and whatever else without interference from each other. @@ -218,7 +218,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. - 'angle_revision': 'b1ac88b6534f0ba01da15000b3dc4afc2b7a1b2b', + 'angle_revision': 'c55cd6b43d55fb0ed6e59a8a5c92be82258f5587', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. @@ -269,7 +269,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling catapult # and whatever else without interference from each other. - 'catapult_revision': 'edbb060595882b5fc4928693493444d26a704447', + 'catapult_revision': '3fc3588cdf370107ad68e67c5e497eeb4faf658c', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libFuzzer # and whatever else without interference from each other. @@ -277,7 +277,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': 'cdba9badd3b34e91bc3ddf4744cf26556ff129f4', + 'devtools_frontend_revision': '1227ffd7958584eb486cb065a50630ae7a06eb27', # 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. @@ -333,7 +333,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. - 'quiche_revision': '34a2680533d9bb39e0f8f191dcd121eda634e3f2', + 'quiche_revision': '5504d2fb54344fdeee2e77ac9b36908abed76c2e', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ios_webkit # and whatever else without interference from each other. @@ -1248,10 +1248,10 @@ Var('chromium_git') + '/external/github.com/cisco/openh264' + '@' + '3dd5b80bc4f172dd82925bb259cb7c82348409c5', 'src/third_party/openscreen/src': - Var('chromium_git') + '/openscreen' + '@' + 'b92a3f35eee8275f5e8bbe97a44072e984f26de4', + Var('chromium_git') + '/openscreen' + '@' + 'a8cdc94e138d9c4ce2157c30c222a9e12f08ec63', 'src/third_party/openxr/src': { - 'url': Var('chromium_git') + '/external/github.com/KhronosGroup/OpenXR-SDK' + '@' + '9e97b73e7dd2bfc07745489d728f6a36665c648f', + 'url': Var('chromium_git') + '/external/github.com/KhronosGroup/OpenXR-SDK' + '@' + '97cfe495bb7a3853266b646d1c79e169387f9c7a', 'condition': 'checkout_openxr', }, @@ -1343,7 +1343,7 @@ 'packages': [ { 'package': 'fuchsia/third_party/aemu/linux-amd64', - 'version': 'MiF_4Vddz5feHjK4r3k0xEUtS7jnq3zwVjdnigmWu3YC' + 'version': 'kSNKixLzCdPhPfzn5a8Sdbbj9YRIyrm_8oIZKZlBjzAC' }, ], 'condition': 'host_os == "linux" and checkout_fuchsia', @@ -1497,7 +1497,7 @@ }, 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + '1d0e7b6bbe1763c0e94c97ef0a9e615240a643c8', + Var('webrtc_git') + '/src.git' + '@' + '7bc3356fbcb9b95ea2c810ae2f3152930d54577b', 'src/third_party/libgifcodec': Var('skia_git') + '/libgifcodec' + '@'+ Var('libgifcodec_revision'), @@ -1555,7 +1555,7 @@ 'packages': [ { 'package': 'skia/tools/goldctl/mac-amd64', - 'version': 'nws_KpUBlR5-sGre16ugsXYgccD6ySMcUkozwiyzoa4C', + 'version': 'PneSzkHF8Nz33sG7ImNPHXJB6xST4vtAsHOBRMwzO6kC', }, ], 'dep_type': 'cipd', @@ -1569,7 +1569,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@615063999dd255b93a3d21a2de0e0e977f4d8055', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@4deb1ed9573dc77388ef895e2d1f4ee6f976e895', 'condition': 'checkout_src_internal', },
diff --git a/PRESUBMIT.py b/PRESUBMIT.py index 78e1544..e43d47e 100644 --- a/PRESUBMIT.py +++ b/PRESUBMIT.py
@@ -367,7 +367,6 @@ '^chrome/browser/supervised_user/', '^chrome/browser/sync_file_system/', '^chrome/browser/sync/', - '^chrome/browser/themes/theme_service.cc', '^chrome/browser/thumbnail/cc/', '^chrome/browser/translate/', '^chrome/browser/ui/',
diff --git a/ash/display/mirror_window_controller.cc b/ash/display/mirror_window_controller.cc index 2caa6e0a..52764de7 100644 --- a/ash/display/mirror_window_controller.cc +++ b/ash/display/mirror_window_controller.cc
@@ -44,6 +44,7 @@ explicit MirroringScreenPositionClient(MirrorWindowController* controller) : controller_(controller) {} + // aura::client::ScreenPositionClient: void ConvertPointToScreen(const aura::Window* window, gfx::PointF* point) override { const aura::Window* root = window->GetRootWindow(); @@ -79,6 +80,16 @@ NOTREACHED(); } + protected: + // aura::client::ScreenPositionClient: + gfx::Point GetRootWindowOriginInScreen( + const aura::Window* root_window) override { + DCHECK(root_window->IsRootWindow()); + const display::Display& display = + controller_->GetDisplayForRootWindow(root_window); + return display.bounds().origin(); + } + private: MirrorWindowController* controller_; // not owned.
diff --git a/ash/display/screen_position_controller.cc b/ash/display/screen_position_controller.cc index 9d96f57..3c89583 100644 --- a/ash/display/screen_position_controller.cc +++ b/ash/display/screen_position_controller.cc
@@ -9,6 +9,7 @@ #include "ash/wm/window_positioning_utils.h" #include "ash/wm/window_properties.h" #include "ash/wm/window_state.h" +#include "ui/aura/client/screen_position_client.h" #include "ui/aura/window.h" #include "ui/aura/window_tree_host.h" #include "ui/display/display.h" @@ -120,4 +121,13 @@ SetBoundsInScreen(window, bounds, display); } +gfx::Point ScreenPositionController::GetRootWindowOriginInScreen( + const aura::Window* root_window) { + DCHECK(root_window->IsRootWindow()); + const display::Display& display = + display::Screen::GetScreen()->GetDisplayNearestWindow( + const_cast<aura::Window*>(root_window)); + return display.bounds().origin(); +} + } // namespace ash
diff --git a/ash/display/screen_position_controller.h b/ash/display/screen_position_controller.h index b4e9fa32..8b8ef40 100644 --- a/ash/display/screen_position_controller.h +++ b/ash/display/screen_position_controller.h
@@ -42,6 +42,11 @@ const gfx::Rect& bounds, const display::Display& display) override; + protected: + // aura::client::ScreenPositionClient: + gfx::Point GetRootWindowOriginInScreen( + const aura::Window* root_window) override; + private: DISALLOW_COPY_AND_ASSIGN(ScreenPositionController); };
diff --git a/ash/login/ui/lock_screen_media_controls_view.cc b/ash/login/ui/lock_screen_media_controls_view.cc index 8c57ea85..34ace38 100644 --- a/ash/login/ui/lock_screen_media_controls_view.cc +++ b/ash/login/ui/lock_screen_media_controls_view.cc
@@ -432,8 +432,12 @@ if (!hide_reason_ && !Shell::Get()->session_controller()->IsScreenLocked()) hide_reason_ = HideReason::kUnlocked; - base::UmaHistogramEnumeration(kMediaControlsHideHistogramName, - *hide_reason_); + // Only record hide reason if there is one. The value could be missing + // when ash shuts down with the media controls. + if (hide_reason_) { + base::UmaHistogramEnumeration(kMediaControlsHideHistogramName, + *hide_reason_); + } } base::PowerMonitor::RemoveObserver(this);
diff --git a/ash/public/cpp/app_list/app_list_features.cc b/ash/public/cpp/app_list/app_list_features.cc index 40337e3b..fe730317 100644 --- a/ash/public/cpp/app_list/app_list_features.cc +++ b/ash/public/cpp/app_list/app_list_features.cc
@@ -41,7 +41,7 @@ const base::Feature kEnableAppListLaunchRecording{ "EnableAppListLaunchRecording", base::FEATURE_DISABLED_BY_DEFAULT}; const base::Feature kLauncherSettingsSearch{"LauncherSettingsSearch", - base::FEATURE_DISABLED_BY_DEFAULT}; + base::FEATURE_ENABLED_BY_DEFAULT}; const base::Feature kEnableFuzzyAppSearch{"EnableFuzzyAppSearch", base::FEATURE_ENABLED_BY_DEFAULT}; const base::Feature kEnableExactMatchForNonLatinLocale{
diff --git a/ash/search_box/search_box_constants.h b/ash/search_box/search_box_constants.h index 96505e0e..21576c3 100644 --- a/ash/search_box/search_box_constants.h +++ b/ash/search_box/search_box_constants.h
@@ -14,6 +14,9 @@ // searchbox, #000 at 87% opacity. constexpr SkColor kDefaultSearchboxColor = gfx::kGoogleGrey200; +constexpr SkColor kDefaultSearchboxPlaceholderTextColor = + SkColorSetARGB(0xDE, 0x00, 0x00, 0x00); + // The horizontal padding of the box layout of the search box. constexpr int kSearchBoxPadding = 12;
diff --git a/ash/search_box/search_box_view_base.cc b/ash/search_box/search_box_view_base.cc index e7af6764..cee24a9 100644 --- a/ash/search_box/search_box_view_base.cc +++ b/ash/search_box/search_box_view_base.cc
@@ -262,7 +262,8 @@ search_icon_ = new views::ImageView(); content_container_->AddChildView(search_icon_); - search_box_->set_placeholder_text_color(search_box_color_); + search_box_->set_placeholder_text_color( + kDefaultSearchboxPlaceholderTextColor); search_box_->set_placeholder_text_draw_flags(gfx::Canvas::TEXT_ALIGN_CENTER); search_box_->SetFontList(search_box_->GetFontList().DeriveWithSizeDelta(2)); search_box_->SetCursorEnabled(is_search_box_active_); @@ -339,8 +340,9 @@ active ? (base::i18n::IsRTL() ? gfx::Canvas::TEXT_ALIGN_RIGHT : gfx::Canvas::TEXT_ALIGN_LEFT) : gfx::Canvas::TEXT_ALIGN_CENTER); - search_box_->set_placeholder_text_color(active ? kZeroQuerySearchboxColor - : search_box_color_); + search_box_->set_placeholder_text_color( + active ? kZeroQuerySearchboxColor + : kDefaultSearchboxPlaceholderTextColor); search_box_->SetCursorEnabled(active); if (active) { @@ -457,11 +459,6 @@ delegate_->ActiveChanged(this); } -void SearchBoxViewBase::SetSearchBoxColor(SkColor color) { - search_box_color_ = - SK_ColorTRANSPARENT == color ? kDefaultSearchboxColor : color; -} - void SearchBoxViewBase::UpdateButtonsVisisbility() { DCHECK(close_button_ && assistant_button_);
diff --git a/ash/search_box/search_box_view_base.h b/ash/search_box/search_box_view_base.h index ccd9302..280fecd1 100644 --- a/ash/search_box/search_box_view_base.h +++ b/ash/search_box/search_box_view_base.h
@@ -128,10 +128,6 @@ // Nofifies the active status change. void NotifyActiveChanged(); - // Sets the search box color. - void SetSearchBoxColor(SkColor color); - SkColor search_box_color() const { return search_box_color_; } - // Updates the visibility of close button. void UpdateButtonsVisisbility(); @@ -206,8 +202,6 @@ bool show_close_button_when_active_ = false; // Whether to show assistant button. bool show_assistant_button_ = false; - // The current search box color. - SkColor search_box_color_ = kDefaultSearchboxColor; views::PropertyChangedSubscription enabled_changed_subscription_ = AddEnabledChangedCallback(
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb index 2fa488f..0cf1611 100644 --- a/ash/strings/ash_strings_hi.xtb +++ b/ash/strings/ash_strings_hi.xtb
@@ -688,7 +688,7 @@ <translation id="7904094684485781019">इस खाते के एडमिन ने एक से ज़्यादा साइन-इन को अस्वीकार कर दिया है.</translation> <translation id="7933084174919150729">Google Assistant सिर्फ़ प्राथमिक प्रोफ़ाइल के लिए उपलब्ध है.</translation> <translation id="79341161159229895"><ph name="FIRST_PARENT_EMAIL" /> और <ph name="SECOND_PARENT_EMAIL" /> खाता संभालते हैं</translation> -<translation id="793716872548410480">क्लिपबोर्ड देखने के लिए, <ph name="SHORTCUT_KEY_NAME" /> + V दबाएं. आपके कॉपी किए गए आखिरी पांच आइटम, क्लिपबोर्ड पर सेव किए जाते हैं.</translation> +<translation id="793716872548410480">क्लिपबोर्ड देखने के लिए, <ph name="SHORTCUT_KEY_NAME" /> + V दबाएं. आपके कॉपी किए गए आखिरी पांच आइटम, क्लिपबोर्ड पर सेव किए गए.</translation> <translation id="7955885781510802139">हाई-कंट्रास्ट मोड</translation> <translation id="7977927628060636163">मोबाइल नेटवर्क खोजे जा रहे हैं...</translation> <translation id="7980780401175799550">Chrome OS पर नेविगेट करने के नए तरीके आज़माएं</translation>
diff --git a/ash/strings/ash_strings_hy.xtb b/ash/strings/ash_strings_hy.xtb index 35739705..8475209 100644 --- a/ash/strings/ash_strings_hy.xtb +++ b/ash/strings/ash_strings_hy.xtb
@@ -492,7 +492,7 @@ <translation id="5901316534475909376">Shift+Esc</translation> <translation id="5909862606227538307">Աշխատասեղանն ակտիվ չէ։</translation> <translation id="5911909173233110115"><ph name="USERNAME" /> (<ph name="MAIL" />)</translation> -<translation id="5915278665499293471">Լիաէկրան ռեժիմում լուսանկարելու համար սեղմեք էկրանի որևէ կետի</translation> +<translation id="5915278665499293471">Լիաէկրան ռեժիմում լուսանկարելու համար սեղմեք էկրանի որևէ կետ</translation> <translation id="5916664084637901428">Միացնել</translation> <translation id="5920710855273935292">Խոսափողի ձայնն անջատված է։</translation> <translation id="594179686076170922">Միացում հեռախոսին...</translation> @@ -550,7 +550,7 @@ <translation id="6490471652906364588">USB-C սարք (աջ միացք)</translation> <translation id="649452524636452238">Խելացի քարտի PIN կոդը</translation> <translation id="6501401484702599040">Էկրանի հեռարձակում <ph name="RECEIVER_NAME" />-ին</translation> -<translation id="6520517963145875092">Լուսանկարելու համար ընտրեք պատուհանը</translation> +<translation id="6520517963145875092">Լուսանկարելու համար ընտրեք պատուհան</translation> <translation id="652139407789908527">Թարմացման ընթացքում էկրանը սովորականից ավելի երկար կմնա անջատված (մինչև մեկ րոպե)։ Մի՛ սեղմեք սնուցման կոճակը, մինչև որ թարմացումը չավարտվի։</translation> <translation id="6528179044667508675">Չանհանգստացնել</translation> <translation id="65320610082834431">Զմայլիկներ</translation> @@ -655,7 +655,7 @@ <translation id="7618774594543487847">Չեզոք</translation> <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation> <translation id="7633755430369750696">Ցուցադրել «Փոխանակում մոտակա սարքերի հետ» գործառույթի կարգավորումները։</translation> -<translation id="7641938616688887143">Ձայնագրել</translation> +<translation id="7641938616688887143">Տեսագրել</translation> <translation id="7642647758716480637">Բացել «<ph name="NETWORK_NAME" />» ցանցի կարգավորումները, <ph name="CONNECTION_STATUS" /></translation> <translation id="7645176681409127223"><ph name="USER_NAME" /> (սեփականատեր)</translation> <translation id="7647488630410863958">Ծանուցումները դիտելու համար ապակողպեք սարքը</translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb index 5272110a..264f29c3 100644 --- a/ash/strings/ash_strings_iw.xtb +++ b/ash/strings/ash_strings_iw.xtb
@@ -123,10 +123,10 @@ <translation id="2126242104232412123">שולחן עבודה חדש</translation> <translation id="2127372758936585790">מטען בעל מתח נמוך</translation> <translation id="2135456203358955318">מגדיל במצב מעוגן</translation> -<translation id="2144487987174258011">הפעל מחדש כדי לעדכן את Adobe Flash Player</translation> +<translation id="2144487987174258011">יש להפעיל מחדש כדי לעדכן את Adobe Flash Player</translation> <translation id="2180011262286780504">מנהל המערכת השבית את האפשרות לצלם את המסך.</translation> <translation id="2208323208084708176">מצב שולחן עבודה מאוחד</translation> -<translation id="2220572644011485463">PIN או סיסמה</translation> +<translation id="2220572644011485463">קוד אימות או סיסמה</translation> <translation id="2222338659135520253">נדרשת כניסה</translation> <translation id="225680501294068881">סורק לאיתור מכשירים...</translation> <translation id="2268130516524549846">Bluetooth מושבת</translation> @@ -369,7 +369,7 @@ <translation id="4544483149666270818">יש לבחור חלון להקלטה</translation> <translation id="4560576029703263363">מופעל</translation> <translation id="4561267230861221837">3G</translation> -<translation id="4565377596337484307">הסתר סיסמה</translation> +<translation id="4565377596337484307">הסתרת סיסמה</translation> <translation id="4570957409596482333">לחצן הקראה</translation> <translation id="4577274620589681794">הזמן חלף · <ph name="LABEL" /></translation> <translation id="4585337515783392668">הפסקת העברה במכשיר לא מוכר</translation> @@ -487,7 +487,7 @@ <translation id="5837036133683224804">הפסקת <ph name="ROUTE_TITLE" /> במכשיר <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">כבוי</translation> <translation id="5876666360658629066">יש להזין קוד גישה להורים</translation> -<translation id="5895138241574237353">הפעל מחדש</translation> +<translation id="5895138241574237353">הפעלה מחדש</translation> <translation id="589817443623831496">סריקת נקודות</translation> <translation id="5901316534475909376">Shift+Esc</translation> <translation id="5909862606227538307">שולחן עבודה וירטואלי לא פעיל.</translation> @@ -581,7 +581,7 @@ <translation id="6752912906630585008">שולחן העבודה <ph name="REMOVED_DESK" /> הוסר ושולב עם שולחן העבודה <ph name="RECEIVE_DESK" /></translation> <translation id="6757237461819837179">מדיה לא מופעלת</translation> <translation id="6777216307882431711">מספק חשמל למכשירים המחוברים ב-USB-C</translation> -<translation id="6790428901817661496">הפעל</translation> +<translation id="6790428901817661496">הפעלה</translation> <translation id="6803622936009808957">לא ניתן היה לשקף מסכים מכיוון שלא נמצאה רזולוציה נתמכת. במקום זאת התצוגה עברה למצב שולחן עבודה מורחב.</translation> <translation id="6818242057446442178">מילה אחת אחורה</translation> <translation id="6820676911989879663">הגיע הזמן להפסקה</translation> @@ -636,14 +636,14 @@ <translation id="742594950370306541">המצלמה נמצאת בשימוש.</translation> <translation id="742608627846767349">בוקר טוב,</translation> <translation id="743058460480092004">המצלמה והמיקרופון נמצאים בשימוש.</translation> -<translation id="7461924472993315131">הצמד</translation> +<translation id="7461924472993315131">הצמדה</translation> <translation id="7466449121337984263">יש לגעת בחיישן</translation> <translation id="7477793887173910789">שליטה במוזיקה, בסרטונים ועוד</translation> <translation id="7497767806359279797">בחירת שפה ומקלדת</translation> <translation id="7526573455193969409">ייתכן שהרשת מנוטרת</translation> <translation id="7536035074519304529">כתובת IP: <ph name="ADDRESS" /></translation> <translation id="7548434653388805669">לילה טוב!</translation> -<translation id="7551643184018910560">הצמד למדף</translation> +<translation id="7551643184018910560">הצמדה למדף</translation> <translation id="7561982940498449837">סגירת התפריט</translation> <translation id="7564874036684306347">העברת חלונות לשולחן עבודה אחר עלולה לגרום להתנהגות בלתי צפויה. @@ -748,7 +748,7 @@ <translation id="8454013096329229812">Wi-Fi מופעל.</translation> <translation id="847056008324733326">הגדרות קנה המידה של התצוגה</translation> <translation id="8473301994082929012"><ph name="ORGANIZATION_NAME" /> <ph name="FEATURE_STATE" /> את <ph name="FEATURE_NAME" />.</translation> -<translation id="8477270416194247200">הקש על Alt+Search או על Shift כדי לבטל.</translation> +<translation id="8477270416194247200">יש להקיש על Alt+Search או על Shift כדי לבטל.</translation> <translation id="8492573885090281069">התצוגה של <ph name="DISPLAY_NAME" /> לא תומכת ברזולוציה <ph name="SPECIFIED_RESOLUTION" />. הרזולוציה שונתה ל-<ph name="FALLBACK_RESOLUTION" />. לשמירת השינויים, יש ללחוץ על 'אישור'. ההגדרות הקודמות ישוחזרו בעוד <ph name="TIMEOUT_SECONDS" />.</translation> <translation id="8513108775083588393">סיבוב אוטומטי</translation> <translation id="8517041960877371778">ייתכן שה-<ph name="DEVICE_TYPE" /> לא ייטען כשהוא פועל.</translation> @@ -834,7 +834,7 @@ <translation id="9215934040295798075">הגדר טפט</translation> <translation id="921989828232331238">הורה נעל את המכשיר שלך להיום</translation> <translation id="9220525904950070496">הסרת חשבון</translation> -<translation id="923686485342484400">הקש פעמיים על Control Shift Q כדי לצאת.</translation> +<translation id="923686485342484400">יש להקיש פעמיים על Control Shift Q כדי לצאת.</translation> <translation id="938963181863597773">אירועים קרובים ביומן שלי</translation> <translation id="945522503751344254"> שליחת משוב</translation> <translation id="98515147261107953">לרוחב</translation>
diff --git a/ash/strings/ash_strings_km.xtb b/ash/strings/ash_strings_km.xtb index 6fb6b2f..7c2dba66 100644 --- a/ash/strings/ash_strings_km.xtb +++ b/ash/strings/ash_strings_km.xtb
@@ -366,7 +366,7 @@ <translation id="4513946894732546136">មតិ</translation> <translation id="4527045527269911712">ឧបករណ៍ប៊្លូធូស "<ph name="DEVICE_NAME" />" ចង់សុំការអនុញ្ញាតដើម្បីភ្ជាប់។</translation> <translation id="453661520163887813"><ph name="TIME" /> ទៀតទើបពេញ</translation> -<translation id="4544483149666270818">ជ្រើសរើសវិនដូណាមួយ ដើម្បីថត</translation> +<translation id="4544483149666270818">ជ្រើសរើសវិនដូណាមួយ ដើម្បីថតវីដេអូ</translation> <translation id="4560576029703263363">បើក</translation> <translation id="4561267230861221837">3G</translation> <translation id="4565377596337484307">លាក់ពាក្យសម្ងាត់</translation> @@ -628,7 +628,7 @@ <translation id="7348093485538360975">ក្តារចុចលើអេក្រង់</translation> <translation id="735745346212279324">VPN ត្រូវបានផ្តាច់</translation> <translation id="7377169924702866686">Caps Lock ត្រូវបានបើក។</translation> -<translation id="7378203170292176219">អូសដើម្បីជ្រើសរើសផ្នែកណាមួយ ដើម្បីថត</translation> +<translation id="7378203170292176219">អូសដើម្បីជ្រើសរើសផ្នែកណាមួយ ដើម្បីថតវីដេអូ</translation> <translation id="7378594059915113390">ការគ្រប់គ្រងមេឌៀ</translation> <translation id="7398254312354928459">បានប្តូរការតភ្ជាប់បណ្តាញ</translation> <translation id="7405710164030118432">ដើម្បីដោះសោឧបករណ៍ សូមបញ្ចូលលេខកូដចូលប្រើប្រាស់របស់មាតាបិតាសម្រាប់ Family Link របស់អ្នក</translation> @@ -655,7 +655,7 @@ <translation id="7618774594543487847">ស្រាល</translation> <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation> <translation id="7633755430369750696">បង្ហាញការកំណត់ការចែករំលែកនៅជិត។</translation> -<translation id="7641938616688887143">ថត</translation> +<translation id="7641938616688887143">ថតវីដេអូ</translation> <translation id="7642647758716480637">បើកការកំណត់សម្រាប់ <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" /></translation> <translation id="7645176681409127223"><ph name="USER_NAME" /> (ម្ចាស់)</translation> <translation id="7647488630410863958">ដោះសោឧបករណ៍ដើម្បីមើលការជូនដំណឹងរបស់អ្នក</translation>
diff --git a/ash/strings/ash_strings_sw.xtb b/ash/strings/ash_strings_sw.xtb index bde57cc..368af43 100644 --- a/ash/strings/ash_strings_sw.xtb +++ b/ash/strings/ash_strings_sw.xtb
@@ -351,7 +351,7 @@ <translation id="4389184120735010762">Umebofya mikato ya kibodi ya kikuzaji kilichoambatishwa. Ungependa kukiwasha?</translation> <translation id="4412944820643904175"><ph name="FEATURE_NAME" /> kimezimwa.</translation> <translation id="4421231901400348175">Kushiriki udhibiti wa skrini yako na <ph name="HELPER_NAME" /> kupitia Usaidizi wa Mbali.</translation> -<translation id="4430019312045809116">Kiwango</translation> +<translation id="4430019312045809116">Kiwango cha sauti</translation> <translation id="4444978951615977024">Samahani! Kagua muunganisho wako</translation> <translation id="4450893287417543264">Usionyeshe tena</translation> <translation id="445864333228800152">Habari za jioni,</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb index 0db4462..c8b925d2 100644 --- a/ash/strings/ash_strings_ta.xtb +++ b/ash/strings/ash_strings_ta.xtb
@@ -628,7 +628,7 @@ <translation id="7348093485538360975">ஸ்கிரீன் கீபோர்ட்</translation> <translation id="735745346212279324">VPN துண்டிக்கப்பட்டது</translation> <translation id="7377169924702866686">Caps Lock இயக்கத்தில் உள்ளது.</translation> -<translation id="7378203170292176219">ரெக்கார்டு செய்யவதற்கான பகுதியைத் தேர்ந்தெடுக்க இழுக்கவும்</translation> +<translation id="7378203170292176219">ரெக்கார்டு செய்வதற்கான பகுதியைத் தேர்ந்தெடுக்க இழுக்கவும்</translation> <translation id="7378594059915113390">மீடியா கட்டுப்பாடுகள்</translation> <translation id="7398254312354928459">நெட்வொர்க் இணைப்பு மாற்றப்பட்டது</translation> <translation id="7405710164030118432">இந்தச் சாதனத்தைத் திறக்க உங்கள் Family Linkகின் முதல்நிலை அணுகல் குறியீட்டை உள்ளிடவும்</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb index 6d6ba79..4c43afd 100644 --- a/ash/strings/ash_strings_te.xtb +++ b/ash/strings/ash_strings_te.xtb
@@ -331,7 +331,7 @@ <translation id="4217571870635786043">డిక్టేషన్</translation> <translation id="4239069858505860023">GPRS</translation> <translation id="4261870227682513959">నోటిఫికేషన్ సెట్టింగ్లను చూపుతుంది. నోటిఫికేషన్లు ఆఫ్ చేయబడి ఉన్నాయి</translation> -<translation id="4267383818855338811">వర్చువల్ మెషీన్ మీ కెమెరాను ఉపయోగిస్తోంది</translation> +<translation id="4267383818855338811">ఒక వర్చువల్ మెషీన్ మీ కెమెరాను ఉపయోగిస్తోంది</translation> <translation id="4269883910223712419">ఈ పరికర నిర్వాహకుడికి వీటిని చేయగల సామర్థ్యం ఉంది:</translation> <translation id="4279490309300973883">మిర్రరింగ్</translation> <translation id="4285498937028063278">అన్పిన్ చేయి</translation> @@ -629,7 +629,7 @@ <translation id="7348093485538360975">ఆన్-స్క్రీన్ కీబోర్డ్</translation> <translation id="735745346212279324">VPN డిస్కనెక్ట్ చేయబడింది</translation> <translation id="7377169924702866686">Caps Lock ఆన్లో ఉంది.</translation> -<translation id="7378203170292176219">రికార్డ్ చేసేందుకు ప్రదేశాన్ని ఎంచుకొవడానికి లాగండి</translation> +<translation id="7378203170292176219">రికార్డ్ చేసేందుకు ప్రదేశాన్ని ఎంచుకోవడానికి లాగండి</translation> <translation id="7378594059915113390">మీడియా నియంత్రణలు</translation> <translation id="7398254312354928459">నెట్వర్క్ కనెక్షన్ మార్చబడింది</translation> <translation id="7405710164030118432">పరికరాన్ని అన్లాక్ చేయడానికి, మీ Family Link తల్లి/తండ్రి యాక్సెస్ కోడ్ను నమోదు చేయండి</translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb index 3b2e56f8..8232c3e5 100644 --- a/ash/strings/ash_strings_vi.xtb +++ b/ash/strings/ash_strings_vi.xtb
@@ -366,7 +366,7 @@ <translation id="4513946894732546136">Phản hồi</translation> <translation id="4527045527269911712">Thiết bị Bluetooth "<ph name="DEVICE_NAME" />"muốn được phép ghép nối.</translation> <translation id="453661520163887813"><ph name="TIME" /> cho đến khi đầy</translation> -<translation id="4544483149666270818">Chọn một cửa sổ để quay</translation> +<translation id="4544483149666270818">Chọn một cửa sổ để ghi hình</translation> <translation id="4560576029703263363">Đang bật</translation> <translation id="4561267230861221837">3G</translation> <translation id="4565377596337484307">Ẩn mật khẩu</translation> @@ -579,7 +579,7 @@ <translation id="6751052314767925245">Do quản trị viên thực thi</translation> <translation id="6751826523481687655">Tính năng theo dõi hiệu suất đang bật</translation> <translation id="6752912906630585008">Đã xóa và hợp nhất Không gian làm việc <ph name="REMOVED_DESK" /> với Không gian làm việc <ph name="RECEIVE_DESK" /></translation> -<translation id="6757237461819837179">Hiện không phát nội dung nghe nhìn nào</translation> +<translation id="6757237461819837179">Không có nội dung nghe nhìn nào đang phát</translation> <translation id="6777216307882431711">Đang cấp nguồn cho các thiết bị USB-C đã kết nối</translation> <translation id="6790428901817661496">Phát</translation> <translation id="6803622936009808957">Không thể phản chiếu màn hình do không tìm thấy độ phân giải được hỗ trợ. Thay vào đó, đã chuyển sang chế độ màn hình mở rộng.</translation> @@ -655,7 +655,7 @@ <translation id="7618774594543487847">Trung tính</translation> <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />°F</translation> <translation id="7633755430369750696">Hiện tùy chọn cài đặt Chia sẻ lân cận.</translation> -<translation id="7641938616688887143">Quay</translation> +<translation id="7641938616688887143">Ghi hình</translation> <translation id="7642647758716480637">Mở phần cài đặt <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" /></translation> <translation id="7645176681409127223"><ph name="USER_NAME" /> (chủ sở hữu)</translation> <translation id="7647488630410863958">Mở khóa thiết bị để xem thông báo của bạn</translation>
diff --git a/ash/strings/ash_strings_zh-HK.xtb b/ash/strings/ash_strings_zh-HK.xtb index 416025b..92941e7 100644 --- a/ash/strings/ash_strings_zh-HK.xtb +++ b/ash/strings/ash_strings_zh-HK.xtb
@@ -687,7 +687,7 @@ <translation id="7904094684485781019">這個帳戶的管理員已禁止多重登入。</translation> <translation id="7933084174919150729">「Google 助理」僅適用於主要設定檔。</translation> <translation id="79341161159229895">帳戶由 <ph name="FIRST_PARENT_EMAIL" /> 和 <ph name="SECOND_PARENT_EMAIL" /> 管理</translation> -<translation id="793716872548410480">按下<ph name="SHORTCUT_KEY_NAME" /> + V 鍵即可查看剪貼簿。您最後複製的 5 項目會儲存至剪貼簿。</translation> +<translation id="793716872548410480">按下<ph name="SHORTCUT_KEY_NAME" /> + V 鍵即可查看剪貼簿。您最後複製的 5 個項目會儲存至剪貼簿。</translation> <translation id="7955885781510802139">高對比模式</translation> <translation id="7977927628060636163">正在搜尋流動網絡…</translation> <translation id="7980780401175799550">試用導覽 Chrome 作業系統的新方式</translation>
diff --git a/base/BUILD.gn b/base/BUILD.gn index 96897c9..d08fb6e 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn
@@ -48,12 +48,8 @@ # file name) is saved. enable_location_source = true - # Whether or not the FROM_HERE macro uses base::Location::Current(). This - # allows the implementation to be reverted if needed while validating its - # replacement base::Location::Current(). On by default in non-official builds - # for testing purposes. - # TODO(https://crbug.com/974061): remove this eventually. - from_here_uses_location_builtins = !is_official_build + # Whether or not the FROM_HERE macro uses base::Location::Current(). + from_here_uses_location_builtins = true # Unsafe developer build. Has developer-friendly features that may weaken or # disable security measures like sandboxing or ASLR. @@ -3382,6 +3378,10 @@ if (is_win) { sources += [ "allocator/winheap_stubs_win_unittest.cc" ] } + + if (use_allocator == "partition") { + sources += [ "allocator/allocator_shim_default_dispatch_to_partition_alloc_unittest.cc" ] + } } if (enable_base_tracing) {
diff --git a/base/allocator/allocator_shim_default_dispatch_to_partition_alloc.cc b/base/allocator/allocator_shim_default_dispatch_to_partition_alloc.cc index 1b18beb7..deb3c81 100644 --- a/base/allocator/allocator_shim_default_dispatch_to_partition_alloc.cc +++ b/base/allocator/allocator_shim_default_dispatch_to_partition_alloc.cc
@@ -10,6 +10,10 @@ #include "base/no_destructor.h" #include "build/build_config.h" +#if defined(OS_POSIX) +#include <malloc.h> +#endif + namespace { // We would usually make g_root a static local variable, as these are guaranteed @@ -184,6 +188,26 @@ return base::ThreadSafePartitionRoot::GetUsableSize(address); } +class PartitionStatsDumperImpl : public base::PartitionStatsDumper { + public: + PartitionStatsDumperImpl() = default; + + void PartitionDumpTotals( + const char* partition_name, + const base::PartitionMemoryStats* memory_stats) override { + stats_ = *memory_stats; + } + + void PartitionsDumpBucketStats( + const char* partition_name, + const base::PartitionBucketMemoryStats*) override {} + + const base::PartitionMemoryStats& stats() const { return stats_; } + + private: + base::PartitionMemoryStats stats_; +}; + } // namespace constexpr AllocatorDispatch AllocatorDispatch::default_dispatch = { @@ -220,10 +244,30 @@ #endif // !defined(OS_APPLE) -#ifdef HAVE_STRUCT_MALLINFO +#if defined(OS_POSIX) SHIM_ALWAYS_EXPORT struct mallinfo mallinfo(void) __THROW { - return {}; + PartitionStatsDumperImpl allocator_dumper; + Allocator().DumpStats("malloc", true, &allocator_dumper); + + PartitionStatsDumperImpl aligned_allocator_dumper; + AlignedAllocator()->DumpStats("posix_memalign", true, + &aligned_allocator_dumper); + + struct mallinfo info = {0}; + info.arena = 0; // Memory *not* allocated with mmap(). + + // Memory allocated with mmap(), aka virtual size. + info.hblks = allocator_dumper.stats().total_mmapped_bytes + + aligned_allocator_dumper.stats().total_mmapped_bytes; + // Resident bytes. + info.hblkhd = allocator_dumper.stats().total_resident_bytes + + aligned_allocator_dumper.stats().total_resident_bytes; + // Allocated bytes. + info.uordblks = allocator_dumper.stats().total_active_bytes + + aligned_allocator_dumper.stats().total_active_bytes; + + return info; } -#endif +#endif // defined(OS_POSIX) } // extern "C"
diff --git a/base/allocator/allocator_shim_default_dispatch_to_partition_alloc_unittest.cc b/base/allocator/allocator_shim_default_dispatch_to_partition_alloc_unittest.cc new file mode 100644 index 0000000..6fdf2e9 --- /dev/null +++ b/base/allocator/allocator_shim_default_dispatch_to_partition_alloc_unittest.cc
@@ -0,0 +1,68 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/allocator/buildflags.h" +#include "base/compiler_specific.h" +#include "build/build_config.h" +#include "testing/gtest/include/gtest/gtest.h" + +#if defined(OS_POSIX) +#include <malloc.h> +#include <stdlib.h> +#endif + +#if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && \ + !defined(MEMORY_TOOL_REPLACES_ALLOCATOR) + +// Platforms on which we override weak libc symbols. +#if defined(OS_LINUX) || defined(OS_CHROMEOS) + +NOINLINE void FreeForTest(void* data) { + free(data); +} + +TEST(PartitionAllocAsMalloc, Mallinfo) { + constexpr int kLargeAllocSize = 10 * 1024 * 1024; + struct mallinfo before = mallinfo(); + void* data = malloc(1000); + ASSERT_TRUE(data); + void* aligned_data; + ASSERT_EQ(0, posix_memalign(&aligned_data, 1024, 1000)); + ASSERT_TRUE(aligned_data); + void* direct_mapped_data = malloc(kLargeAllocSize); + ASSERT_TRUE(direct_mapped_data); + struct mallinfo after_alloc = mallinfo(); + + // Something is reported. + EXPECT_GT(after_alloc.hblks, 0); + EXPECT_GT(after_alloc.hblkhd, 0); + EXPECT_GT(after_alloc.uordblks, 0); + + EXPECT_GT(after_alloc.hblks, kLargeAllocSize); + + // malloc() can reuse memory, so sizes are not necessarily changing, which + // would mean that we need EXPECT_G*E*() rather than EXPECT_GT(). + // + // However since we allocate direct-mapped memory, this increases the total. + EXPECT_GT(after_alloc.hblks, before.hblks); + EXPECT_GT(after_alloc.hblkhd, before.hblkhd); + EXPECT_GT(after_alloc.uordblks, before.uordblks); + + // a simple malloc() / free() pair can be discarded by the compiler (and is), + // making the test fail. It is sufficient to make |FreeForTest()| a NOINLINE + // function for the call to not be eliminated, but this is required. + FreeForTest(data); + FreeForTest(aligned_data); + FreeForTest(direct_mapped_data); + struct mallinfo after_free = mallinfo(); + + EXPECT_LT(after_free.hblks, after_alloc.hblks); + EXPECT_LT(after_free.hblkhd, after_alloc.hblkhd); + EXPECT_LT(after_free.uordblks, after_alloc.uordblks); +} + +#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) + +#endif // BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && \ + // !defined(MEMORY_TOOL_REPLACES_ALLOCATOR)
diff --git a/base/debug/activity_analyzer_unittest.cc b/base/debug/activity_analyzer_unittest.cc index 9e61cb45..74e4212 100644 --- a/base/debug/activity_analyzer_unittest.cc +++ b/base/debug/activity_analyzer_unittest.cc
@@ -163,7 +163,13 @@ } // namespace -TEST_F(ActivityAnalyzerTest, GlobalAnalyzerConstruction) { +// TODO(1061320): Flaky under tsan. +#if defined(THREAD_SANITIZER) +#define MAYBE_GlobalAnalyzerConstruction DISABLED_GlobalAnalyzerConstruction +#else +#define MAYBE_GlobalAnalyzerConstruction GlobalAnalyzerConstruction +#endif +TEST_F(ActivityAnalyzerTest, MAYBE_GlobalAnalyzerConstruction) { GlobalActivityTracker::CreateWithLocalMemory(kMemorySize, 0, "", 3, 0); GlobalActivityTracker::Get()->process_data().SetString("foo", "bar");
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1 index 6485f68..54c3bda 100644 --- a/build/fuchsia/linux.sdk.sha1 +++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@ -0.20201020.1.1 +0.20201020.2.1
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1 index 6485f68..54c3bda 100644 --- a/build/fuchsia/mac.sdk.sha1 +++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@ -0.20201020.1.1 +0.20201020.2.1
diff --git a/cc/animation/transform_operation.cc b/cc/animation/transform_operation.cc index 1bb8996d..cbc222b 100644 --- a/cc/animation/transform_operation.cc +++ b/cc/animation/transform_operation.cc
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include <algorithm> #include <limits> +#include <utility> #include "base/check_op.h" #include "base/notreached.h" @@ -100,6 +100,8 @@ case TransformOperation::TRANSFORM_OPERATION_SCALE: matrix.Scale3d(scale.x, scale.y, scale.z); break; + case TransformOperation::TRANSFORM_OPERATION_SKEWX: + case TransformOperation::TRANSFORM_OPERATION_SKEWY: case TransformOperation::TRANSFORM_OPERATION_SKEW: matrix.Skew(skew.x, skew.y); break; @@ -138,6 +140,8 @@ return base::IsApproximatelyEqual(scale.x, other.scale.x, tolerance) && base::IsApproximatelyEqual(scale.y, other.scale.y, tolerance) && base::IsApproximatelyEqual(scale.z, other.scale.z, tolerance); + case TransformOperation::TRANSFORM_OPERATION_SKEWX: + case TransformOperation::TRANSFORM_OPERATION_SKEWY: case TransformOperation::TRANSFORM_OPERATION_SKEW: return base::IsApproximatelyEqual(skew.x, other.skew.x, tolerance) && base::IsApproximatelyEqual(skew.y, other.skew.y, tolerance); @@ -227,6 +231,8 @@ result->Bake(); break; } + case TransformOperation::TRANSFORM_OPERATION_SKEWX: + case TransformOperation::TRANSFORM_OPERATION_SKEWY: case TransformOperation::TRANSFORM_OPERATION_SKEW: { SkScalar from_x = IsOperationIdentity(from) ? 0 : from->skew.x; SkScalar from_y = IsOperationIdentity(from) ? 0 : from->skew.y; @@ -453,6 +459,8 @@ *bounds = box; return true; case TransformOperation::TRANSFORM_OPERATION_TRANSLATE: + case TransformOperation::TRANSFORM_OPERATION_SKEWX: + case TransformOperation::TRANSFORM_OPERATION_SKEWY: case TransformOperation::TRANSFORM_OPERATION_SKEW: case TransformOperation::TRANSFORM_OPERATION_PERSPECTIVE: case TransformOperation::TRANSFORM_OPERATION_SCALE: {
diff --git a/cc/animation/transform_operation.h b/cc/animation/transform_operation.h index 415a6ab..b09accd 100644 --- a/cc/animation/transform_operation.h +++ b/cc/animation/transform_operation.h
@@ -19,6 +19,8 @@ TRANSFORM_OPERATION_TRANSLATE, TRANSFORM_OPERATION_ROTATE, TRANSFORM_OPERATION_SCALE, + TRANSFORM_OPERATION_SKEWX, + TRANSFORM_OPERATION_SKEWY, TRANSFORM_OPERATION_SKEW, TRANSFORM_OPERATION_PERSPECTIVE, TRANSFORM_OPERATION_MATRIX,
diff --git a/cc/animation/transform_operations.cc b/cc/animation/transform_operations.cc index c5b73d86..2f627f5 100644 --- a/cc/animation/transform_operations.cc +++ b/cc/animation/transform_operations.cc
@@ -7,6 +7,7 @@ #include <stddef.h> #include <algorithm> +#include <utility> #include "cc/base/math_util.h" #include "ui/gfx/animation/tween.h" @@ -108,6 +109,8 @@ return false; continue; case TransformOperation::TRANSFORM_OPERATION_ROTATE: + case TransformOperation::TRANSFORM_OPERATION_SKEWX: + case TransformOperation::TRANSFORM_OPERATION_SKEWY: case TransformOperation::TRANSFORM_OPERATION_SKEW: case TransformOperation::TRANSFORM_OPERATION_PERSPECTIVE: return false; @@ -128,6 +131,8 @@ continue; case TransformOperation::TRANSFORM_OPERATION_ROTATE: case TransformOperation::TRANSFORM_OPERATION_SCALE: + case TransformOperation::TRANSFORM_OPERATION_SKEWX: + case TransformOperation::TRANSFORM_OPERATION_SKEWY: case TransformOperation::TRANSFORM_OPERATION_SKEW: case TransformOperation::TRANSFORM_OPERATION_PERSPECTIVE: return false; @@ -157,6 +162,8 @@ std::max(scale_components.x(), scale_components.y()); break; } + case TransformOperation::TRANSFORM_OPERATION_SKEWX: + case TransformOperation::TRANSFORM_OPERATION_SKEWY: case TransformOperation::TRANSFORM_OPERATION_SKEW: { SkScalar x_component = TanDegrees(operation.skew.x); SkScalar y_component = TanDegrees(operation.skew.y); @@ -252,6 +259,26 @@ decomposed_transforms_.clear(); } +void TransformOperations::AppendSkewX(SkScalar x) { + TransformOperation to_add; + to_add.type = TransformOperation::TRANSFORM_OPERATION_SKEWX; + to_add.skew.x = x; + to_add.skew.y = 0; + to_add.Bake(); + operations_.push_back(to_add); + decomposed_transforms_.clear(); +} + +void TransformOperations::AppendSkewY(SkScalar y) { + TransformOperation to_add; + to_add.type = TransformOperation::TRANSFORM_OPERATION_SKEWY; + to_add.skew.x = 0; + to_add.skew.y = y; + to_add.Bake(); + operations_.push_back(to_add); + decomposed_transforms_.clear(); +} + void TransformOperations::AppendSkew(SkScalar x, SkScalar y) { TransformOperation to_add; to_add.type = TransformOperation::TRANSFORM_OPERATION_SKEW;
diff --git a/cc/animation/transform_operations.h b/cc/animation/transform_operations.h index f0c669c..31d50342 100644 --- a/cc/animation/transform_operations.h +++ b/cc/animation/transform_operations.h
@@ -98,6 +98,8 @@ void AppendTranslate(SkScalar x, SkScalar y, SkScalar z); void AppendRotate(SkScalar x, SkScalar y, SkScalar z, SkScalar degrees); void AppendScale(SkScalar x, SkScalar y, SkScalar z); + void AppendSkewX(SkScalar x); + void AppendSkewY(SkScalar y); void AppendSkew(SkScalar x, SkScalar y); void AppendPerspective(SkScalar depth); void AppendMatrix(const gfx::Transform& matrix);
diff --git a/cc/animation/transform_operations_unittest.cc b/cc/animation/transform_operations_unittest.cc index 9a4a508..bdebd3c4 100644 --- a/cc/animation/transform_operations_unittest.cc +++ b/cc/animation/transform_operations_unittest.cc
@@ -7,6 +7,7 @@ #include <stddef.h> #include <limits> +#include <utility> #include <vector> #include "base/stl_util.h" @@ -41,6 +42,8 @@ EXPECT_FLOAT_EQ(lhs.scale.y, rhs.scale.y); EXPECT_FLOAT_EQ(lhs.scale.z, rhs.scale.z); break; + case TransformOperation::TRANSFORM_OPERATION_SKEWX: + case TransformOperation::TRANSFORM_OPERATION_SKEWY: case TransformOperation::TRANSFORM_OPERATION_SKEW: EXPECT_FLOAT_EQ(lhs.skew.x, rhs.skew.x); EXPECT_FLOAT_EQ(lhs.skew.y, rhs.skew.y); @@ -1793,4 +1796,36 @@ EXPECT_EQ(1UL, transforms.decomposed_transforms_.size()); } +TEST(TransformOperationTest, BlendSkewMismatch) { + TransformOperations from_ops, to_ops, expected_ops; + from_ops.AppendSkewX(0); + from_ops.AppendRotate(0, 0, 1, 0); + to_ops.AppendSkewY(0); + to_ops.AppendRotate(0, 0, 1, 360); + + // Skew types do not match so use matrix interpolation + expected_ops.AppendMatrix(gfx::Transform()); + + TransformOperations blended_ops = to_ops.Blend(from_ops, 0.5); + ASSERT_EQ(blended_ops.size(), 1u); + ExpectTransformOperationEqual(blended_ops.at(0), expected_ops.at(0)); +} + +TEST(TransformOperationTest, BlendSkewMatch) { + TransformOperations from_ops, to_ops, expected_ops; + from_ops.AppendSkew(30, 0); + from_ops.AppendRotate(0, 0, 1, 0); + to_ops.AppendSkew(0, 30); + to_ops.AppendRotate(0, 0, 1, 360); + + // Skew types match so interpolate as a function. + expected_ops.AppendSkew(15, 15); + expected_ops.AppendRotate(0, 0, 1, 180); + + TransformOperations blended_ops = to_ops.Blend(from_ops, 0.5); + ASSERT_EQ(blended_ops.size(), 2u); + ExpectTransformOperationEqual(blended_ops.at(0), expected_ops.at(0)); + ExpectTransformOperationEqual(blended_ops.at(1), expected_ops.at(1)); +} + } // namespace cc
diff --git a/cc/input/input_handler.h b/cc/input/input_handler.h index bb910624..146fdd41 100644 --- a/cc/input/input_handler.h +++ b/cc/input/input_handler.h
@@ -334,7 +334,7 @@ // saved for reporting event latency metrics. It is allowed to pass nullptr as // |event_metrics| in which case the return value would also be nullptr. virtual std::unique_ptr<EventsMetricsManager::ScopedMonitor> - GetScopedEventMetricsMonitor(std::unique_ptr<EventMetrics> event_metrics) = 0; + GetScopedEventMetricsMonitor(const EventMetrics* event_metrics) = 0; virtual ScrollElasticityHelper* CreateScrollElasticityHelper() = 0;
diff --git a/cc/input/threaded_input_handler.cc b/cc/input/threaded_input_handler.cc index 761fd49..5642774c 100644 --- a/cc/input/threaded_input_handler.cc +++ b/cc/input/threaded_input_handler.cc
@@ -807,9 +807,9 @@ std::unique_ptr<EventsMetricsManager::ScopedMonitor> ThreadedInputHandler::GetScopedEventMetricsMonitor( - std::unique_ptr<EventMetrics> event_metrics) { + const EventMetrics* event_metrics) { return compositor_delegate_.GetImplDeprecated().GetScopedEventMetricsMonitor( - std::move(event_metrics)); + event_metrics); } ScrollElasticityHelper* ThreadedInputHandler::CreateScrollElasticityHelper() {
diff --git a/cc/input/threaded_input_handler.h b/cc/input/threaded_input_handler.h index e4f7bd3..c3a7bd6 100644 --- a/cc/input/threaded_input_handler.h +++ b/cc/input/threaded_input_handler.h
@@ -87,8 +87,7 @@ std::unique_ptr<SwapPromiseMonitor> CreateLatencyInfoSwapPromiseMonitor( ui::LatencyInfo* latency) override; std::unique_ptr<EventsMetricsManager::ScopedMonitor> - GetScopedEventMetricsMonitor( - std::unique_ptr<EventMetrics> event_metrics) override; + GetScopedEventMetricsMonitor(const EventMetrics* event_metrics) override; ScrollElasticityHelper* CreateScrollElasticityHelper() override; bool GetScrollOffsetForLayer(ElementId element_id, gfx::ScrollOffset* offset) override;
diff --git a/cc/metrics/events_metrics_manager.cc b/cc/metrics/events_metrics_manager.cc index b4481d3..64c4747 100644 --- a/cc/metrics/events_metrics_manager.cc +++ b/cc/metrics/events_metrics_manager.cc
@@ -14,13 +14,17 @@ namespace cc { namespace { +// A `ScopedMonitor` implementation that takes a callback and runs it upon +// destruction. class ScopedMonitorImpl : public EventsMetricsManager::ScopedMonitor { public: explicit ScopedMonitorImpl(base::OnceClosure done_callback) - : closure_runner_(std::move(done_callback)) {} + : done_callback_runner_(std::move(done_callback)) {} private: - base::ScopedClosureRunner closure_runner_; + // Holds a callback closure that is run automatically when the scoped monitor + // is destroyed. + base::ScopedClosureRunner done_callback_runner_; }; } // namespace @@ -31,20 +35,26 @@ EventsMetricsManager::~EventsMetricsManager() = default; std::unique_ptr<EventsMetricsManager::ScopedMonitor> -EventsMetricsManager::GetScopedMonitor( - std::unique_ptr<EventMetrics> event_metrics) { +EventsMetricsManager::GetScopedMonitor(const EventMetrics* event_metrics) { DCHECK(!active_event_); if (!event_metrics) return nullptr; - active_event_ = std::move(event_metrics); + active_event_ = event_metrics; return std::make_unique<ScopedMonitorImpl>(base::BindOnce( &EventsMetricsManager::OnScopedMonitorEnded, weak_factory_.GetWeakPtr())); } void EventsMetricsManager::SaveActiveEventMetrics() { if (active_event_) { + // TODO(crbug.com/1054009): It is fine to make a copy of active EventMetrics + // object here as we are not going to change it later. However, the plan is + // to add timestamp of when the processing is done to this object. Since end + // of the processing happens after this code, we can't simply make a copy + // here. In that case, here we can just mark the event for saving and do the + // actual copy when the scoped monitor is destroyed which happens after the + // event processing is done. saved_events_.push_back(*active_event_); - active_event_.reset(); + active_event_ = nullptr; } } @@ -55,7 +65,7 @@ } void EventsMetricsManager::OnScopedMonitorEnded() { - active_event_.reset(); + active_event_ = nullptr; } } // namespace cc
diff --git a/cc/metrics/events_metrics_manager.h b/cc/metrics/events_metrics_manager.h index ea2c49f..b485ec2 100644 --- a/cc/metrics/events_metrics_manager.h +++ b/cc/metrics/events_metrics_manager.h
@@ -43,7 +43,7 @@ // scoped monitor indicates the end of event handling. |event_metrics| is // allowed to be nullptr in which case the return value would also be nullptr. std::unique_ptr<ScopedMonitor> GetScopedMonitor( - std::unique_ptr<EventMetrics> event_metrics); + const EventMetrics* event_metrics); // Called by clients when a frame needs to be produced. If any scoped monitor // is active at this time, its corresponding event metrics would be saved. @@ -61,7 +61,7 @@ void OnScopedMonitorEnded(); // Current active EventMetrics, if any. - std::unique_ptr<EventMetrics> active_event_; + const EventMetrics* active_event_ = nullptr; // List of saved event metrics. std::vector<EventMetrics> saved_events_;
diff --git a/cc/metrics/events_metrics_manager_unittest.cc b/cc/metrics/events_metrics_manager_unittest.cc index 327790b..382964c 100644 --- a/cc/metrics/events_metrics_manager_unittest.cc +++ b/cc/metrics/events_metrics_manager_unittest.cc
@@ -79,7 +79,7 @@ for (auto& event : events) { { - auto monitor = manager_.GetScopedMonitor(std::move(event.first)); + auto monitor = manager_.GetScopedMonitor(event.first.get()); if (event.second == Behavior::kSaveInsideScope) manager_.SaveActiveEventMetrics(); // Ending the scope destroys the |monitor|.
diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc index 5ee6866..a8bf833 100644 --- a/cc/trees/layer_tree_host.cc +++ b/cc/trees/layer_tree_host.cc
@@ -254,9 +254,8 @@ } std::unique_ptr<EventsMetricsManager::ScopedMonitor> -LayerTreeHost::GetScopedEventMetricsMonitor( - std::unique_ptr<EventMetrics> event_metrics) { - return events_metrics_manager_.GetScopedMonitor(std::move(event_metrics)); +LayerTreeHost::GetScopedEventMetricsMonitor(const EventMetrics* event_metrics) { + return events_metrics_manager_.GetScopedMonitor(event_metrics); } void LayerTreeHost::ClearEventsMetrics() {
diff --git a/cc/trees/layer_tree_host.h b/cc/trees/layer_tree_host.h index ebb0818f..bfc6b32 100644 --- a/cc/trees/layer_tree_host.h +++ b/cc/trees/layer_tree_host.h
@@ -185,7 +185,7 @@ SwapPromiseManager* GetSwapPromiseManager(); std::unique_ptr<EventsMetricsManager::ScopedMonitor> - GetScopedEventMetricsMonitor(std::unique_ptr<EventMetrics> event_metrics); + GetScopedEventMetricsMonitor(const EventMetrics* event_metrics); void ClearEventsMetrics(); size_t saved_events_metrics_count_for_testing() const {
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc index d74f07b..ade9a0e6 100644 --- a/cc/trees/layer_tree_host_impl.cc +++ b/cc/trees/layer_tree_host_impl.cc
@@ -979,8 +979,8 @@ std::unique_ptr<EventsMetricsManager::ScopedMonitor> LayerTreeHostImpl::GetScopedEventMetricsMonitor( - std::unique_ptr<EventMetrics> event_metrics) { - return events_metrics_manager_.GetScopedMonitor(std::move(event_metrics)); + const EventMetrics* event_metrics) { + return events_metrics_manager_.GetScopedMonitor(event_metrics); } void LayerTreeHostImpl::NotifyInputEvent() {
diff --git a/cc/trees/layer_tree_host_impl.h b/cc/trees/layer_tree_host_impl.h index 9c16b99..a70807f98b 100644 --- a/cc/trees/layer_tree_host_impl.h +++ b/cc/trees/layer_tree_host_impl.h
@@ -284,7 +284,7 @@ std::unique_ptr<SwapPromiseMonitor> CreateLatencyInfoSwapPromiseMonitor( ui::LatencyInfo* latency); std::unique_ptr<EventsMetricsManager::ScopedMonitor> - GetScopedEventMetricsMonitor(std::unique_ptr<EventMetrics> event_metrics); + GetScopedEventMetricsMonitor(const EventMetrics* event_metrics); void NotifyInputEvent(); // BrowserControlsOffsetManagerClient implementation.
diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc index b105f86..ac08839d 100644 --- a/cc/trees/layer_tree_host_unittest.cc +++ b/cc/trees/layer_tree_host_unittest.cc
@@ -8984,11 +8984,12 @@ private: void SimulateEventOnMain() { + std::unique_ptr<EventMetrics> metrics = EventMetrics::Create( + ui::ET_GESTURE_SCROLL_UPDATE, + EventMetrics::ScrollUpdateType::kContinued, base::TimeTicks::Now(), + ui::ScrollInputType::kWheel); auto scoped_event_monitor = - layer_tree_host()->GetScopedEventMetricsMonitor(EventMetrics::Create( - ui::ET_GESTURE_SCROLL_UPDATE, - EventMetrics::ScrollUpdateType::kContinued, base::TimeTicks::Now(), - ui::ScrollInputType::kWheel)); + layer_tree_host()->GetScopedEventMetricsMonitor(metrics.get()); layer_tree_host()->SetNeedsAnimate(); EXPECT_SCOPED(VerifyMainSavedEventsMetricsCountOnMain(1)); }
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn index 204d672..c604cb2 100644 --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn
@@ -810,6 +810,7 @@ "//chrome/browser/download/android:junit_tests", "//chrome/browser/endpoint_fetcher:java", "//chrome/browser/enterprise/util:java", + "//chrome/browser/feedback/android:java", "//chrome/browser/flags:flags_junit_tests", "//chrome/browser/flags:java", "//chrome/browser/fullscreen/android:java", @@ -1272,11 +1273,6 @@ } if (enable_vr || enable_arcore) { - # Desugaring doesn't seem to play nice with deps when there are multiple - # layers of android_library. If A is included in B's deps, and B is included - # in C's deps, desugar can fail to find classes from A. As a workaround, - # have each android_library have duplicate entries in their deps lists. - # See https://crbug.com/860018. chrome_test_xr_java_deps = [ ":chrome_test_util_java", "//base:base_java", @@ -2077,6 +2073,9 @@ "//chrome/browser/version:java", "//components/version_info/android:version_constants_java", ] + if (webview_includes_weblayer) { + deps += [ "//weblayer/browser/java:base_module_java" ] + } } # Target for classes which should be in the base module, even when
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni index ecfb35e..3d6d1de 100644 --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni
@@ -691,7 +691,6 @@ "java/src/org/chromium/chrome/browser/feature_engagement/ScreenshotMonitorDelegate.java", "java/src/org/chromium/chrome/browser/feature_engagement/ScreenshotTabObserver.java", "java/src/org/chromium/chrome/browser/feature_engagement/TrackerFactory.java", - "java/src/org/chromium/chrome/browser/feedback/AsyncFeedbackSource.java", "java/src/org/chromium/chrome/browser/feedback/AsyncFeedbackSourceAdapter.java", "java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java", "java/src/org/chromium/chrome/browser/feedback/ConnectivityChecker.java", @@ -702,7 +701,6 @@ "java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java", "java/src/org/chromium/chrome/browser/feedback/FeedbackContextFeedbackSource.java", "java/src/org/chromium/chrome/browser/feedback/FeedbackReporter.java", - "java/src/org/chromium/chrome/browser/feedback/FeedbackSource.java", "java/src/org/chromium/chrome/browser/feedback/HelpAndFeedbackLauncherImpl.java", "java/src/org/chromium/chrome/browser/feedback/HistogramFeedbackSource.java", "java/src/org/chromium/chrome/browser/feedback/IMEFeedbackSource.java", @@ -710,7 +708,6 @@ "java/src/org/chromium/chrome/browser/feedback/LowEndDeviceFeedbackSource.java", "java/src/org/chromium/chrome/browser/feedback/PermissionFeedbackSource.java", "java/src/org/chromium/chrome/browser/feedback/ProcessIdFeedbackSource.java", - "java/src/org/chromium/chrome/browser/feedback/ScreenshotSource.java", "java/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java", "java/src/org/chromium/chrome/browser/feedback/StaticScreenshotSource.java", "java/src/org/chromium/chrome/browser/feedback/SystemInfoFeedbackSource.java",
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_iw.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_iw.xtb index 2ea1111..c8e82e7 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_iw.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_iw.xtb
@@ -4,7 +4,7 @@ <translation id="1075622780330595106"><ph name="NUMBER_OF_TABS" /> מהכרטיסיות לא היו בשימוש לאחרונה. לסגור אותן?</translation> <translation id="1181037720776840403">הסרה</translation> <translation id="125153950246128346">יש להקיש כדי לראות כרטיסייה אחרת</translation> -<translation id="1657719826150349398">העברת הכרטיסיה למטה</translation> +<translation id="1657719826150349398">העברת הכרטיסייה למטה</translation> <translation id="1869137256605757565">{TABS_COUNT,plural, =1{כרטיסייה אחת (<ph name="TABS_COUNT_ONE" />)}two{<ph name="TABS_COUNT_MANY" /> כרטיסיות}many{<ph name="TABS_COUNT_MANY" /> כרטיסיות}other{<ph name="TABS_COUNT_MANY" /> כרטיסיות}}</translation> <translation id="2277224997687551299">עריכת שם הקבוצה</translation> <translation id="228946090561406413">{TABS_COUNT,plural, =1{הסרת כרטיסייה אחת (<ph name="TABS_COUNT_ONE" />) שנבחרה מהקבוצה.}two{הסרת <ph name="TABS_COUNT_MANY" /> כרטיסיות שנבחרו מהקבוצה.}many{הסרת <ph name="TABS_COUNT_MANY" /> כרטיסיות שנבחרו מהקבוצה.}other{הסרת <ph name="TABS_COUNT_MANY" /> כרטיסיות שנבחרו מהקבוצה.}}</translation> @@ -45,7 +45,7 @@ <translation id="7838146321400849846">{TABS_COUNT,plural, =1{קיבוץ כרטיסייה אחת (<ph name="TABS_COUNT_ONE" />) שנבחרה}two{קיבוץ <ph name="TABS_COUNT_MANY" /> כרטיסיות שנבחרו}many{קיבוץ <ph name="TABS_COUNT_MANY" /> כרטיסיות שנבחרו}other{קיבוץ <ph name="TABS_COUNT_MANY" /> כרטיסיות שנבחרו}}</translation> <translation id="7885132941432959125">העברת הכרטיסייה שמאלה</translation> <translation id="7966321538264951561">סגירת ההצעות.</translation> -<translation id="814503310257431685">הצג הכל</translation> +<translation id="814503310257431685">הצגת הכול</translation> <translation id="8205266828577616993">העברת הכרטיסיה למעלה</translation> <translation id="8304833501377495048">לא להציג שוב את שורת הכרטיסיות בעתיד?</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{סגירה של כרטיסייה אחת (<ph name="TABS_COUNT_ONE" />) שנבחרה}two{סגירה של <ph name="TABS_COUNT_MANY" /> כרטיסיות שנבחרו}many{סגירה של <ph name="TABS_COUNT_MANY" /> כרטיסיות שנבחרו}other{סגירה של <ph name="TABS_COUNT_MANY" /> כרטיסיות שנבחרו}}</translation>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeStrictMode.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeStrictMode.java index dc9bedb..04c122d5 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeStrictMode.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeStrictMode.java
@@ -211,6 +211,14 @@ threadInterceptor.ignoreExternalMethod(Violation.DETECT_DISK_READ, "android.net.ConnectivityManager#registerDefaultNetworkCallback"); } + + // crbug.com/1133401 + threadInterceptor.ignoreExternalMethod( + Violation.DETECT_DISK_IO, "android.content.ContentResolver#removePeriodicSync"); + threadInterceptor.ignoreExternalMethod( + Violation.DETECT_DISK_IO, "android.content.ContentResolver#setIsSyncable"); + threadInterceptor.ignoreExternalMethod( + Violation.DETECT_DISK_IO, "android.content.ContentResolver#setSyncAutomatically"); } public static void addExemptions(ThreadStrictModeInterceptor.Builder threadInterceptor) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java index 1e358f4..10d61fcc 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
@@ -182,9 +182,12 @@ private final boolean mIsEditable; private final boolean mIsManaged; private boolean mForceEditableForTesting; + private long mDateAdded; + private boolean mRead; private BookmarkItem(BookmarkId id, String title, String url, boolean isFolder, - BookmarkId parentId, boolean isEditable, boolean isManaged) { + BookmarkId parentId, boolean isEditable, boolean isManaged, long dateAdded, + boolean read) { mId = id; mTitle = title; mUrl = url; @@ -192,6 +195,8 @@ mParentId = parentId; mIsEditable = isEditable; mIsManaged = isManaged; + mDateAdded = dateAdded; + mRead = read; } /** @return Title of the bookmark item. */ @@ -244,6 +249,21 @@ return mId; } + /** + * @return The timestamp in milliseconds since epoch that the bookmark is added. + */ + public long getDateAdded() { + return mDateAdded; + } + + /** + * @return Whether the bookmark is read. Only valid for {@link BookmarkType#READING_LIST}. + * Defaults to "false" for other types. + */ + public boolean isRead() { + return mRead; + } + // TODO(https://crbug.com/1019217): Remove when BookmarkModel is stubbed in tests instead. void forceEditableForTesting() { mForceEditableForTesting = true; @@ -919,9 +939,9 @@ @CalledByNative private static BookmarkItem createBookmarkItem(long id, int type, String title, String url, boolean isFolder, long parentId, int parentIdType, boolean isEditable, - boolean isManaged) { + boolean isManaged, long dateAdded, boolean read) { return new BookmarkItem(new BookmarkId(id, type), title, url, isFolder, - new BookmarkId(parentId, parentIdType), isEditable, isManaged); + new BookmarkId(parentId, parentIdType), isEditable, isManaged, dateAdded, read); } @CalledByNative
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/toolbar/CustomTabToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/toolbar/CustomTabToolbar.java index 748528d..984ebce 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/toolbar/CustomTabToolbar.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/features/toolbar/CustomTabToolbar.java
@@ -42,12 +42,8 @@ import org.chromium.base.ThreadUtils; import org.chromium.base.library_loader.LibraryLoader; import org.chromium.base.metrics.RecordUserAction; -import org.chromium.base.supplier.ObservableSupplier; -import org.chromium.base.supplier.Supplier; import org.chromium.base.task.PostTask; import org.chromium.chrome.R; -import org.chromium.chrome.browser.ActivityTabProvider; -import org.chromium.chrome.browser.WindowDelegate; import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.native_page.NativePageFactory; import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; @@ -60,11 +56,8 @@ import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.page_info.ChromePageInfoControllerDelegate; import org.chromium.chrome.browser.page_info.ChromePermissionParamsListBuilderDelegate; -import org.chromium.chrome.browser.profiles.Profile; -import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.TrustedCdn; -import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider; import org.chromium.chrome.browser.toolbar.ToolbarColors; import org.chromium.chrome.browser.toolbar.ToolbarDataProvider; import org.chromium.chrome.browser.toolbar.ToolbarTabController; @@ -83,9 +76,7 @@ import org.chromium.net.GURLUtils; import org.chromium.ui.base.Clipboard; import org.chromium.ui.base.DeviceFormFactor; -import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.interpolators.BakedBezierInterpolator; -import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.text.SpanApplier; import org.chromium.ui.text.SpanApplier.SpanInfo; import org.chromium.ui.util.ColorUtils; @@ -170,7 +161,7 @@ private String mFirstUrl; protected ToolbarDataProvider mToolbarDataProvider; - private LocationBar mLocationBar; + private CustomTabLocationBar mLocationBar; private Runnable mTitleAnimationStarter = new Runnable() { @Override @@ -201,7 +192,7 @@ mLiteStatusView = findViewById(R.id.url_bar_lite_status); mLiteStatusSeparatorView = findViewById(R.id.url_bar_lite_status_separator); mUrlCoordinator = new UrlBarCoordinator((UrlBar) mUrlBar); - mLocationBar = new LocationBarImpl(); + mLocationBar = new CustomTabLocationBar(); mUrlCoordinator.setDelegate(mLocationBar); mUrlCoordinator.setAllowFocus(false); mTitleBar = findViewById(R.id.title_bar); @@ -623,7 +614,10 @@ mCustomActionButtons.setLayoutParams(p); } - private class LocationBarImpl implements LocationBar { + /** + * Custom tab-specific implementation of the LocationBar interface. + */ + public class CustomTabLocationBar implements LocationBar { @Override public void onNativeLibraryReady() { mSecurityButton.setOnClickListener(v -> { @@ -763,12 +757,12 @@ updateStatusIcon(); } - @Override + /** Sets the {@link ToolbarDataProvider} to be used for accessing {@link Toolbar} state. */ public void setToolbarDataProvider(ToolbarDataProvider model) { mToolbarDataProvider = model; } - @Override + /** Gets the {@link ToolbarDataProvider} to be used for accessing {@link Toolbar} state. */ public ToolbarDataProvider getToolbarDataProvider() { return mToolbarDataProvider; } @@ -800,13 +794,6 @@ } @Override - public void initializeControls(WindowDelegate windowDelegate, WindowAndroid windowAndroid, - ActivityTabProvider activityTabProvider, - Supplier<ModalDialogManager> modalDialogManager, - Supplier<ShareDelegate> shareDelegateSupplier, - IncognitoStateProvider incognitoStateProvider) {} - - @Override public void updateStatusIcon() { if (mState == STATE_TITLE_ONLY) return; @@ -838,7 +825,6 @@ return mSecurityButton; } - @Override public void setDefaultTextEditActionModeCallback(ToolbarActionModeCallback callback) { mUrlCoordinator.setActionModeCallback(callback); } @@ -868,9 +854,6 @@ @Override public void updateMicButtonState() {} - @Override - public void setProfileSupplier(ObservableSupplier<Profile> profileSupplier) {} - // Implements FakeBoxDelegate. @Override public boolean isUrlBarFocused() { @@ -889,6 +872,7 @@ return false; } + @Nullable @Override public VoiceRecognitionHandler getVoiceRecognitionHandler() { return null;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/service/DownloadBackgroundTask.java b/chrome/android/java/src/org/chromium/chrome/browser/download/service/DownloadBackgroundTask.java index 31f9f20d..b6414be 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/download/service/DownloadBackgroundTask.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/service/DownloadBackgroundTask.java
@@ -42,7 +42,8 @@ mCurrentTaskType = taskParameters.getExtras().getInt(DownloadTaskScheduler.EXTRA_TASK_TYPE); // The feature value could change during native initialization, store it first. mStartsServiceManagerOnly = - (mCurrentTaskType == DownloadTaskType.DOWNLOAD_AUTO_RESUMPTION_TASK) + (mCurrentTaskType == DownloadTaskType.DOWNLOAD_AUTO_RESUMPTION_TASK + || mCurrentTaskType == DownloadTaskType.DOWNLOAD_LATER_TASK) ? CachedFeatureFlags.isEnabled(ChromeFeatureList.SERVICE_MANAGER_FOR_DOWNLOAD) : PrefetchConfiguration.isServiceManagerForBackgroundPrefetchEnabled(); // Reschedule if minimum battery level is not satisfied.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/DataReductionProxyFirstRunFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/DataReductionProxyFirstRunFragment.java index 9108631f..86fccc0a 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/DataReductionProxyFirstRunFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/DataReductionProxyFirstRunFragment.java
@@ -94,6 +94,9 @@ @Override public void setInitialA11yFocus() { + // Ignore calls before view is created. + if (getView() == null) return; + final View title = getView().findViewById(R.id.title); title.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/DefaultSearchEngineFirstRunFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/DefaultSearchEngineFirstRunFragment.java index f1786dff..fbca549 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/DefaultSearchEngineFirstRunFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/DefaultSearchEngineFirstRunFragment.java
@@ -71,6 +71,9 @@ @Override public void setInitialA11yFocus() { + // Ignore calls before view is created. + if (getView() == null) return; + final View title = getView().findViewById(R.id.chooser_title); title.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFragment.java index 6d49d6d8..baeda336 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFragment.java
@@ -31,9 +31,11 @@ * Set the a11y focus when the fragment is shown on the screen. * * Android ViewPager cannot always assign the correct a11y focus automatically when switching - * between pages. + * between pages. See https://crbug.com/1094064 for more detail. * - * See https://crbug.com/1094064 for more detail. + * Note that this function can be called before views for the fragment is created. To avoid NPE, + * it is suggested to add null checker inside this function implementation. See + * https://crbug.com/1140174 for more detail. */ void setInitialA11yFocus();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/SigninFirstRunFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/SigninFirstRunFragment.java index 148709b0..f9aacce 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/SigninFirstRunFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/SigninFirstRunFragment.java
@@ -88,6 +88,9 @@ @Override public void setInitialA11yFocus() { + // Ignore calls before view is created. + if (getView() == null) return; + final View title = getView().findViewById(R.id.signin_title); title.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java index f1b3fc5..916d6f6 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
@@ -138,6 +138,8 @@ @Override public void setInitialA11yFocus() { + // Ignore calls before view is created. + if (mTitle == null) return; mTitle.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/FakeboxDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/FakeboxDelegate.java index 920f26c9..0ef3cc8 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/FakeboxDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/FakeboxDelegate.java
@@ -47,10 +47,8 @@ */ boolean isCurrentPage(NativePage nativePage); - /** - * Get the {@link VoiceRecognitionHandler}. - * @return the {@link VoiceRecognitionHandler} - */ + /** Gets the {@link VoiceRecognitionHandler}. */ + @Nullable VoiceRecognitionHandler getVoiceRecognitionHandler(); /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBar.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBar.java index ec9a4ce4..f2d68bc 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBar.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBar.java
@@ -4,28 +4,14 @@ package org.chromium.chrome.browser.omnibox; -import android.app.Activity; import android.view.View; import android.view.ViewGroup; -import android.view.Window; -import org.chromium.base.supplier.ObservableSupplier; -import org.chromium.base.supplier.Supplier; -import org.chromium.chrome.browser.ActivityTabProvider; -import org.chromium.chrome.browser.WindowDelegate; import org.chromium.chrome.browser.lifecycle.Destroyable; import org.chromium.chrome.browser.ntp.FakeboxDelegate; import org.chromium.chrome.browser.ntp.NewTabPage; import org.chromium.chrome.browser.omnibox.UrlBar.UrlBarDelegate; -import org.chromium.chrome.browser.profiles.Profile; -import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tab.Tab; -import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider; -import org.chromium.chrome.browser.toolbar.ToolbarDataProvider; -import org.chromium.chrome.browser.toolbar.top.Toolbar; -import org.chromium.chrome.browser.toolbar.top.ToolbarActionModeCallback; -import org.chromium.ui.base.WindowAndroid; -import org.chromium.ui.modaldialog.ModalDialogManager; /** * Container that holds the {@link UrlBar} and SSL state related with the current {@link Tab}. @@ -39,7 +25,7 @@ void onNativeLibraryReady(); /** Triggered when the current tab has changed to a {@link NewTabPage}. */ - default void onTabLoadingNTP(NewTabPage ntp){}; + default void onTabLoadingNTP(NewTabPage ntp) {} /** * Call to force the UI to update the state of various buttons based on whether or not the @@ -73,30 +59,6 @@ */ void updateLoadingState(boolean updateUrl); - /** Sets the {@link ToolbarDataProvider} to be used for accessing {@link Toolbar} state. */ - void setToolbarDataProvider(ToolbarDataProvider model); - - /** Gets the {@link ToolbarDataProvider} to be used for accessing {@link Toolbar} state. */ - ToolbarDataProvider getToolbarDataProvider(); - - /** - * Initialize controls that will act as hooks to various functions. - * - * @param windowDelegate {@link WindowDelegate} that will provide {@link Window} related info. - * @param windowAndroid {@link WindowAndroid} that is used by the owning {@link Activity}. - * @param activityTabProvider An {@link ActivityTabProvider} to access the activity's current - * tab. - * @param modalDialogManagerSupplier A supplier for {@link ModalDialogManager} object. - * @param shareDelegateSupplier A supplier for {@link ShareDelegate} object. - * @param incognitoStateProvider An {@link IncognitoStateProvider} to access the current - * incognito state. - */ - void initializeControls(WindowDelegate windowDelegate, WindowAndroid windowAndroid, - ActivityTabProvider activityTabProvider, - Supplier<ModalDialogManager> modalDialogManagerSupplier, - Supplier<ShareDelegate> shareDelegateSupplier, - IncognitoStateProvider incognitoStateProvider); - /** * Triggers the cursor to be visible in the UrlBar without triggering any of the focus animation * logic. @@ -131,14 +93,4 @@ /** Updates the state of the mic button if there is one. */ void updateMicButtonState(); - /** Sets the callback to be used by default for text editing action bar. */ - void setDefaultTextEditActionModeCallback(ToolbarActionModeCallback callback); - - /** - * Sets the (observable) supplier of the active profile. This supplier will notify observers of - * changes to the active profile, e.g. when selecting an incognito tab model. - * - * @param profileSupplier The supplier of the active profile. - */ - void setProfileSupplier(ObservableSupplier<Profile> profileSupplier); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java index 2fafce5..fcf8c02 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
@@ -55,10 +55,29 @@ * * @param locationBarLayout Inflated {@link LocationBarPhone} or {@link LocationBarTablet}. * {@code LocationBarCoordinator} takes ownership and will destroy this object. + * @param profileObservableSupplier The supplier of the active profile. + * @param toolbarDataProvider {@link ToolbarDataProvider} to be used for accessing Toolbar + * state. + * @param actionModeCallback The default callback for text editing action bar to use. + * @param windowDelegate {@link WindowDelegate} that will provide {@link Window} related info. + * @param windowAndroid {@link WindowAndroid} that is used by the owning {@link Activity}. + * @param activityTabProvider An {@link ActivityTabProvider} to access the activity's current + * tab. + * @param modalDialogManagerSupplier A supplier for {@link ModalDialogManager} object. + * @param shareDelegateSupplier A supplier for {@link ShareDelegate} object. + * @param incognitoStateProvider An {@link IncognitoStateProvider} to access the current + * incognito state. * @throws IllegalArgumentException if the view is neither {@link LocationBarPhone} nor {@link * LocationBarTablet}. */ - public LocationBarCoordinator(View locationBarLayout) { + public LocationBarCoordinator(View locationBarLayout, + ObservableSupplier<Profile> profileObservableSupplier, + ToolbarDataProvider toolbarDataProvider, ToolbarActionModeCallback actionModeCallback, + WindowDelegate windowDelegate, WindowAndroid windowAndroid, + ActivityTabProvider activityTabProvider, + Supplier<ModalDialogManager> modalDialogManagerSupplier, + Supplier<ShareDelegate> shareDelegateSupplier, + IncognitoStateProvider incognitoStateProvider) { mLocationBarLayout = (LocationBarLayout) locationBarLayout; if (locationBarLayout instanceof LocationBarPhone) { @@ -71,6 +90,12 @@ + locationBarLayout.getClass(); throw new IllegalArgumentException(locationBarLayout.getClass().toString()); } + + mLocationBarLayout.setToolbarDataProvider(toolbarDataProvider); + mLocationBarLayout.setProfileSupplier(profileObservableSupplier); + mLocationBarLayout.setDefaultTextEditActionModeCallback(actionModeCallback); + mLocationBarLayout.initializeControls(windowDelegate, windowAndroid, activityTabProvider, + modalDialogManagerSupplier, shareDelegateSupplier, incognitoStateProvider); } @Override @@ -125,27 +150,11 @@ mLocationBarLayout.updateLoadingState(updateUrl); } - @Override - public void setToolbarDataProvider(ToolbarDataProvider dataProvider) { - mLocationBarLayout.setToolbarDataProvider(dataProvider); - } - - @Override public ToolbarDataProvider getToolbarDataProvider() { return mLocationBarLayout.getToolbarDataProvider(); } @Override - public void initializeControls(WindowDelegate windowDelegate, WindowAndroid windowAndroid, - ActivityTabProvider activityTabProvider, - Supplier<ModalDialogManager> modalDialogManagerSupplier, - Supplier<ShareDelegate> shareDelegateSupplier, - IncognitoStateProvider incognitoStateProvider) { - mLocationBarLayout.initializeControls(windowDelegate, windowAndroid, activityTabProvider, - modalDialogManagerSupplier, shareDelegateSupplier, incognitoStateProvider); - } - - @Override public void showUrlBarCursorWithoutFocusAnimations() { mLocationBarLayout.showUrlBarCursorWithoutFocusAnimations(); } @@ -180,16 +189,6 @@ mLocationBarLayout.updateMicButtonState(); } - @Override - public void setDefaultTextEditActionModeCallback(ToolbarActionModeCallback callback) { - mLocationBarLayout.setDefaultTextEditActionModeCallback(callback); - } - - @Override - public void setProfileSupplier(ObservableSupplier<Profile> profileSupplier) { - mLocationBarLayout.setProfileSupplier(profileSupplier); - } - @Nullable @Override public View getViewForUrlBackFocus() { @@ -241,8 +240,13 @@ return mLocationBarLayout.isCurrentPage(nativePage); } + @Nullable @Override public VoiceRecognitionHandler getVoiceRecognitionHandler() { + // TODO(crbug.com/1140333): StartSurfaceMediator can call this method after destroy(). + if (mLocationBarLayout == null) { + return null; + } return mLocationBarLayout.getVoiceRecognitionHandler(); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ChromePaymentRequestFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/ChromePaymentRequestFactory.java index 8869cc8..9934a11 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/payments/ChromePaymentRequestFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/ChromePaymentRequestFactory.java
@@ -211,7 +211,7 @@ return PaymentRequestService.createPaymentRequest(mRenderFrameHost, /*isOffTheRecord=*/delegate.isOffTheRecord(), /*skipUiForBasicCard=*/delegate.skipUiForBasicCard(), delegate, - (componentPaymentRequest) - -> new ChromePaymentRequestService(componentPaymentRequest, delegate)); + (paymentRequestService) + -> new ChromePaymentRequestService(paymentRequestService, delegate)); } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java index 9c8830e0..f667ab7 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java
@@ -20,6 +20,7 @@ import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.view.Window; +import android.view.WindowManager; import android.widget.FrameLayout; import androidx.annotation.VisibleForTesting; @@ -116,9 +117,18 @@ bottomSheetView.addOnLayoutChangeListener(new FadeInAnimator()); } - /** Show the dialog. */ - /* package */ void show() { - mDialog.show(); + /** + * Show the dialog. + * @return Whether the show is successful. + */ + /* package */ boolean show() { + try { + mDialog.show(); + return true; + } catch (WindowManager.BadTokenException badToken) { + // The exception could be thrown according to https://crbug.com/1139441. + return false; + } } /** Hide the dialog without dismissing it. */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestUI.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestUI.java index 52fabb5d..96bf5da7 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestUI.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestUI.java
@@ -1452,12 +1452,14 @@ * showPaymentRequestDialogWhenNoBottomSheet() and hidePaymentRequestDialog() instead of calling * this method directly. * @param visible True to show the dialog, false to hide the dialog. + * @return Whether setting visibility is successful. */ - public void setVisible(boolean visible) { + public boolean setVisible(boolean visible) { if (visible) { - mDialog.show(); + return mDialog.show(); } else { mDialog.hide(); + return true; } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentUiService.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentUiService.java index 3d416d1..274501db 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentUiService.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/ui/PaymentUiService.java
@@ -215,7 +215,11 @@ private void updatePaymentRequestDialogShowState() { if (mPaymentRequestUI == null) return; - mPaymentRequestUI.setVisible(!mShowingBottomSheet && mShouldShowDialog); + boolean isSuccess = + mPaymentRequestUI.setVisible(!mShowingBottomSheet && mShouldShowDialog); + if (!isSuccess) { + mObserver.onUiServiceError(ErrorStrings.FAIL_TO_SHOW_PAYMENT_REQUEST_UI); + } } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyncSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyncSettings.java index ff9f5cc..21aef454 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyncSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/AndroidSyncSettings.java
@@ -16,7 +16,6 @@ import org.chromium.base.ContextUtils; import org.chromium.base.ObserverList; -import org.chromium.base.StrictModeContext; import org.chromium.base.ThreadUtils; import org.chromium.base.task.PostTask; import org.chromium.chrome.browser.flags.ChromeFeatureList; @@ -227,9 +226,7 @@ if (value == mChromeSyncEnabled || mAccount == null) return; mChromeSyncEnabled = value; - try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) { - mSyncContentResolverDelegate.setSyncAutomatically(mAccount, mContractAuthority, value); - } + mSyncContentResolverDelegate.setSyncAutomatically(mAccount, mContractAuthority, value); notifyObservers(); } @@ -246,29 +243,24 @@ mIsSyncable = shouldBeSyncable; - try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) { - // Make account syncable if there is one. - if (shouldBeSyncable) { - mSyncContentResolverDelegate.setIsSyncable(mAccount, mContractAuthority, 1); - // This reduces unnecessary resource usage. See http://crbug.com/480688 for details. - mSyncContentResolverDelegate.removePeriodicSync( - mAccount, mContractAuthority, Bundle.EMPTY); - } else if (mAccount != null) { - mSyncContentResolverDelegate.setIsSyncable(mAccount, mContractAuthority, 0); - } + // Make account syncable if there is one. + if (shouldBeSyncable) { + mSyncContentResolverDelegate.setIsSyncable(mAccount, mContractAuthority, 1); + // This reduces unnecessary resource usage. See http://crbug.com/480688 for details. + mSyncContentResolverDelegate.removePeriodicSync( + mAccount, mContractAuthority, Bundle.EMPTY); + } else if (mAccount != null) { + mSyncContentResolverDelegate.setIsSyncable(mAccount, mContractAuthority, 0); } // Disable the syncability of Chrome for all other accounts. AccountManagerFacadeProvider.getInstance().tryGetGoogleAccounts(accounts -> { - try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) { - for (Account account : accounts) { - if (account.equals(mAccount)) continue; - if (mSyncContentResolverDelegate.getIsSyncable(account, mContractAuthority) - <= 0) { - continue; - } - mSyncContentResolverDelegate.setIsSyncable(account, mContractAuthority, 0); + for (Account account : accounts) { + if (account.equals(mAccount)) continue; + if (mSyncContentResolverDelegate.getIsSyncable(account, mContractAuthority) <= 0) { + continue; } + mSyncContentResolverDelegate.setIsSyncable(account, mContractAuthority, 0); } }); } @@ -283,19 +275,16 @@ boolean oldChromeSyncEnabled = mChromeSyncEnabled; boolean oldMasterSyncEnabled = mMasterSyncEnabled; - try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) { - if (mAccount != null) { - mIsSyncable = - mSyncContentResolverDelegate.getIsSyncable(mAccount, mContractAuthority) - > 0; - mChromeSyncEnabled = mSyncContentResolverDelegate.getSyncAutomatically( - mAccount, mContractAuthority); - } else { - mIsSyncable = false; - mChromeSyncEnabled = false; - } - mMasterSyncEnabled = mSyncContentResolverDelegate.getMasterSyncAutomatically(); + if (mAccount != null) { + mIsSyncable = + mSyncContentResolverDelegate.getIsSyncable(mAccount, mContractAuthority) > 0; + mChromeSyncEnabled = + mSyncContentResolverDelegate.getSyncAutomatically(mAccount, mContractAuthority); + } else { + mIsSyncable = false; + mChromeSyncEnabled = false; } + mMasterSyncEnabled = mSyncContentResolverDelegate.getMasterSyncAutomatically(); if (mAccount != null && ProfileSyncService.get() != null && ChromeFeatureList.isEnabled(
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java index a6c2c32..a3c8798 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java
@@ -11,6 +11,7 @@ import org.chromium.base.annotations.CalledByNative; import org.chromium.base.annotations.NativeMethods; +import org.chromium.base.metrics.RecordHistogram; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.TabLaunchType; @@ -214,20 +215,25 @@ private static void flushTabSwitchLatencyMetric(boolean perceived) { if (sTabSwitchStartTime <= 0) return; final long ms = SystemClock.uptimeMillis() - sTabSwitchStartTime; + String baseHistogram; switch (sTabSelectionType) { case TabSelectionType.FROM_CLOSE: - TabModelJniBridgeJni.get().logFromCloseMetric(ms, perceived); + baseHistogram = "Tabs.SwitchFromCloseLatency"; break; case TabSelectionType.FROM_EXIT: - TabModelJniBridgeJni.get().logFromExitMetric(ms, perceived); + baseHistogram = "Tabs.SwitchFromExitLatency"; break; case TabSelectionType.FROM_NEW: - TabModelJniBridgeJni.get().logFromNewMetric(ms, perceived); + baseHistogram = "Tabs.SwitchFromNewLatency"; break; case TabSelectionType.FROM_USER: - TabModelJniBridgeJni.get().logFromUserMetric(ms, perceived); + baseHistogram = "Tabs.SwitchFromUserLatency"; break; + default: + return; } + String histogramSuffix = perceived ? "_Perceived" : "_Actual"; + RecordHistogram.recordTimesHistogram(baseHistogram + histogramSuffix, ms); } @NativeMethods @@ -238,11 +244,5 @@ long nativeTabModelJniBridge, TabModelJniBridge caller); void destroy(long nativeTabModelJniBridge, TabModelJniBridge caller); void tabAddedToModel(long nativeTabModelJniBridge, TabModelJniBridge caller, Tab tab); - - // Methods for tab switch latency metrics. - void logFromCloseMetric(long ms, boolean perceived); - void logFromExitMetric(long ms, boolean perceived); - void logFromNewMetric(long ms, boolean perceived); - void logFromUserMetric(long ms, boolean perceived); } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java index f6dcbb9..1d9eafa 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
@@ -43,6 +43,8 @@ import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior; import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior.OverviewModeObserver; import org.chromium.chrome.browser.compositor.layouts.SceneChangeObserver; +import org.chromium.chrome.browser.customtabs.features.toolbar.CustomTabToolbar; +import org.chromium.chrome.browser.customtabs.features.toolbar.CustomTabToolbar.CustomTabLocationBar; import org.chromium.chrome.browser.feature_engagement.TrackerFactory; import org.chromium.chrome.browser.findinpage.FindToolbarManager; import org.chromium.chrome.browser.findinpage.FindToolbarObserver; @@ -55,6 +57,7 @@ import org.chromium.chrome.browser.ntp.NewTabPage; import org.chromium.chrome.browser.omnibox.LocationBar; import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; +import org.chromium.chrome.browser.omnibox.LocationBarCoordinator; import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener; import org.chromium.chrome.browser.previews.Previews; import org.chromium.chrome.browser.previews.PreviewsAndroidBridge; @@ -334,17 +337,29 @@ new ActionModeController(mActivity, mActionBarDelegate, toolbarActionModeCallback); mActionModeController.setTabStripHeight(mToolbar.getTabStripHeight()); - mLocationBar = mToolbar.getLocationBar(); - mLocationBar.setProfileSupplier(profileSupplier); - mLocationBar.setToolbarDataProvider(mLocationBarModel); + + if (toolbarLayout instanceof CustomTabToolbar) { + CustomTabLocationBar customTabLocationBar = + (CustomTabLocationBar) mToolbar.getLocationBar(); + // TODO(https://crbug.com/1140188): Use a factory to wire these dependencies. + customTabLocationBar.setToolbarDataProvider(mLocationBarModel); + customTabLocationBar.setDefaultTextEditActionModeCallback( + mActionModeController.getActionModeCallback()); + mLocationBar = customTabLocationBar; + } else { + LocationBarCoordinator locationBarCoordinator = new LocationBarCoordinator( + mActivity.findViewById(R.id.location_bar), profileSupplier, mLocationBarModel, + mActionModeController.getActionModeCallback(), + new WindowDelegate(mActivity.getWindow()), mActivity.getWindowAndroid(), + mActivityTabProvider, mActivity::getModalDialogManager, + mActivity.getShareDelegateSupplier(), mIncognitoStateProvider); + toolbarLayout.setLocationBarCoordinator(locationBarCoordinator); + mLocationBar = locationBarCoordinator; + } + mLocationBar.addUrlFocusChangeListener(this); - mLocationBar.setDefaultTextEditActionModeCallback( - mActionModeController.getActionModeCallback()); - mLocationBar.initializeControls(new WindowDelegate(mActivity.getWindow()), - mActivity.getWindowAndroid(), mActivityTabProvider, - mActivity::getModalDialogManager, mActivity.getShareDelegateSupplier(), - mIncognitoStateProvider); - Runnable clickDelegate = () -> setUrlBarFocus(false, OmniboxFocusReason.UNFOCUS); + Runnable clickDelegate = + () -> setUrlBarFocus(false, OmniboxFocusReason.UNFOCUS); View scrimTarget = mActivity.getCompositorViewHolder(); mLocationBarFocusHandler = new LocationBarFocusScrimHandler(scrimCoordinator, tabObscuringHandler, activity, activity.getNightModeStateProvider(),
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/menu_button/MenuButton.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/menu_button/MenuButton.java index 3dd5951..f3b180f1 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/menu_button/MenuButton.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/menu_button/MenuButton.java
@@ -51,6 +51,7 @@ private boolean mHighlightingMenu; private PulseDrawable mHighlightDrawable; + private Drawable mOriginalBackground; private AnimatorSet mMenuBadgeAnimatorSet; private boolean mIsMenuBadgeAnimationRunning; @@ -68,6 +69,7 @@ super.onFinishInflate(); mMenuImageButton = findViewById(R.id.menu_button); mUpdateBadgeView = findViewById(R.id.menu_badge); + mOriginalBackground = getBackground(); } public void setAppMenuButtonHelper(AppMenuButtonHelper appMenuButtonHelper) { @@ -255,7 +257,7 @@ setBackground(mHighlightDrawable); mHighlightDrawable.start(); } else { - setBackground(null); + setBackground(mOriginalBackground); } } @@ -384,4 +386,10 @@ return set; } + + @VisibleForTesting + void setOriginalBackgroundForTesting(Drawable background) { + mOriginalBackground = background; + setBackground(mOriginalBackground); + } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java index 16c31094..674e2be 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java
@@ -33,6 +33,7 @@ import org.chromium.chrome.browser.ntp.NewTabPage; import org.chromium.chrome.browser.omnibox.LocationBar; import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; +import org.chromium.chrome.browser.omnibox.LocationBarCoordinator; import org.chromium.chrome.browser.omnibox.UrlBarData; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.tab.Tab; @@ -145,6 +146,10 @@ mAppMenuButtonHelper = appMenuButtonHelper; } + // TODO(pnoland, https://crbug.com/865801): Move this from ToolbarLayout to forthcoming + // BrowsingModeToolbarCoordinator. + public void setLocationBarCoordinator(LocationBarCoordinator locationBarCoordinator) {} + /** * Cleans up any code as necessary. */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java index ee99753..88a7a2a 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java
@@ -338,7 +338,6 @@ public void onFinishInflate() { try (TraceEvent te = TraceEvent.scoped("ToolbarPhone.onFinishInflate")) { super.onFinishInflate(); - mLocationBar = new LocationBarCoordinator(findViewById(R.id.location_bar)); mToolbarButtonsContainer = (ViewGroup) findViewById(R.id.toolbar_buttons); mHomeButton = findViewById(R.id.home_button); mUrlBar = (TextView) findViewById(R.id.url_bar); @@ -346,8 +345,6 @@ mToolbarBackground = new ColorDrawable(getToolbarColorForVisualState(VisualState.NORMAL)); - initLocationBarBackground(); - setLayoutTransition(null); if (getMenuButtonCoordinator() != null) { @@ -363,6 +360,12 @@ } @Override + public void setLocationBarCoordinator(LocationBarCoordinator locationBarCoordinator) { + mLocationBar = locationBarCoordinator; + initLocationBarBackground(); + } + + @Override void destroy() { if (mHomeButton != null) { mHomeButton.destroy();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTablet.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTablet.java index 381f15f..91cd174 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTablet.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTablet.java
@@ -110,7 +110,6 @@ @Override public void onFinishInflate() { super.onFinishInflate(); - mLocationBar = new LocationBarCoordinator(findViewById(R.id.location_bar)); mHomeButton = findViewById(R.id.home_button); mBackButton = findViewById(R.id.back_button); mForwardButton = findViewById(R.id.forward_button); @@ -148,6 +147,11 @@ } @Override + public void setLocationBarCoordinator(LocationBarCoordinator locationBarCoordinator) { + mLocationBar = locationBarCoordinator; + } + + @Override void destroy() { if (mHomeButton != null) { mHomeButton.destroy();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/translate/TranslateUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/translate/TranslateUtils.java index 169fa855..fa95fb7 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/translate/TranslateUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/translate/TranslateUtils.java
@@ -4,10 +4,7 @@ package org.chromium.chrome.browser.translate; -import android.text.TextUtils; - import org.chromium.chrome.browser.tab.Tab; -import org.chromium.components.embedder_support.util.UrlConstants; /** * Utility classes related to the translate feature. @@ -15,15 +12,10 @@ public class TranslateUtils { /** * Returns true iff the content displayed in the current tab can be translated. + * * @param tab The tab in question. */ public static boolean canTranslateCurrentTab(Tab tab) { - String url = tab.getUrlString(); - boolean isChromeScheme = url.startsWith(UrlConstants.CHROME_URL_PREFIX) - || url.startsWith(UrlConstants.CHROME_NATIVE_URL_PREFIX); - boolean isFileScheme = url.startsWith(UrlConstants.FILE_URL_PREFIX); - boolean isContentScheme = url.startsWith(UrlConstants.CONTENT_URL_PREFIX); - return !isChromeScheme && !isFileScheme && !isContentScheme && !TextUtils.isEmpty(url) - && tab.getWebContents() != null && TranslateBridge.canManuallyTranslate(tab); + return tab.getWebContents() != null && TranslateBridge.canManuallyTranslate(tab); } }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestTestRule.java b/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestTestRule.java index f41d51e..778363d 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestTestRule.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestTestRule.java
@@ -145,7 +145,7 @@ final CallbackHelper mPaymentResponseReady; final CallbackHelper mCompleteReplied; final CallbackHelper mRendererClosedMojoConnection; - PaymentRequestService mComponentPaymentRequest; + PaymentRequestService mPaymentRequestService; PaymentRequestUI mUI; private final boolean mDelayStartActivity; @@ -1001,7 +1001,7 @@ /** Allows to skip UI into paymenthandler for"basic-card". */ protected void enableSkipUIForBasicCard() { ThreadUtils.runOnUiThreadBlocking( - () -> mComponentPaymentRequest.setSkipUiForNonUrlPaymentMethodIdentifiersForTest()); + () -> mPaymentRequestService.setSkipUiForNonUrlPaymentMethodIdentifiersForTest()); } @Override @@ -1059,9 +1059,9 @@ } @Override - public void onPaymentRequestCreated(PaymentRequestService paymentRequest) { + public void onPaymentRequestCreated(PaymentRequestService paymentRequestService) { ThreadUtils.assertOnUiThread(); - mComponentPaymentRequest = paymentRequest; + mPaymentRequestService = paymentRequestService; } @Override
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateUnitTest.java index e0146769..f5a730fe 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateUnitTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateUnitTest.java
@@ -221,6 +221,9 @@ setUpMocksForPageMenu(); when(mTab.getUrlString()).thenReturn(UrlConstants.NTP_URL); when(mTab.isNativePage()).thenReturn(true); + doReturn(false) + .when(mAppMenuPropertiesDelegate) + .shouldShowTranslateMenuItem(any(Tab.class)); Assert.assertEquals(MenuGroup.PAGE_MENU, mAppMenuPropertiesDelegate.getMenuGroup()); Menu menu = createTestMenu();
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/toolbar/menu_button/MenuButtonTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/toolbar/menu_button/MenuButtonTest.java index 1937e8b7..f02d193 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/toolbar/menu_button/MenuButtonTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/toolbar/menu_button/MenuButtonTest.java
@@ -16,11 +16,14 @@ import android.graphics.Bitmap; import android.graphics.Rect; import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; import android.view.LayoutInflater; import android.view.View.MeasureSpec; import android.view.ViewGroup; import android.widget.LinearLayout; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -134,4 +137,19 @@ assertTrue(drawableBounds.right > 0); assertTrue(drawableBounds.bottom > 0); } + + @Test + public void testBackgroundAfterHighlight() { + Drawable background = new ColorDrawable(); + mMenuButton.setOriginalBackgroundForTesting(background); + + Assert.assertNotNull("Background shouldn't be null.", mMenuButton.getBackground()); + + mMenuButton.setMenuButtonHighlight(true); + Assert.assertNotEquals( + "Background should have been updated.", background, mMenuButton.getBackground()); + + mMenuButton.setMenuButtonHighlight(false); + Assert.assertEquals("Background should be reset.", background, mMenuButton.getBackground()); + } }
diff --git a/chrome/app/os_settings_search_tag_strings.grdp b/chrome/app/os_settings_search_tag_strings.grdp index 846fc9d..0ce693b 100644 --- a/chrome/app/os_settings_search_tag_strings.grdp +++ b/chrome/app/os_settings_search_tag_strings.grdp
@@ -104,6 +104,18 @@ <message name="IDS_OS_SETTINGS_TAG_CELLULAR_DISCONNECT" desc="Text for search result item which, when clicked, navigates the user to Cellular network settings, with a button to disconnect from the currently-connected Celluar network."> Disconnect Cellular network </message> + <message name="IDS_OS_SETTINGS_TAG_CELLULAR_REMOVE_PROFILE" desc="Text for search result item which, when clicked, navigates the user to the Cellular eSIM network settings, with a menu containing a button to remove the currently-connected Cellular eSIM network. Alternate phrase for: 'Delete Cellular network eSIM profile'"> + Remove eSIM Cellular network + </message> + <message name="IDS_OS_SETTINGS_TAG_CELLULAR_REMOVE_PROFILE_ALT1" desc="Text for search result item which, when clicked, navigates the user to the Cellular eSIM network settings, with a menu containing a button to remove the currently-connected eSIM Cellular network. Alternate phrase for: 'Remove Cellular network eSIM profile"> + Remove eSIM profile + </message> + <message name="IDS_OS_SETTINGS_TAG_CELLULAR_RENAME_PROFILE" desc="Text for search result item which, when clicked, navigates the user to the Cellular eSIM network settings, with a menu containing a button to rename the currently-connected eSIM Cellular network. Alternate phrase for: 'Rename eSIM profile"> + Rename eSIM Cellular network + </message> + <message name="IDS_OS_SETTINGS_TAG_CELLULAR_RENAME_PROFILE_ALT1" desc="Text for search result item which, when clicked, navigates the user to the Cellular eSIM network settings, with a menu containing a button to rename the currently-connected eSIM Cellular network. Alternate phrase for: 'Rename eSIM Cellular network"> + Rename eSIM profile + </message> <message name="IDS_OS_SETTINGS_TAG_INSTANT_MOBILE_NETWORKS" desc="Text for search result item which, when clicked, navigates the user to Instant Tethering settings (allows Chromebook to use mobile connection from phone)."> Mobile networks </message>
diff --git a/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_CELLULAR_REMOVE_PROFILE.png.sha1 b/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_CELLULAR_REMOVE_PROFILE.png.sha1 new file mode 100644 index 0000000..5c34262 --- /dev/null +++ b/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_CELLULAR_REMOVE_PROFILE.png.sha1
@@ -0,0 +1 @@ +9ba69d4a914396c32644435cbb101c1287e06876 \ No newline at end of file
diff --git a/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_CELLULAR_REMOVE_PROFILE_ALT1.png.sha1 b/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_CELLULAR_REMOVE_PROFILE_ALT1.png.sha1 new file mode 100644 index 0000000..7547362 --- /dev/null +++ b/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_CELLULAR_REMOVE_PROFILE_ALT1.png.sha1
@@ -0,0 +1 @@ +d18e9c9de9af61872c3d2078b0c1eddf036fe44b \ No newline at end of file
diff --git a/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_CELLULAR_RENAME_PROFILE.png.sha1 b/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_CELLULAR_RENAME_PROFILE.png.sha1 new file mode 100644 index 0000000..9378cb0 --- /dev/null +++ b/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_CELLULAR_RENAME_PROFILE.png.sha1
@@ -0,0 +1 @@ +eec9574a600bc4471c35cfb20d9b0a9e6431401d \ No newline at end of file
diff --git a/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_CELLULAR_RENAME_PROFILE_ALT1.png.sha1 b/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_CELLULAR_RENAME_PROFILE_ALT1.png.sha1 new file mode 100644 index 0000000..5736abb --- /dev/null +++ b/chrome/app/os_settings_search_tag_strings_grdp/IDS_OS_SETTINGS_TAG_CELLULAR_RENAME_PROFILE_ALT1.png.sha1
@@ -0,0 +1 @@ +2bc217ae55a7c0ff8941fe016f14a135a6f238f6 \ No newline at end of file
diff --git a/chrome/app/os_settings_strings.grdp b/chrome/app/os_settings_strings.grdp index 34bfc543..cf9a80eb6 100644 --- a/chrome/app/os_settings_strings.grdp +++ b/chrome/app/os_settings_strings.grdp
@@ -2064,6 +2064,12 @@ <message name="IDS_SETTINGS_INTERNET_NETWORK_AUTO_CONNECT_CELLULAR" desc="Settings > Internet > Mobile Data details: Label for the checkbox determining whether to automatically connect to the cellular network."> Automatically connect to cellular network </message> + <message name="IDS_SETTINGS_INTERNET_NETWORK_MENU_REMOVE" desc="Settings > Internet > Network details > Dot menu: Label for the button to remove an eSIM cellular network"> + Remove profile + </message> + <message name="IDS_SETTINGS_INTERNET_NETWORK_MENU_RENAME" desc="Settings > Internet > Network details > Dot menu: Label for the button to rename an eSIM cellular network"> + Rename + </message> <message name="IDS_SETTINGS_INTERNET_BUTTON_ACTIVATE" desc="Settings > Internet > Network details: The label for the button to activate a Cellular network."> Activate </message>
diff --git a/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_INTERNET_NETWORK_MENU_REMOVE.png.sha1 b/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_INTERNET_NETWORK_MENU_REMOVE.png.sha1 new file mode 100644 index 0000000..9b8c9704 --- /dev/null +++ b/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_INTERNET_NETWORK_MENU_REMOVE.png.sha1
@@ -0,0 +1 @@ +ce734260b9493623961fce7c20c73f25eac8096d \ No newline at end of file
diff --git a/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_INTERNET_NETWORK_MENU_RENAME.png.sha1 b/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_INTERNET_NETWORK_MENU_RENAME.png.sha1 new file mode 100644 index 0000000..9b8c9704 --- /dev/null +++ b/chrome/app/os_settings_strings_grdp/IDS_SETTINGS_INTERNET_NETWORK_MENU_RENAME.png.sha1
@@ -0,0 +1 @@ +ce734260b9493623961fce7c20c73f25eac8096d \ No newline at end of file
diff --git a/chrome/app/resources/chromium_strings_am.xtb b/chrome/app/resources/chromium_strings_am.xtb index 0f337055..ceed74e 100644 --- a/chrome/app/resources/chromium_strings_am.xtb +++ b/chrome/app/resources/chromium_strings_am.xtb
@@ -11,6 +11,7 @@ <translation id="1131805035311359397">የእርስዎ የይለፍ ቃላት ከውሂብ ጥሰቶች እና ሌሎች የደህንነት ችግሮች ነጻ መሆናቸውን ለማረጋገጥ <ph name="BEGIN_LINK" />በመለያ ወደ Chromium ይግቡ<ph name="END_LINK" />።</translation> <translation id="1185134272377778587">ስለChromium</translation> <translation id="1315551408014407711">አዲሱን የChromium መገለጫዎ ያቀናብሩት</translation> +<translation id="1357932062193643861">Chromium ሲከፍት ጠይቅ</translation> <translation id="1396446129537741364">Chromium የይለፍ ቃላትን ለማሳየት እየሞከረ ነው።</translation> <translation id="1414495520565016063">ወደ Chromium ገብተዋል!</translation> <translation id="151962892725702025">ማመሳሰል ለጎራዎ ስለማይገኝ Chromium OS ውሂብዎን ማመሳሰል አይችልም።</translation>
diff --git a/chrome/app/resources/chromium_strings_az.xtb b/chrome/app/resources/chromium_strings_az.xtb index ae17cac..2d3ebfe9 100644 --- a/chrome/app/resources/chromium_strings_az.xtb +++ b/chrome/app/resources/chromium_strings_az.xtb
@@ -11,6 +11,7 @@ <translation id="1131805035311359397">Parollarınızın data pozuntuları və digər güvənlik məsələlərinə qarşı güvəndə olduğunu yoxlamaq üçün <ph name="BEGIN_LINK" />Chromium'a daxil olun<ph name="END_LINK" />.</translation> <translation id="1185134272377778587">Chromium haqqında</translation> <translation id="1315551408014407711">Yeni Chromium profilinizi ayarlayın</translation> +<translation id="1357932062193643861">Chromium açıldığı zaman soruşulsun</translation> <translation id="1396446129537741364">Chromium parolları göstərməyə çalışır.</translation> <translation id="1414495520565016063">Chromium'a daxil oldunuz!</translation> <translation id="151962892725702025">Chomium OS datanızı sinxronizasiya edə bilmədi, çünki sinxronizasiya domeniniz üçün əlçatan deyil.</translation>
diff --git a/chrome/app/resources/chromium_strings_ca.xtb b/chrome/app/resources/chromium_strings_ca.xtb index ea09d80..30ea30c 100644 --- a/chrome/app/resources/chromium_strings_ca.xtb +++ b/chrome/app/resources/chromium_strings_ca.xtb
@@ -9,6 +9,7 @@ <translation id="1131805035311359397">Per comprovar si les teves contrasenyes estan protegides contra violacions de les dades i contra altres problemes de seguretat, <ph name="BEGIN_LINK" />inicia la sessió a Chromium<ph name="END_LINK" />.</translation> <translation id="1185134272377778587">Quant a Chromium</translation> <translation id="1315551408014407711">Configura el teu perfil de Chromium nou</translation> +<translation id="1357932062193643861">Pregunta'm quan Chromium s'obri</translation> <translation id="1396446129537741364">Chromium està provant de mostrar les contrasenyes.</translation> <translation id="1414495520565016063">Teniu la sessió iniciada a Chromium.</translation> <translation id="151962892725702025">Chromium OS no ha pogut sincronitzar les vostres dades perquè la sincronització no està disponible per al vostre domini.</translation>
diff --git a/chrome/app/resources/chromium_strings_cs.xtb b/chrome/app/resources/chromium_strings_cs.xtb index 969bc76..b233515d 100644 --- a/chrome/app/resources/chromium_strings_cs.xtb +++ b/chrome/app/resources/chromium_strings_cs.xtb
@@ -11,6 +11,7 @@ <translation id="1131805035311359397">Chcete-li zkontrolovat, zda jsou hesla v bezpečí před porušením zabezpečení údajů a ostatními bezpečnostními hrozbami, <ph name="BEGIN_LINK" />přihlaste se do prohlížeče Chromium<ph name="END_LINK" />.</translation> <translation id="1185134272377778587">O prohlížeči Chromium</translation> <translation id="1315551408014407711">Nastavení nového profilu Chromium</translation> +<translation id="1357932062193643861">Při otevření prohlížeče Chromium se zeptat</translation> <translation id="1396446129537741364">Chromium se pokouší zobrazit hesla.</translation> <translation id="1414495520565016063">Jste přihlášeni do prohlížeče Chromium.</translation> <translation id="151962892725702025">Chromium OS nemůže synchronizovat data, protože Synchronizace ve vaší doméně není k dispozici.</translation>
diff --git a/chrome/app/resources/chromium_strings_da.xtb b/chrome/app/resources/chromium_strings_da.xtb index fbebb71..5d42fe2 100644 --- a/chrome/app/resources/chromium_strings_da.xtb +++ b/chrome/app/resources/chromium_strings_da.xtb
@@ -9,6 +9,7 @@ <translation id="1131805035311359397">Du kan tjekke, om dine adgangskoder er beskyttet mod brud på datasikkerheden og andre sikkerhedsproblemer ved at <ph name="BEGIN_LINK" />logge ind på Chromium<ph name="END_LINK" />.</translation> <translation id="1185134272377778587">Om Chromium</translation> <translation id="1315551408014407711">Konfigurer din nye Chromium-profil</translation> +<translation id="1357932062193643861">Spørg, når Chromium åbnes</translation> <translation id="1396446129537741364">Chromium forsøger at vise adgangskoder.</translation> <translation id="1414495520565016063">Du er logget ind på Chromium.</translation> <translation id="151962892725702025">Chromium OS kunne ikke synkronisere dine data, fordi synkronisering ikke er tilgængeligt på dit domæne.</translation>
diff --git a/chrome/app/resources/chromium_strings_el.xtb b/chrome/app/resources/chromium_strings_el.xtb index 3dac025..2c1e3f8 100644 --- a/chrome/app/resources/chromium_strings_el.xtb +++ b/chrome/app/resources/chromium_strings_el.xtb
@@ -9,6 +9,7 @@ <translation id="1131805035311359397">Για να ελέγξετε αν οι κωδικοί πρόσβασής σας είναι ασφαλείς από παραβιάσεις δεδομένων και άλλα ζητήματα ασφαλείας, <ph name="BEGIN_LINK" />συνδεθείτε στο Chromium<ph name="END_LINK" />.</translation> <translation id="1185134272377778587">Σχετικά με το Chromium</translation> <translation id="1315551408014407711">Ρυθμίστε το νέο σας προφίλ στο Chromium</translation> +<translation id="1357932062193643861">Να γίνεται ερώτηση όταν ανοίγει το Chromium.</translation> <translation id="1396446129537741364">Το Chromium επιχειρεί να εμφανίσει κωδικούς πρόσβασης.</translation> <translation id="1414495520565016063">Έχετε συνδεθεί στο Chromium!</translation> <translation id="151962892725702025">Το Chromium OS δεν μπόρεσε να συγχρονίσει τα δεδομένα σας, επειδή ο συγχρονισμός δεν είναι διαθέσιμος για τον τομέα σας.</translation>
diff --git a/chrome/app/resources/chromium_strings_es.xtb b/chrome/app/resources/chromium_strings_es.xtb index 55a219a..b6a18bf7 100644 --- a/chrome/app/resources/chromium_strings_es.xtb +++ b/chrome/app/resources/chromium_strings_es.xtb
@@ -11,6 +11,7 @@ <translation id="1131805035311359397">Para comprobar si tus contraseñas han sufrido quiebras de seguridad de datos u otros problemas de seguridad, <ph name="BEGIN_LINK" />inicia sesión en Chromium<ph name="END_LINK" />.</translation> <translation id="1185134272377778587">Información de Chromium</translation> <translation id="1315551408014407711">Configura tu nuevo perfil de Chromium</translation> +<translation id="1357932062193643861">Preguntar al abrir Chromium</translation> <translation id="1396446129537741364">Chromium está intentando mostrar contraseñas.</translation> <translation id="1414495520565016063">Has iniciado sesión en Chromium</translation> <translation id="151962892725702025">Chromium OS no ha podido sincronizar los datos porque la función de sincronización no está disponible para tu dominio.</translation>
diff --git a/chrome/app/resources/chromium_strings_fr.xtb b/chrome/app/resources/chromium_strings_fr.xtb index af39ef5..5e4443b 100644 --- a/chrome/app/resources/chromium_strings_fr.xtb +++ b/chrome/app/resources/chromium_strings_fr.xtb
@@ -184,6 +184,7 @@ <translation id="6863361426438995919">Google Pay (copiée dans Chromium)</translation> <translation id="6893813176749746474">Chromium a été mis à jour, mais vous ne l'avez pas utilisé pendant au moins 30 jours.</translation> <translation id="6964305034639999644">Ouvrir le lien dans la fenêtre de navi&gation privée Chromium</translation> +<translation id="6978145336957848883">Les mots de passe peu sécurisés sont faciles à deviner. Laissez Chromium <ph name="BEGIN_LINK" />créer et mémoriser des mots de passe sécurisés à votre place<ph name="END_LINK" />.</translation> <translation id="6990124437352146030">Chromium a besoin de votre autorisation pour accéder à votre micro pour ce site</translation> <translation id="701244094609242530">Chromium ne parvient pas à vérifier vos extensions. Réessayez plus tard.</translation> <translation id="7028347026395185822">{NUM_HOURS,plural, =1{Chromium n'a détecté aucun logiciel malveillant connu sur votre ordinateur. Dernière vérification : il y a une heure.}one{Chromium n'a détecté aucun logiciel malveillant connu sur votre ordinateur. Dernière vérification : il y a {NUM_HOURS} heure.}other{Chromium n'a détecté aucun logiciel malveillant connu sur votre ordinateur. Dernière vérification : il y a {NUM_HOURS} heures.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_gl.xtb b/chrome/app/resources/chromium_strings_gl.xtb index b947898..d162e86 100644 --- a/chrome/app/resources/chromium_strings_gl.xtb +++ b/chrome/app/resources/chromium_strings_gl.xtb
@@ -11,6 +11,7 @@ <translation id="1131805035311359397">Para comprobar se os teus contrasinais están protexidos fronte a violacións da seguranza dos datos e outros problemas de seguranza, debes <ph name="BEGIN_LINK" />iniciar sesión en Chromium<ph name="END_LINK" />.</translation> <translation id="1185134272377778587">Acerca de Chromium</translation> <translation id="1315551408014407711">Configura o teu novo perfil de Chromium</translation> +<translation id="1357932062193643861">Preguntar ao abrir Chromium</translation> <translation id="1396446129537741364">Chromium está tentando mostrar contrasinais.</translation> <translation id="1414495520565016063">Iniciaches sesión en Chromium.</translation> <translation id="151962892725702025">Chromium non puido sincronizar os teus datos porque a sincronización non está dispoñible para o teu dominio.</translation> @@ -185,6 +186,7 @@ <translation id="6863361426438995919">Google Pay (copiouse en Chromium)</translation> <translation id="6893813176749746474">Actualizouse Chromium, pero non o utilizas desde hai polo menos 30 días.</translation> <translation id="6964305034639999644">Abrir ligazón nunha ventá do modo de incó&gnito de Chromium</translation> +<translation id="6978145336957848883">Os contrasinais pouco seguros son fáciles de adiviñar. Permite que Chromium <ph name="BEGIN_LINK" />cree e lembre contrasinais seguros por ti<ph name="END_LINK" />.</translation> <translation id="6990124437352146030">Chromium necesita permiso para acceder ao micrófono neste sitio</translation> <translation id="701244094609242530">Chromium non puido comprobar as túas extensións. Téntao de novo máis tarde.</translation> <translation id="7028347026395185822">{NUM_HOURS,plural, =1{Chromium non atopou ningún software daniño coñecido no teu ordenador. Última comprobación: hai 1 hora.}other{Chromium non atopou ningún software daniño coñecido no teu ordenador. Última comprobación: hai {NUM_HOURS} horas.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_gu.xtb b/chrome/app/resources/chromium_strings_gu.xtb index 5244ff6..69932e43 100644 --- a/chrome/app/resources/chromium_strings_gu.xtb +++ b/chrome/app/resources/chromium_strings_gu.xtb
@@ -185,6 +185,7 @@ <translation id="6863361426438995919">Google Pay (Chromium પર કૉપિ કરેલું છે)</translation> <translation id="6893813176749746474">Chromium અપડેટ કરવામાં આવ્યું હતું, પણ તમે તેનો 30 દિવસ સુધી ઉપયોગ કર્યો નથી.</translation> <translation id="6964305034639999644">Chromium છુ&પી વિંડોમાં લિંક ખોલો</translation> +<translation id="6978145336957848883">નબળા પાસવર્ડનું અનુમાન કરવું સરળ હોય છે. Chromiumને <ph name="BEGIN_LINK" />તમારા માટે સશક્ત પાસવર્ડ બનાવવા અને યાદ રાખવા<ph name="END_LINK" />ની મંજૂરી આપો.</translation> <translation id="6990124437352146030">Chromiumને આ સાઇટ માટે તમારા માઇક્રોફોનના ઍક્સેસની પરવાનગીની જરૂર પડે છે</translation> <translation id="701244094609242530">Chromium તમારા એક્સ્ટેંશન ચેક કરી શકતું નથી. થોડા સમય પછી ફરી પ્રયાસ કરો.</translation> <translation id="7028347026395185822">{NUM_HOURS,plural, =1{Chromiumને તમારા કમ્પ્યુટરમાં જાણીતું હાનિકારક સૉફ્ટવેર મળ્યું નથી. છેલ્લે ચેક કર્યું: 1 કલાક પહેલાં.}one{Chromiumને તમારા કમ્પ્યુટરમાં જાણીતું હાનિકારક સૉફ્ટવેર મળ્યું નથી. છેલ્લે ચેક કર્યું: {NUM_HOURS} કલાક પહેલાં.}other{Chromiumને તમારા કમ્પ્યુટરમાં જાણીતું હાનિકારક સૉફ્ટવેર મળ્યું નથી. છેલ્લે ચેક કર્યું: {NUM_HOURS} કલાક પહેલાં.}}</translation>
diff --git a/chrome/app/resources/chromium_strings_hi.xtb b/chrome/app/resources/chromium_strings_hi.xtb index 7d4bf7f..3420358 100644 --- a/chrome/app/resources/chromium_strings_hi.xtb +++ b/chrome/app/resources/chromium_strings_hi.xtb
@@ -45,14 +45,14 @@ <translation id="2711502716910134313">क्रोमियम टैब</translation> <translation id="2718390899429598676">ज़्यादा सुरक्षा के लिए, क्रोमियम आपके डेटा को सुरक्षित करेगा.</translation> <translation id="2770231113462710648">डिफ़ॉल्ट ब्राउज़र को इसमें बदलें:</translation> -<translation id="2774556997178638058"><ph name="BEGIN_LINK" />आपके एडमिन<ph name="END_LINK" /> ने नुकसान पहुंचाने वाले सॉफ़्टवेयर की जांच करने की, क्रोमियम की सुविधा को बंद कर दिया है</translation> +<translation id="2774556997178638058"><ph name="BEGIN_LINK" />आपके एडमिन<ph name="END_LINK" /> ने नुकसान पहुंचाने वाले सॉफ़्टवेयर की जांच करने की, Chromium की सुविधा को बंद कर दिया है</translation> <translation id="2799223571221894425">फिर से लॉन्च करें</translation> <translation id="2847479871509788944">क्रोमियम से निकालें...</translation> <translation id="2885378588091291677">काम का प्रबंधक</translation> <translation id="2910007522516064972">&क्रोमियम के बारे में</translation> <translation id="2977470724722393594">क्रोमियम अप टू डेट है</translation> <translation id="2983934633046890458">क्रोमियम, पासवर्ड में बदलाव करने की कोशिश कर रहा है.</translation> -<translation id="3031887101543416445">{NUM_DAYS,plural, =1{Chromium को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: एक दिन पहले की गई.}one{Chromium को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: {NUM_DAYS} दिन पहले की गई.}other{Chromium को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: {NUM_DAYS} दिन पहले की गई.}}</translation> +<translation id="3031887101543416445">{NUM_DAYS,plural, =1{Chromium को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: 1 दिन पहले की गई.}one{Chromium को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: {NUM_DAYS} दिन पहले की गई.}other{Chromium को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: {NUM_DAYS} दिन पहले की गई.}}</translation> <translation id="3032706164202344641">क्रोमियम आपके पासवर्ड की जांच नहीं कर सकता. बाद में कोशिश करें.</translation> <translation id="3032787606318309379">क्रोमियम में जोड़ रहा है...</translation> <translation id="3068515742935458733">Google को क्रैश रिपोर्ट और <ph name="UMA_LINK" /> भेजकर क्रोमियम को बेहतर बनाने में मदद करें</translation> @@ -102,7 +102,7 @@ <translation id="4544142686420020088">किसी गड़बड़ी की वजह से क्रोमियम अपडेट नहीं हुआ. <ph name="BEGIN_LINK" />क्रोमियम को अपडेट करने से जुड़ी समस्याएं और नहीं हो पाने वाले अपडेट ठीक करें.<ph name="END_LINK" /></translation> <translation id="4567424176335768812">आपने <ph name="USER_EMAIL_ADDRESS" /> के रूप में साइन इन किया हुआ है. अब आप अपने सभी साइन इन किए हुए डिवाइस पर अपने बुकमार्क, इतिहास, और दूसरी सेटिंग को एक्सेस कर सकते हैं.</translation> <translation id="459535195905078186">क्रोमियम ऐप्स</translation> -<translation id="4595492485953540730">{NUM_MINS,plural, =1{Chromium को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: एक मिनट पहले की गई.}one{Chromium को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: {NUM_MINS} मिनट पहले की गई.}other{Chromium को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: {NUM_MINS} मिनट पहले की गई.}}</translation> +<translation id="4595492485953540730">{NUM_MINS,plural, =1{Chromium को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: 1 मिनट पहले की गई.}one{Chromium को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: {NUM_MINS} मिनट पहले की गई.}other{Chromium को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: {NUM_MINS} मिनट पहले की गई.}}</translation> <translation id="4677944499843243528">ऐसा लगता है कि प्रोफ़ाइल का उपयोग अन्य क्रोमियम प्रोसेस (<ph name="PROCESS_ID" />) द्वारा किसी अन्य कंप्यूटर (<ph name="HOST_NAME" />) पर किया जा रहा है. क्रोमियम ने प्रोफ़ाइल को लॉक कर दिया है ताकि वह दूषित न हो. अगर आप पक्का हैं कि कोई अन्य प्रोसेस इस प्रोफ़ाइल का उपयोग नहीं कर रही हैं, तो आप प्रोफ़ाइल को अनलॉक कर सकते हैं और क्रोमियम को फिर से लॉन्च कर सकते हैं.</translation> <translation id="469338717132742108">क्रोमियम OS के लिए सहायता पाएं</translation> <translation id="4708774505295300557">इस कंप्यूटर पर पहले किसी अन्य व्यक्ति ने <ph name="ACCOUNT_EMAIL_LAST" /> के रूप में Chromium में साइन इन किया. अपनी जानकारी अलग रखने के लिए कृपया नया Chromium उपयोगकर्ता बनाएं.</translation> @@ -187,7 +187,7 @@ <translation id="6978145336957848883">कमज़ोर पासवर्ड का अंदाज़ा लगाना आसान होता है. क्रोमियम को <ph name="BEGIN_LINK" />आपके लिए मज़बूत पासवर्ड बनाने और उन्हें याद रखने की अनुमति दें<ph name="END_LINK" />.</translation> <translation id="6990124437352146030">क्रोमियम को इस साइट के लिए आपका माइक्रोफ़ोन एक्सेस करने की अनुमति चाहिए</translation> <translation id="701244094609242530">क्रोमियम आपके एक्सटेंशन की जांच नहीं कर सकता. बाद में कोशिश करें.</translation> -<translation id="7028347026395185822">{NUM_HOURS,plural, =1{Chromium को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: एक घंटा पहले की गई.}one{Chromium को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: {NUM_HOURS} घंटे पहले की गई.}other{Chromium को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: {NUM_HOURS} घंटे पहले की गई.}}</translation> +<translation id="7028347026395185822">{NUM_HOURS,plural, =1{Chromium को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: 1 घंटे पहले की गई.}one{Chromium को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: {NUM_HOURS} घंटे पहले की गई.}other{Chromium को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: {NUM_HOURS} घंटे पहले की गई.}}</translation> <translation id="705851970750939768">क्रोमियम अपडेट करें</translation> <translation id="7066436765290594559">क्रोमियम OS आपका डेटा सिंक नहीं कर सका. कृपया अपना सिंक 'पासफ़्रेज़' अपडेट करें.</translation> <translation id="7067091210845072982">अगर किसी इमेज के बारे में मददगार जानकारी मौजूद नहीं है, तो 'क्रोमियम' उसके बारे में जानकारी देने की कोशिश करेगा. जानकारी तैयार करने के लिए, इमेज Google को भेजी जाती हैं.</translation>
diff --git a/chrome/app/resources/chromium_strings_hr.xtb b/chrome/app/resources/chromium_strings_hr.xtb index e2fd76ec..790b2f97 100644 --- a/chrome/app/resources/chromium_strings_hr.xtb +++ b/chrome/app/resources/chromium_strings_hr.xtb
@@ -9,6 +9,7 @@ <translation id="1131805035311359397">Da biste provjerili jesu li vaše zaporke sigurne od povrede podataka i drugih poteškoća sa sigurnošću, <ph name="BEGIN_LINK" />prijavite se na Chromium<ph name="END_LINK" />.</translation> <translation id="1185134272377778587">O pregledniku Chromium</translation> <translation id="1315551408014407711">Postavite novi profil u Chromiumu</translation> +<translation id="1357932062193643861">Pitaj kad se otvori Chromium</translation> <translation id="1396446129537741364">Chromium pokušava prikazati zaporke.</translation> <translation id="1414495520565016063">Prijavljeni ste na Chromium!</translation> <translation id="151962892725702025">OS Chromium nije mogao sinkronizirati vaše podatke jer sinkronizacija nije dostupna za vašu domenu.</translation>
diff --git a/chrome/app/resources/chromium_strings_hy.xtb b/chrome/app/resources/chromium_strings_hy.xtb index 0c139d5c..6c7d0e3 100644 --- a/chrome/app/resources/chromium_strings_hy.xtb +++ b/chrome/app/resources/chromium_strings_hy.xtb
@@ -46,7 +46,7 @@ <translation id="2711502716910134313">Chromium-ի ներդիր</translation> <translation id="2718390899429598676">Լրացուցիչ անվտանգության համար Chromium-ը կգաղտնագրի ձեր տվյալները:</translation> <translation id="2770231113462710648">Կանխադրված դիտարկիչը դարձնել՝</translation> -<translation id="2774556997178638058"><ph name="BEGIN_LINK" />Ձեր ադմինիստրատորն<ph name="END_LINK" /> անջատել է Chromium-ի՝ վնասաբեր ծրագրերի ստուգման գործառույթը</translation> +<translation id="2774556997178638058"><ph name="BEGIN_LINK" />Ձեր ադմինիստրատորը<ph name="END_LINK" /> անջատել է Chromium-ի՝ վնասաբեր ծրագրերի ստուգման գործառույթը</translation> <translation id="2799223571221894425">Վերագործարկել</translation> <translation id="2847479871509788944">Հեռացնել Chromium-ից...</translation> <translation id="2885378588091291677">Task Manager</translation>
diff --git a/chrome/app/resources/chromium_strings_is.xtb b/chrome/app/resources/chromium_strings_is.xtb index c295280..3fcdca5d 100644 --- a/chrome/app/resources/chromium_strings_is.xtb +++ b/chrome/app/resources/chromium_strings_is.xtb
@@ -11,6 +11,7 @@ <translation id="1131805035311359397"><ph name="BEGIN_LINK" />Skráðu þig inn á Chromium<ph name="END_LINK" /> til að athuga hvort aðgangsorðin þín séu óhult fyrir öryggisbrotum og öðrum öryggisvandamálum.</translation> <translation id="1185134272377778587">Um Chromium</translation> <translation id="1315551408014407711">Settu upp nýja Chromium prófílinn þinn</translation> +<translation id="1357932062193643861">Spyrja þegar Chromium opnast</translation> <translation id="1396446129537741364">Chromium er að reyna að birta aðgangsorð.</translation> <translation id="1414495520565016063">Þú ert skráð(ur) inn á Chromium!</translation> <translation id="151962892725702025">Chromium OS gat ekki samstillt gögnin þín vegna þess að samstilling er ekki í boði fyrir lénið þitt.</translation>
diff --git a/chrome/app/resources/chromium_strings_it.xtb b/chrome/app/resources/chromium_strings_it.xtb index eb05371..da67620 100644 --- a/chrome/app/resources/chromium_strings_it.xtb +++ b/chrome/app/resources/chromium_strings_it.xtb
@@ -9,6 +9,7 @@ <translation id="1131805035311359397">Per controllare che le tue password siano protette da violazioni dei dati e altri problemi di sicurezza, <ph name="BEGIN_LINK" />accedi a Chromium<ph name="END_LINK" />.</translation> <translation id="1185134272377778587">Informazioni su Chromium</translation> <translation id="1315551408014407711">Configura il tuo nuovo profilo di Chromium</translation> +<translation id="1357932062193643861">Chiedi all'apertura di Chromium</translation> <translation id="1396446129537741364">Chromium sta cercando di visualizzare le password.</translation> <translation id="1414495520565016063">Hai eseguito l'accesso a Chromium.</translation> <translation id="151962892725702025">Impossibile sincronizzare i dati in Chromium OS perché la sincronizzazione non è disponibile per il tuo dominio.</translation>
diff --git a/chrome/app/resources/chromium_strings_iw.xtb b/chrome/app/resources/chromium_strings_iw.xtb index 3246172..c4748c4 100644 --- a/chrome/app/resources/chromium_strings_iw.xtb +++ b/chrome/app/resources/chromium_strings_iw.xtb
@@ -46,7 +46,7 @@ <translation id="2770231113462710648">שנה את דפדפן ברירת המחדל ל:</translation> <translation id="2774556997178638058"><ph name="BEGIN_LINK" />מנהל המערכת<ph name="END_LINK" /> השבית את הבדיקה של Chromium לאיתור תוכנות מזיקות</translation> <translation id="2799223571221894425">הפעל מחדש</translation> -<translation id="2847479871509788944">הסר מ-Chromium...</translation> +<translation id="2847479871509788944">הסרה מ-Chromium...</translation> <translation id="2885378588091291677">מנהל המשימות</translation> <translation id="2910007522516064972">מידע על &Chromium</translation> <translation id="2977470724722393594">Chromium מעודכן</translation> @@ -122,7 +122,7 @@ <translation id="538767207339317086">התרת כניסה אל Chromium</translation> <translation id="5398878173008909840">גרסה חדשה של Chromium זמינה כעת.</translation> <translation id="5416696090975899932">Chromium לא יכול להראות את התצוגה המקדימה של ההדפסה כשמציג ה-PDF המובנה חסר.</translation> -<translation id="5427571867875391349">הגדר את Chromium כדפדפן ברירת המחדל שלך</translation> +<translation id="5427571867875391349">הגדרת Chromium כדפדפן ברירת המחדל שלך</translation> <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium בגירסת ביטא</translation> <translation id="5479196819031988440">מערכת ההפעלה של Chromium אינה יכול לפתוח את הדף הזה.</translation> <translation id="5480860683791598150">Chromium זקוק לגישה למיקום שלך כדי לשתף אותו עם האתר הזה</translation> @@ -135,7 +135,7 @@ <translation id="5698481217667032250">הצג את Chromium בשפה זו</translation> <translation id="5820394555380036790">מערכת ההפעלה של Chromium</translation> <translation id="5862307444128926510">ברוכים הבאים ל-Chromium</translation> -<translation id="5895138241574237353">הפעל מחדש</translation> +<translation id="5895138241574237353">הפעלה מחדש</translation> <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – כניסה לרשת</translation> <translation id="5987687638152509985">יש לעדכן את Chromium כדי להתחיל את הסנכרון</translation> <translation id="6013050204643758987">הפיתוח של מערכת ההפעלה Chromium אפשרי בזכות <ph name="BEGIN_LINK_CROS_OSS" />תוכנות קוד פתוח<ph name="END_LINK_CROS_OSS" /> נוספות, כמו <ph name="BEGIN_LINK_LINUX_OSS" />Linux (בטא)<ph name="END_LINK_LINUX_OSS" />.</translation> @@ -149,22 +149,22 @@ <translation id="6129621093834146363"><ph name="FILE_NAME" /> מסוכן, ולכן Chromium חסם אותו.</translation> <translation id="6134968993075716475">הגלישה הבטוחה כבויה. ההמלצה של Chromium היא להפעיל אותה.</translation> <translation id="6183079672144801177">יש לוודא שנכנסת ל-Chromium ב-<ph name="TARGET_DEVICE_NAME" /> שלך ולשלוח שוב.</translation> -<translation id="6212496753309875659">במחשב זה קיימת כבר גרסה מתקדמת יותר של Chromium. אם התוכנה אינה פועלת, הסר את ההתקנה של Chromium ונסה שוב.</translation> +<translation id="6212496753309875659">במחשב זה קיימת כבר גרסה מתקדמת יותר של Chromium. אם התוכנה אינה פועלת, יש להסיר את ההתקנה של Chromium ולנסות שוב.</translation> <translation id="6219195342503754812">{0,plural, =0{Chromium יופעל מחדש עכשיו}=1{Chromium יופעל מחדש בעוד שנייה אחת}two{Chromium יופעל מחדש בעוד # שניות}many{Chromium יופעל מחדש בעוד # שניות}other{Chromium יופעל מחדש בעוד # שניות}}</translation> <translation id="623836266260425961">מערכת Chromium OS לא הצליחה לסנכרן את הנתונים שלך.</translation> -<translation id="6248213926982192922">הפוך את Chromium לדפדפן ברירת המחדל</translation> +<translation id="6248213926982192922">יש להפוך את Chromium לדפדפן ברירת המחדל</translation> <translation id="6266342355635466082">Chromium לא יכול לחפש עדכונים. יש לבדוק את החיבור לאינטרנט.</translation> <translation id="6268381023930128611">האם לצאת מ-Chromium?</translation> <translation id="6295779123002464101"><ph name="FILE_NAME" /> עלול להיות מסוכן, ולכן Chromium חסם אותו.</translation> <translation id="6309712487085796862">Chromium משתמש במצלמה שלך.</translation> <translation id="6333502561965082103">מתבצעת כרגע פעולה אחרת ב-Chromium. נסה שוב מאוחר יותר.</translation> <translation id="6334986366598267305">קל יותר כעת להשתמש ב-Chromium באמצעות חשבון Google שלך ובמחשבים משותפים.</translation> -<translation id="6373523479360886564">האם אתה בטוח שברצונך להסיר את התקנת Chromium?</translation> +<translation id="6373523479360886564">ברצונך באמת להסיר את התקנת Chromium?</translation> <translation id="6403826409255603130">Chromium הוא דפדפן אינטרנט המפעיל דפי אינטרנט ואפליקציות במהירות הבזק. זהו דפדפן מהיר, יציב וקל לשימוש שמאפשר לך לגלוש באינטרנט בצורה מאובטחת יותר הודות להגנה מפני תוכנות זדוניות ופישינג המובנית ב-Chromium.</translation> <translation id="6434250628340475518">מערכת Chromium OS</translation> <translation id="6457450909262716557">{SECONDS,plural, =1{Chromium יבצע אתחול בעוד שנייה אחת}two{Chromium יבצע אתחול בעוד # שניות}many{Chromium יבצע אתחול בעוד # שניות}other{Chromium יבצע אתחול בעוד # שניות}}</translation> <translation id="6475912303565314141">הגדרה זו גם קובעת איזה דף מוצג כשאתה מפעיל את Chromium.</translation> -<translation id="6510925080656968729">הסר את התקנת Chromium</translation> +<translation id="6510925080656968729">הסרה של התקנת Chromium</translation> <translation id="6570579332384693436">Chromium שולח את הטקסט שמוקלד בשדות טקסט ל-Google כדי לתקן שגיאות כתיב</translation> <translation id="6598877126913850652">מעבר אל הגדרות ההודעות של Chromium</translation> <translation id="6676384891291319759">גישה אל האינטרנט</translation> @@ -202,7 +202,7 @@ <translation id="734373864078049451">היסטוריית האתרים, הסימניות ונתונים נוספים מ-Chromium נמצאים כאן.</translation> <translation id="7349591376906416160">לפי הגדרת מנהל המערכת, Chromium יפתח את<ph name="ALTERNATIVE_BROWSER_NAME" /> כדי לגשת אל <ph name="TARGET_URL_HOSTNAME" />.</translation> <translation id="7448255348454382571">הפעלה מחדש של Chromium OS</translation> -<translation id="7449453770951226939"><ph name="PAGE_TITLE" /> - Chromium בגירסת פיתוח</translation> +<translation id="7449453770951226939"><ph name="PAGE_TITLE" /> - Chromium בגרסת פיתוח</translation> <translation id="7451052299415159299">Chromium זקוק להרשאת גישה למצלמה בשביל האתר הזה</translation> <translation id="7483335560992089831">לא ניתן להתקין את אותה גרסת Chromium שפועלת כרגע. יש לסגור את Chromium ולנסות שוב.</translation> <translation id="753534427205733210">{0,plural, =1{Chromium יופעל מחדש בעוד דקה}two{Chromium יופעל מחדש בעוד # דקות}many{Chromium יופעל מחדש בעוד # דקות}other{Chromium יופעל מחדש בעוד # דקות}}</translation> @@ -236,20 +236,20 @@ <translation id="8330519371938183845">כניסה לחשבון תסנכרן ותתאים אישית את Chromium בכל המכשירים שברשותך</translation> <translation id="8340674089072921962">בכתובת <ph name="USER_EMAIL_ADDRESS" /> השתמשו בעבר ב-Chromium</translation> <translation id="8417404458978023919">{0,plural, =1{צריך להפעיל מחדש את Chromium בתוך יום אחד}two{צריך להפעיל מחדש את Chromium בתוך # ימים}many{צריך להפעיל מחדש את Chromium בתוך # ימים}other{צריך להפעיל מחדש את Chromium בתוך # ימים}}</translation> -<translation id="8453117565092476964">הארכיון של המתקין פגום או שאינו חוקי. הורד שוב את Chromium.</translation> +<translation id="8453117565092476964">הארכיון של המתקין פגום או שאינו חוקי. יש להוריד שוב את Chromium.</translation> <translation id="8493179195440786826">Chromium אינו מעודכן</translation> <translation id="8558383651099478961">אחד מההורים השבית ב-Chromium את ההגדרה "הרשאות לאתרים, אפליקציות ותוספים". לא ניתן להוסיף את ה<ph name="EXTENSION_TYPE_PARAMETER" />.</translation> <translation id="8568283329061645092">Chromium יכול לבדוק את הסיסמאות כשנכנסים באמצעות חשבון Google</translation> <translation id="8586442755830160949">Copyright <ph name="YEAR" /> The Chromium Authors. כל הזכויות שמורות.</translation> <translation id="8619360774459241877">הפעלת Chromium מתבצעת...</translation> -<translation id="8621669128220841554">ההתקנה נכשלה בשל שגיאה לא מזוהה. הורד שוב את Chromium.</translation> +<translation id="8621669128220841554">ההתקנה נכשלה בשל שגיאה לא מזוהה. יש להוריד שוב את Chromium.</translation> <translation id="8697124171261953979">הגדרה זו גם קובעת איזה דף מוצג כשאתה מפעיל את Chromium או מבצע חיפוש מסרגל הכתובות.</translation> <translation id="8704119203788522458">זהו ה-Chromium שלך</translation> <translation id="8733034664173984083">אירעה שגיאה בזמן ש-Chromium בדק את המחשב לאיתור תוכנה מזיקה</translation> <translation id="8796602469536043152">Chromium זקוק להרשאת גישה אל המצלמה והמיקרופון בשביל האתר הזה</translation> <translation id="8803635938069941624">תנאים עבור מערכת ההפעלה של Chromium</translation> <translation id="8821041990367117597">Chromium לא הצליח לסנכרן את הנתונים שלך מפני שפרטי הכניסה של חשבונך אינם מעודכנים.</translation> -<translation id="8862326446509486874">אין לך זכויות שמתאימות להתקנה ברמת המערכת. נסה להפעיל שוב את המתקין כמנהל מערכת.</translation> +<translation id="8862326446509486874">אין לך זכויות שמתאימות להתקנה ברמת המערכת. יש לנסות להפעיל שוב את המתקין כמנהל מערכת.</translation> <translation id="8880203542552872219">אם שינית את הסיסמה הזו, יש לערוך את הסיסמה השמורה ב-Chromium כך שהיא תתאים לסיסמה החדשה שלך.</translation> <translation id="8897323336392112261">הגדרה זו גם קובעת איזה דף מוצג שאתה מפעיל את Chromium או לוחץ על הלחצן 'דף הבית'.</translation> <translation id="8907580949721785412">Chromium מנסה להציג סיסמאות. הקלד את הסיסמה שלך ל-Windows כדי לאפשר זאת.</translation>
diff --git a/chrome/app/resources/chromium_strings_kk.xtb b/chrome/app/resources/chromium_strings_kk.xtb index 40ae32a..2b9ebbb 100644 --- a/chrome/app/resources/chromium_strings_kk.xtb +++ b/chrome/app/resources/chromium_strings_kk.xtb
@@ -11,6 +11,7 @@ <translation id="1131805035311359397">Құпия сөздеріңіздің ұрланудан және басқа да қауіпсіздік мәселелерінен қаншалықты қорғалғанын тексеру үшін <ph name="BEGIN_LINK" />Chromium браузеріне кіріңіз<ph name="END_LINK" />.</translation> <translation id="1185134272377778587">Chromium туралы ақпарат</translation> <translation id="1315551408014407711">Жаңа Chromium профилінің параметрлерін реттеу</translation> +<translation id="1357932062193643861">Chromium ашылғанда сұрау</translation> <translation id="1396446129537741364">Chromium құпия сөздерді көрсетпек.</translation> <translation id="1414495520565016063">Chromium жүйесіне кірдіңіз!</translation> <translation id="151962892725702025">Chromium OS деректеріңізді синхрондай алмады, себебі синхрондау функциясы доменіңіз үшін қолжетімді емес.</translation>
diff --git a/chrome/app/resources/chromium_strings_ky.xtb b/chrome/app/resources/chromium_strings_ky.xtb index 6b38397..de290182 100644 --- a/chrome/app/resources/chromium_strings_ky.xtb +++ b/chrome/app/resources/chromium_strings_ky.xtb
@@ -11,6 +11,7 @@ <translation id="1131805035311359397">Сырсөздөрүңүздүн бекем корголгонун, ошондой эле коопсуздукка байланыштуу көйгөйлөрдү текшерүү үчүн <ph name="BEGIN_LINK" />Chromium'га кириңиз<ph name="END_LINK" />.</translation> <translation id="1185134272377778587">Chromium жөнүндө</translation> <translation id="1315551408014407711">Жаңы Chromium профилин жөндөп алыңыз</translation> +<translation id="1357932062193643861">Chromium'ду ачканда суралсын</translation> <translation id="1396446129537741364">Chromium сырсөздөрдү көрсөткөнгө аракет кылып жатат.</translation> <translation id="1414495520565016063">Chromium'га кирдиңиз!</translation> <translation id="151962892725702025">Сиздин домениңизде шайкештештирүү мүмкүнчүлүгү жок болгондуктан, Chromium OS дайын-даректериңизди шайкештештире алган жок.</translation>
diff --git a/chrome/app/resources/chromium_strings_lt.xtb b/chrome/app/resources/chromium_strings_lt.xtb index 4e2e46e..aa97078 100644 --- a/chrome/app/resources/chromium_strings_lt.xtb +++ b/chrome/app/resources/chromium_strings_lt.xtb
@@ -11,6 +11,7 @@ <translation id="1131805035311359397">Jei norite patikrinti, ar slaptažodžiai apsaugoti nuo duomenų saugos pažeidimų bei kitų saugos problemų, <ph name="BEGIN_LINK" />prisijunkite prie „Chromium“<ph name="END_LINK" />.</translation> <translation id="1185134272377778587">Apie „Chromium“</translation> <translation id="1315551408014407711">Nustatykite naują „Chromium“ profilį</translation> +<translation id="1357932062193643861">Klausti, kai atidaroma „Chromium“</translation> <translation id="1396446129537741364">„Chromium“ bando parodyti slaptažodžius.</translation> <translation id="1414495520565016063">Esate prisijungę prie „Chromium“.</translation> <translation id="151962892725702025">„Chromium“ OS negali sinchronizuoti duomenų, nes jūsų domene sinchronizavimas nepasiekiamas.</translation>
diff --git a/chrome/app/resources/chromium_strings_lv.xtb b/chrome/app/resources/chromium_strings_lv.xtb index 58de24b..467fbb3b 100644 --- a/chrome/app/resources/chromium_strings_lv.xtb +++ b/chrome/app/resources/chromium_strings_lv.xtb
@@ -9,6 +9,7 @@ <translation id="1131805035311359397">Lai pārbaudītu, vai jūsu paroles ir aizsargātas pret datu pārkāpumiem un citām drošības problēmām, <ph name="BEGIN_LINK" />pierakstieties pārlūkā Chromium<ph name="END_LINK" />.</translation> <translation id="1185134272377778587">Par Chromium</translation> <translation id="1315551408014407711">Jaunā Chromium profila iestatīšana</translation> +<translation id="1357932062193643861">Vaicāt, kad tiek atvērts pārlūks Chromium</translation> <translation id="1396446129537741364">Chromium mēģina rādīt paroles.</translation> <translation id="1414495520565016063">Esat pierakstījies operētājsistēmā Chromium!</translation> <translation id="151962892725702025">Chromium OS nevarēja sinhronizēt jūsu datus, jo jūsu domēnā nav pieejama sinhronizācija.</translation>
diff --git a/chrome/app/resources/chromium_strings_mk.xtb b/chrome/app/resources/chromium_strings_mk.xtb index 97df4b5..baceaef 100644 --- a/chrome/app/resources/chromium_strings_mk.xtb +++ b/chrome/app/resources/chromium_strings_mk.xtb
@@ -11,6 +11,7 @@ <translation id="1131805035311359397">За да проверите дали вашите лозинки се заштитени од упад во податоците и други проблеми со безбедноста, <ph name="BEGIN_LINK" />најавете се на Chromium<ph name="END_LINK" />.</translation> <translation id="1185134272377778587">За Chromium</translation> <translation id="1315551408014407711">Поставете нов профил на Chromium</translation> +<translation id="1357932062193643861">Прашувај кога ќе се отвори Chromium</translation> <translation id="1396446129537741364">Chromium се обидува да покаже лозинки.</translation> <translation id="1414495520565016063">Најавени сте на Chromium!</translation> <translation id="151962892725702025">Chromium ОС не може да ги синхронизира вашите податоци бидејќи синхронизацијата не е достапна за вашиот домен.</translation>
diff --git a/chrome/app/resources/chromium_strings_nl.xtb b/chrome/app/resources/chromium_strings_nl.xtb index b2f4931..ea5ef3f 100644 --- a/chrome/app/resources/chromium_strings_nl.xtb +++ b/chrome/app/resources/chromium_strings_nl.xtb
@@ -90,7 +90,7 @@ <translation id="3945058413678539331">Chromium probeert wachtwoorden te kopiëren. Geef je Windows-wachtwoord op om dit toe te staan.</translation> <translation id="4036079820698952681">Help Chromium beter te maken door de <ph name="BEGIN_LINK" />huidige instellingen<ph name="END_LINK" /> te melden</translation> <translation id="4050175100176540509">Er zijn belangrijke beveiligingsverbeteringen en nieuwe functies beschikbaar in de nieuwste versie.</translation> -<translation id="4136604564421273381">Chromium verwijdert schadelijke software op je computer…</translation> +<translation id="4136604564421273381">Chromium verwijdert schadelijke software van je computer…</translation> <translation id="419998258129752635"><ph name="PAGE_TITLE" /> - Inloggen bij netwerk - Chromium</translation> <translation id="421369550622382712">Ontdek fantastische apps, games, extensies en thema's voor Chromium.</translation> <translation id="4216212958613226427">Deze taal wordt gebruikt om de Chromium-UI weer te geven</translation>
diff --git a/chrome/app/resources/chromium_strings_no.xtb b/chrome/app/resources/chromium_strings_no.xtb index 722b7bd..05d0957 100644 --- a/chrome/app/resources/chromium_strings_no.xtb +++ b/chrome/app/resources/chromium_strings_no.xtb
@@ -9,6 +9,7 @@ <translation id="1131805035311359397">For å sjekke om passordene dine er trygge mot databrudd og andre sikkerhetsproblemer, <ph name="BEGIN_LINK" />logg på Chromium<ph name="END_LINK" />.</translation> <translation id="1185134272377778587">Om Chromium</translation> <translation id="1315551408014407711">Konfigurer den nye Chromium-profilen din</translation> +<translation id="1357932062193643861">Spør når Chromium åpnes</translation> <translation id="1396446129537741364">Chromium prøver å vise passord.</translation> <translation id="1414495520565016063">Du er logget på Chromium.</translation> <translation id="151962892725702025">Chromium OS kunne ikke synkronisere dataene dine fordi synkronisering ikke er tilgjengelig for domenet ditt.</translation>
diff --git a/chrome/app/resources/chromium_strings_pa.xtb b/chrome/app/resources/chromium_strings_pa.xtb index cf0a790..9532b8dd 100644 --- a/chrome/app/resources/chromium_strings_pa.xtb +++ b/chrome/app/resources/chromium_strings_pa.xtb
@@ -185,6 +185,7 @@ <translation id="6863361426438995919">Google Pay (Chromium 'ਤੇ ਕਾਪੀ ਕੀਤਾ ਗਿਆ)</translation> <translation id="6893813176749746474">Chromium ਨੂੰ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ ਹੈ, ਪਰੰਤੂ ਤੁਸੀਂ ਇਸਨੂੰ ਪਿਛਲੇ ਘੱਟੋ-ਘੱਟ 30 ਦਿਨਾਂ ਤੋਂ ਨਹੀਂ ਵਰਤਿਆ ਹੈ।</translation> <translation id="6964305034639999644">Chromium ਇਨ&ਕੋਗਨਿਟੋ ਵਿੰਡੋ ਵਿੱਚ ਲਿੰਕ ਖੋਲ੍ਹੋ</translation> +<translation id="6978145336957848883">ਕਮਜ਼ੋਰ ਪਾਸਵਰਡਾਂ ਦਾ ਅੰਦਾਜ਼ਾ ਲਗਾਉਣਾ ਆਸਾਨ ਹੁੰਦਾ ਹੈ। Chromium ਨੂੰ <ph name="BEGIN_LINK" />ਤੁਹਾਡੇ ਲਈ ਮਜ਼ਬੂਤ ਪਾਸਵਰਡ ਬਣਾਉਣ ਅਤੇ ਯਾਦ ਰੱਖਣ<ph name="END_LINK" /> ਦਿਓ।</translation> <translation id="6990124437352146030">Chromium ਨੂੰ ਇਸ ਸਾਈਟ ਵਾਸਤੇ ਤੁਹਾਡੇ ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ ਇਜਾਜ਼ਤ ਦੀ ਲੋੜ ਹੈ</translation> <translation id="701244094609242530">Chromium ਤੁਹਾਡੀਆਂ ਐਕਸਟੈਂਸ਼ਨਾਂ ਦੀ ਜਾਂਚ ਨਹੀਂ ਕਰ ਸਕਦਾ। ਬਾਅਦ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation> <translation id="7028347026395185822">{NUM_HOURS,plural, =1{Chromium ਨੂੰ ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਵਿੱਚ ਕੋਈ ਜਾਣੂ ਹਾਨੀਕਾਰਕ ਸਾਫ਼ਟਵੇਅਰ ਨਹੀਂ ਲੱਭਿਆ। ਪਿਛਲੀ ਵਾਰ ਜਾਂਚ ਕੀਤੀ ਗਈ: 1 ਘੰਟਾ ਪਹਿਲਾਂ।}one{Chromium ਨੂੰ ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਵਿੱਚ ਕੋਈ ਜਾਣੂ ਹਾਨੀਕਾਰਕ ਸਾਫ਼ਟਵੇਅਰ ਨਹੀਂ ਲੱਭਿਆ। ਪਿਛਲੀ ਵਾਰ ਜਾਂਚ ਕੀਤੀ ਗਈ: {NUM_HOURS} ਘੰਟਾ ਪਹਿਲਾਂ।}other{Chromium ਨੂੰ ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਵਿੱਚ ਕੋਈ ਜਾਣੂ ਹਾਨੀਕਾਰਕ ਸਾਫ਼ਟਵੇਅਰ ਨਹੀਂ ਲੱਭਿਆ। ਪਿਛਲੀ ਵਾਰ ਜਾਂਚ ਕੀਤੀ ਗਈ: {NUM_HOURS} ਘੰਟੇ ਪਹਿਲਾਂ।}}</translation>
diff --git a/chrome/app/resources/chromium_strings_pl.xtb b/chrome/app/resources/chromium_strings_pl.xtb index a3f5ca21..a69d8fe8 100644 --- a/chrome/app/resources/chromium_strings_pl.xtb +++ b/chrome/app/resources/chromium_strings_pl.xtb
@@ -9,6 +9,7 @@ <translation id="1131805035311359397">Aby sprawdzić, czy Twoje hasła są chronione przed naruszeniami bezpieczeństwa danych i innymi zagrożeniami tego typu, <ph name="BEGIN_LINK" />zaloguj się w Chromium<ph name="END_LINK" />.</translation> <translation id="1185134272377778587">Chromium – informacje</translation> <translation id="1315551408014407711">Skonfiguruj nowy profil w Chromium</translation> +<translation id="1357932062193643861">Pytaj podczas otwierania Chromium</translation> <translation id="1396446129537741364">Chromium próbuje pokazać hasła.</translation> <translation id="1414495520565016063">Jesteś zalogowany w Chromium.</translation> <translation id="151962892725702025">System operacyjny Chromium nie może zsynchronizować danych, ponieważ synchronizacja jest niedostępna w Twojej domenie.</translation>
diff --git a/chrome/app/resources/chromium_strings_pt-BR.xtb b/chrome/app/resources/chromium_strings_pt-BR.xtb index dd5b808..b976b71 100644 --- a/chrome/app/resources/chromium_strings_pt-BR.xtb +++ b/chrome/app/resources/chromium_strings_pt-BR.xtb
@@ -9,6 +9,7 @@ <translation id="1131805035311359397">Para verificar se suas senhas estão protegidas contra violações de dados e outros problemas de segurança, <ph name="BEGIN_LINK" />faça login no Chromium<ph name="END_LINK" />.</translation> <translation id="1185134272377778587">Sobre o Chromium</translation> <translation id="1315551408014407711">Configure seu novo perfil do Chromium</translation> +<translation id="1357932062193643861">Perguntar ao abrir o Chromium</translation> <translation id="1396446129537741364">O Chromium está tentando mostrar senhas.</translation> <translation id="1414495520565016063">Você está conectado ao Chromium.</translation> <translation id="151962892725702025">O Chromium OS não pôde sincronizar seus dados porque a sincronização não está disponível para seu domínio.</translation>
diff --git a/chrome/app/resources/chromium_strings_pt-PT.xtb b/chrome/app/resources/chromium_strings_pt-PT.xtb index 212a36d..1d1f9d7 100644 --- a/chrome/app/resources/chromium_strings_pt-PT.xtb +++ b/chrome/app/resources/chromium_strings_pt-PT.xtb
@@ -9,6 +9,7 @@ <translation id="1131805035311359397">Para verificar se as suas palavras-passe estão protegidas contra violação de dados e outros problemas de segurança, <ph name="BEGIN_LINK" />inicie sessão no Chromium<ph name="END_LINK" />.</translation> <translation id="1185134272377778587">Acerca do Chromium</translation> <translation id="1315551408014407711">Configure o seu novo perfil do Chromium</translation> +<translation id="1357932062193643861">Perguntar quando o Chromium abrir</translation> <translation id="1396446129537741364">O Chromium está a tentar mostrar palavras-passe.</translation> <translation id="1414495520565016063">Tem sessão iniciada no Chromium!</translation> <translation id="151962892725702025">O SO Chromium não conseguiu sincronizar os dados porque a sincronização não está disponível para o seu domínio.</translation>
diff --git a/chrome/app/resources/chromium_strings_ro.xtb b/chrome/app/resources/chromium_strings_ro.xtb index 25b82ea..e3f0a25 100644 --- a/chrome/app/resources/chromium_strings_ro.xtb +++ b/chrome/app/resources/chromium_strings_ro.xtb
@@ -9,6 +9,7 @@ <translation id="1131805035311359397">Ca să verifici dacă parolele sunt protejate împotriva încălcării securității datelor și a altor probleme de securitate, <ph name="BEGIN_LINK" />conectează-te la Chromium<ph name="END_LINK" />.</translation> <translation id="1185134272377778587">Despre Chromium</translation> <translation id="1315551408014407711">Configurează noul profil Chromium</translation> +<translation id="1357932062193643861">Întreabă atunci când se deschide Chromium</translation> <translation id="1396446129537741364">Chromium încearcă să afișeze parolele.</translation> <translation id="1414495520565016063">V-ați conectat la Chromium!</translation> <translation id="151962892725702025">Sistemul de operare Chromium nu a putut sincroniza datele, deoarece sincronizarea nu este disponibilă pentru domeniul dvs.</translation>
diff --git a/chrome/app/resources/chromium_strings_sl.xtb b/chrome/app/resources/chromium_strings_sl.xtb index 03e2ad5..972f6c99 100644 --- a/chrome/app/resources/chromium_strings_sl.xtb +++ b/chrome/app/resources/chromium_strings_sl.xtb
@@ -53,7 +53,7 @@ <translation id="2910007522516064972">O &Chromiumu</translation> <translation id="2977470724722393594">Chromium je posodobljen</translation> <translation id="2983934633046890458">Chromium poskuša urejati gesla.</translation> -<translation id="3031887101543416445">{NUM_DAYS,plural, =1{Chromium v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred 1 dnevom.}one{Chromium v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_DAYS} dnevom.}two{Chromium v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_DAYS} dnevoma.}few{Chromium v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_DAYS} dnevi.}other{Chromium v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_DAYS} dnevi.}}</translation> +<translation id="3031887101543416445">{NUM_DAYS,plural, =1{Chromium v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred 1 dnevom.}one{Chromium v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_DAYS} dnevom.}two{Chromium v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_DAYS} dnevoma.}few{Chromium v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_DAYS} dnevi.}other{Chromium v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_DAYS} dnevi.}}</translation> <translation id="3032706164202344641">Chromium ne more preveriti gesel. Poskusite pozneje.</translation> <translation id="3032787606318309379">Dodajanje v Chromium ...</translation> <translation id="3068515742935458733">Pomagajte izboljšati Chromium – Googlu pošiljajte poročila o zrušitvah in ta dokument: <ph name="UMA_LINK" />.</translation> @@ -96,14 +96,14 @@ <translation id="4230135487732243613">Želite svoje podatke v Chromiumu povezati s tem računom?</translation> <translation id="4271805377592243930">Pomoč za Chromium</translation> <translation id="4285930937574705105">Namestitev ni bila izvedena zaradi nedoločene napake. Če se Chromium trenutno izvaja, ga zaprite in poskusite znova.</translation> -<translation id="4352041330999353637">Chromium v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Včeraj.</translation> +<translation id="4352041330999353637">Chromium v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Včeraj.</translation> <translation id="4407044323746248786">Želite vseeno zapreti Chromium?</translation> <translation id="4415566066719264597">Naj se Chromium izvaja v ozadju</translation> <translation id="4423735387467980091">Prilagajanje in nadziranje Chromiuma</translation> <translation id="4544142686420020088">Chromium se ni posodobil, prišlo je do napake. <ph name="BEGIN_LINK" />Odpravite težave s posodobitvijo Chromiuma in neuspelimi posodobitvami Chromiuma.<ph name="END_LINK" /></translation> <translation id="4567424176335768812">Prijavljeni ste kot <ph name="USER_EMAIL_ADDRESS" />. Zdaj imate dostop do zaznamkov, zgodovine in drugih nastavitev v vseh napravah, v katerih ste prijavljeni.</translation> <translation id="459535195905078186">Aplikacije za Chromium</translation> -<translation id="4595492485953540730">{NUM_MINS,plural, =1{Chromium v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred 1 minuto.}one{Chromium v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_MINS} minuto.}two{Chromium v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_MINS} minutama.}few{Chromium v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_MINS} minutami.}other{Chromium v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_MINS} minutami.}}</translation> +<translation id="4595492485953540730">{NUM_MINS,plural, =1{Chromium v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred 1 minuto.}one{Chromium v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_MINS} minuto.}two{Chromium v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_MINS} minutama.}few{Chromium v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_MINS} minutami.}other{Chromium v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_MINS} minutami.}}</translation> <translation id="4677944499843243528">Videti je, da profil uporablja drug Chromiumov proces (<ph name="PROCESS_ID" />) v drugem računalniku (<ph name="HOST_NAME" />). Chromium je zaklenil profil, da se ne poškoduje. Če ste prepričani, da tega profila ne uporabljajo nobeni drugi procesi, ga lahko odklenete in znova zaženete Chromium.</translation> <translation id="469338717132742108">Pomoč za OS Chromium</translation> <translation id="4708774505295300557">Nekdo se je prijavil v Chromium v tem računalniku kot <ph name="ACCOUNT_EMAIL_LAST" />. Ustvarite nov uporabniški profil za Chromium, če želite, da bodo vaši podatki ločeni.</translation> @@ -177,7 +177,7 @@ Nekatere funkcije morda ne bodo na voljo. Določite drug imenik profila ali uporabite novejšo različico Chromiuma.</translation> <translation id="6734080038664603509">Posodobi &Chromium</translation> <translation id="6734291798041940871">Chromium je že nameščen za vse uporabnike v računalniku.</translation> -<translation id="6737557815519435616">Chromium v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pravkar.</translation> +<translation id="6737557815519435616">Chromium v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pravkar.</translation> <translation id="6762551859069255163">Uporabite različna profila v Chromiumu za ločitev službenega in osebnega brskanja ali za različne osebe, ki uporabljajo to napravo</translation> <translation id="6774082503108938489">Tvoj starš je izklopil »Dovoljenja za spletna mesta, aplikacije in razširitve« za Chromium. Omogočanje tega ni dovoljeno: <ph name="EXTENSION_TYPE_PARAMETER" />.</translation> <translation id="6847869444787758381">Chromium vam sporoči, ali so gesla ogrožena</translation> @@ -188,7 +188,7 @@ <translation id="6978145336957848883">Šibka gesla je preprosto ugotoviti. Chromiumu omogočite, da <ph name="BEGIN_LINK" />ustvari zapletena gesla za vas in jih shrani<ph name="END_LINK" />.</translation> <translation id="6990124437352146030">Chromium potrebuje dovoljenje za dostop do mikrofona za to spletno mesto</translation> <translation id="701244094609242530">Chromium ne more preveriti razširitev. Poskusite pozneje.</translation> -<translation id="7028347026395185822">{NUM_HOURS,plural, =1{Chromium v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred 1 uro.}one{Chromium v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_HOURS} uro.}two{Chromium v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_HOURS} urama.}few{Chromium v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_HOURS} urami.}other{Chromium v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_HOURS} urami.}}</translation> +<translation id="7028347026395185822">{NUM_HOURS,plural, =1{Chromium v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred 1 uro.}one{Chromium v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_HOURS} uro.}two{Chromium v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_HOURS} urama.}few{Chromium v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_HOURS} urami.}other{Chromium v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_HOURS} urami.}}</translation> <translation id="705851970750939768">Posodobi Chromium</translation> <translation id="7066436765290594559">Chromium OS ni mogel sinhronizirati podatkov. Posodobite sinhronizacijsko geslo.</translation> <translation id="7067091210845072982">Če slika nima koristnega opisa, ga bo Chromium poskušal zagotoviti. Opisi se ustvarijo tako, da se slike pošljejo Googlu.</translation>
diff --git a/chrome/app/resources/chromium_strings_sr-Latn.xtb b/chrome/app/resources/chromium_strings_sr-Latn.xtb index a21b3043..21a5e3c5 100644 --- a/chrome/app/resources/chromium_strings_sr-Latn.xtb +++ b/chrome/app/resources/chromium_strings_sr-Latn.xtb
@@ -11,6 +11,7 @@ <translation id="1131805035311359397">Da biste proverili da li su lozinke bezbedne od upada u podatke i drugih bezbednosnih problema, <ph name="BEGIN_LINK" />prijavite se u Chromium<ph name="END_LINK" />.</translation> <translation id="1185134272377778587">O Chromium-u</translation> <translation id="1315551408014407711">Podesite nov Chromium profil</translation> +<translation id="1357932062193643861">Pitaj kada se Chromium otvara</translation> <translation id="1396446129537741364">Chromium pokušava da prikaže lozinke.</translation> <translation id="1414495520565016063">Prijavljeni ste na Chromium!</translation> <translation id="151962892725702025">Chromium OS ne može da sinhronizuje podatke jer Sinhronizacija nije dostupna za domen.</translation>
diff --git a/chrome/app/resources/chromium_strings_sr.xtb b/chrome/app/resources/chromium_strings_sr.xtb index 2b23149..241fa73 100644 --- a/chrome/app/resources/chromium_strings_sr.xtb +++ b/chrome/app/resources/chromium_strings_sr.xtb
@@ -11,6 +11,7 @@ <translation id="1131805035311359397">Да бисте проверили да ли су лозинке безбедне од упада у податке и других безбедносних проблема, <ph name="BEGIN_LINK" />пријавите се у Chromium<ph name="END_LINK" />.</translation> <translation id="1185134272377778587">О Chromium-у</translation> <translation id="1315551408014407711">Подесите нов Chromium профил</translation> +<translation id="1357932062193643861">Питај када се Chromium отвара</translation> <translation id="1396446129537741364">Chromium покушава да прикаже лозинке.</translation> <translation id="1414495520565016063">Пријављени сте на Chromium!</translation> <translation id="151962892725702025">Chromium ОС не може да синхронизује податке јер Синхронизација није доступна за домен.</translation>
diff --git a/chrome/app/resources/chromium_strings_sv.xtb b/chrome/app/resources/chromium_strings_sv.xtb index eb54521..192a5093 100644 --- a/chrome/app/resources/chromium_strings_sv.xtb +++ b/chrome/app/resources/chromium_strings_sv.xtb
@@ -11,6 +11,7 @@ <translation id="1131805035311359397"><ph name="BEGIN_LINK" />Logga in i Chromium<ph name="END_LINK" /> om du vill kontrollera att dina lösenord skyddas från dataintrång och andra säkerhetsproblem.</translation> <translation id="1185134272377778587">Om Chromium</translation> <translation id="1315551408014407711">Konfigurera din nya profil i Chromium</translation> +<translation id="1357932062193643861">Fråga när Chromium öppnas</translation> <translation id="1396446129537741364">Chromium försöker visa lösenord.</translation> <translation id="1414495520565016063">Du är inloggad i Chromium.</translation> <translation id="151962892725702025">Det gick inte att synkronisera data med Chromium eftersom synkronisering inte är tillgängligt för domänen.</translation>
diff --git a/chrome/app/resources/chromium_strings_th.xtb b/chrome/app/resources/chromium_strings_th.xtb index 30956f25..de48690 100644 --- a/chrome/app/resources/chromium_strings_th.xtb +++ b/chrome/app/resources/chromium_strings_th.xtb
@@ -9,6 +9,7 @@ <translation id="1131805035311359397"><ph name="BEGIN_LINK" />ลงชื่อเข้าใช้ Chromium<ph name="END_LINK" /> เพื่อตรวจสอบว่ารหัสผ่านของคุณไม่ได้รับผลกระทบจากการละเมิดข้อมูลและปัญหาด้านความปลอดภัยอื่นๆ</translation> <translation id="1185134272377778587">เกี่ยวกับ Chromium</translation> <translation id="1315551408014407711">ตั้งค่าโปรไฟล์ Chromium ใหม่</translation> +<translation id="1357932062193643861">ถามเมื่อมีการเปิด Chromium</translation> <translation id="1396446129537741364">Chromium กำลังพยายามแสดงรหัสผ่าน</translation> <translation id="1414495520565016063">คุณลงชื่อเข้าใช้ Chromium แล้ว!</translation> <translation id="151962892725702025">Chromium OS ไม่สามารถซิงค์ข้อมูลของคุณเนื่องจากการซิงค์ไม่พร้อมให้บริการสำหรับโดเมนของคุณ</translation>
diff --git a/chrome/app/resources/chromium_strings_uk.xtb b/chrome/app/resources/chromium_strings_uk.xtb index dd5c497b..1e62eff 100644 --- a/chrome/app/resources/chromium_strings_uk.xtb +++ b/chrome/app/resources/chromium_strings_uk.xtb
@@ -9,6 +9,7 @@ <translation id="1131805035311359397">Щоб перевірити, чи відомі порушення безпеки даних або інші проблеми не заторкнули ваші паролі, <ph name="BEGIN_LINK" />увійдіть у Chromium<ph name="END_LINK" />.</translation> <translation id="1185134272377778587">Про Chromium</translation> <translation id="1315551408014407711">Налаштуйте новий профіль Chromium</translation> +<translation id="1357932062193643861">Запитувати, коли відкривається Chromium</translation> <translation id="1396446129537741364">Chromium намагається показати паролі.</translation> <translation id="1414495520565016063">Ви ввійшли в Chromium.</translation> <translation id="151962892725702025">ОС Chromium не вдалося синхронізувати ваші дані, оскільки синхронізація для вашого домену недоступна.</translation>
diff --git a/chrome/app/resources/chromium_strings_uz.xtb b/chrome/app/resources/chromium_strings_uz.xtb index b9749722..ee443e6 100644 --- a/chrome/app/resources/chromium_strings_uz.xtb +++ b/chrome/app/resources/chromium_strings_uz.xtb
@@ -9,6 +9,7 @@ <translation id="1131805035311359397">Parollarni axborotlar sizib chiqishi va xavfsizlikka oid boshqa muammolardan himoyalash uchun <ph name="BEGIN_LINK" />Chromium hisobingizga kiring<ph name="END_LINK" />.</translation> <translation id="1185134272377778587">Chromium haqida</translation> <translation id="1315551408014407711">Yangi Chromium profilini sozlang</translation> +<translation id="1357932062193643861">Chromium ochilganda soʻralsin</translation> <translation id="1396446129537741364">Kirtilgan parollar Chromium brauzerida ko‘rsatiladi.</translation> <translation id="1414495520565016063">Chromium‘ga xush kelibsiz!</translation> <translation id="151962892725702025">Ma’lumotlarni sinxronlab bo‘lmadi, chunki domeningizda Sync xizmati mavjud emas.</translation>
diff --git a/chrome/app/resources/chromium_strings_vi.xtb b/chrome/app/resources/chromium_strings_vi.xtb index 62d296e..acd02609 100644 --- a/chrome/app/resources/chromium_strings_vi.xtb +++ b/chrome/app/resources/chromium_strings_vi.xtb
@@ -44,7 +44,7 @@ <translation id="2711502716910134313">Thẻ Chromium</translation> <translation id="2718390899429598676">Để bảo mật hơn, Chromium sẽ mã hóa dữ liệu của bạn.</translation> <translation id="2770231113462710648">Thay đổi trình duyệt mặc định thành:</translation> -<translation id="2774556997178638058"><ph name="BEGIN_LINK" />Quản trị viên của bạn<ph name="END_LINK" /> đã tắt tính năng kiểm tra phần mềm gây hại trên Chromium</translation> +<translation id="2774556997178638058"><ph name="BEGIN_LINK" />Quản trị viên của bạn<ph name="END_LINK" /> đã tắt tính năng kiểm tra của Chromium để tìm phần mềm gây hại</translation> <translation id="2799223571221894425">Chạy lại</translation> <translation id="2847479871509788944">Xóa khỏi Chromium...</translation> <translation id="2885378588091291677">Trình quản lý tác vụ</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-HK.xtb b/chrome/app/resources/chromium_strings_zh-HK.xtb index b700417d..0c516a6 100644 --- a/chrome/app/resources/chromium_strings_zh-HK.xtb +++ b/chrome/app/resources/chromium_strings_zh-HK.xtb
@@ -11,6 +11,7 @@ <translation id="1131805035311359397">如要檢查密碼是否安全,且未受資料外洩或其他安全性問題影響,請<ph name="BEGIN_LINK" />登入 Chromium<ph name="END_LINK" />。</translation> <translation id="1185134272377778587">關於 Chromium</translation> <translation id="1315551408014407711">設定新的 Chromium 設定檔</translation> +<translation id="1357932062193643861">Chromium 開啟時詢問我</translation> <translation id="1396446129537741364">Chromium 即將顯示密碼。</translation> <translation id="1414495520565016063">您已登入 Chromium!</translation> <translation id="151962892725702025">您的網域無法使用「同步功能」,因此 Chromium 作業系統無法同步處理您的數據。</translation> @@ -185,7 +186,7 @@ <translation id="6863361426438995919">Google Pay (已複製至 Chromium)</translation> <translation id="6893813176749746474">Chromium 已更新,但您已至少超過 30 天沒有使用 Chromium。</translation> <translation id="6964305034639999644">在 Chromium 無痕式視窗中開啟連結(&G)</translation> -<translation id="6978145336957848883">低強度密碼很容易讓有心人士猜中,請讓 Chromium <ph name="BEGIN_LINK" />為你建立一組高強度密碼,並儲存在 Chromium 中<ph name="END_LINK" />。</translation> +<translation id="6978145336957848883">安全性弱的密碼很容易被猜到。讓 Chromium <ph name="BEGIN_LINK" />為您建立並記住安全性強的密碼<ph name="END_LINK" />。</translation> <translation id="6990124437352146030">Chromium 需要取得權限,才能讓這個網站存取您的麥克風</translation> <translation id="701244094609242530">Chromium 無法檢查擴充程式,請稍後再試。</translation> <translation id="7028347026395185822">{NUM_HOURS,plural, =1{Chromium 在您的電腦上找不到已知的有害軟件。上次檢查時間:1 小時前。}other{Chromium 在您的電腦上找不到已知的有害軟件。上次檢查時間:{NUM_HOURS} 小時前。}}</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb index 37007fb..c165bf7 100644 --- a/chrome/app/resources/generated_resources_am.xtb +++ b/chrome/app/resources/generated_resources_am.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">የእርስዎ የሰነዶች፣ ሉሆች፣ ተንሸራታቾች እና ስዕሎች ፋይሎች በመመሳሰል ላይ ናቸው። መስመር ላይ ወይም ከመስመር ውጪ እንዲደርሱባቸው የGoogle Drive መተግበሪያውን ይክፈቱ።</translation> <translation id="1012876632442809908">USB-C መሣሪያ (የፊት ወደብ)</translation> <translation id="1013707859758800957">አንድ በማጠሪያ ያልተቀመጠ ተሰኪ በዚህ ገጽ ላይ እንዲሄድ ተፈቅዶለታል።</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">የአቃፊ ስም አርትዕ ያድርጉ</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{<ph name="DEVICE_TYPE" />ን ለማዘመን የመጨረሻ ቀን}one{<ph name="DEVICE_TYPE" />ን በ{NUM_DAYS} ቀኖች ውስጥ ያዘምኑ}other{<ph name="DEVICE_TYPE" />ን በ{NUM_DAYS} ቀኖች ውስጥ ያዘምኑ}}</translation> <translation id="1016566241875885511">ተጨማሪ መረጃ (ከተፈለገ)</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb index 7684878..dce10c8 100644 --- a/chrome/app/resources/generated_resources_az.xtb +++ b/chrome/app/resources/generated_resources_az.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">Sənədləriniz, Cədvəlləriniz və Çertyojlarınız sinxronlaşır. Onlara onlayn və ya oflayn daxil olmaq üçün Google Disk tətbiqini açın.</translation> <translation id="1012876632442809908">USB-C cihazı (ön port)</translation> <translation id="1013707859758800957">Sandbox'dan çıxarılmış plaqinə bu səhifədə işləməyə icazə verilib.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Qovluq Adına Düzəliş edin</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{<ph name="DEVICE_TYPE" /> cihazını güncəlləmək üçün son gün}other{<ph name="DEVICE_TYPE" /> cihazını {NUM_DAYS} gün ərzində güncəlləyin}}</translation> <translation id="1016566241875885511">Əlavə məlumat (istəyə bağlı)</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb index b8aa018..c5500a97 100644 --- a/chrome/app/resources/generated_resources_bs.xtb +++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -958,7 +958,7 @@ <translation id="2090165459409185032">Za oporavak podataka o računu otvorite: google.com/accounts/recovery</translation> <translation id="2090876986345970080">Postavke sigurnosnog sistema</translation> <translation id="2091887806945687916">Zvuk</translation> -<translation id="209539936453343974">Da postavite roditeljski nadzor, dijete mora imati Google račun kojim upravlja roditelj. Uređaji <ph name="DEVICE_TYPE_PLURAL" /> dozvoljavaju roditeljima da postave ograničenja ekrana, da odobre ili blokiraju web lokacije i još mnogo toga pomoću aplikacije Family Link. Ako dijete treba da uradi školski rad na web lokaciji kao što je Google Učionica, školski račun se može dodati kasnije.</translation> +<translation id="209539936453343974">Da postavite roditeljski nadzor, dijete mora imati Google račun kojim upravlja roditelj. Uređaji <ph name="DEVICE_TYPE_PLURAL" /> dozvoljavaju roditeljima da postave ograničenja ekrana, da odobre ili blokiraju web lokacije i još mnogo toga pomoću aplikacije Family Link. Ako dijete treba uraditi školski rad na web lokaciji kao što je Google Učionica, školski račun se može dodati kasnije.</translation> <translation id="2096715839409389970">Izbriši kolačiće trećih strana</translation> <translation id="2097372108957554726">Morate se prijaviti na Chrome da registrirate nove uređaje</translation> <translation id="2098805196501063469">Provjerite preostale lozinke</translation> @@ -2451,7 +2451,7 @@ <translation id="3822559385185038546">Ovaj proksi server je nametnuo vaš administrator</translation> <translation id="3823310065043511710">Preporučuje se najmanje <ph name="INSTALL_SIZE" /> slobodnog prostora za Linux.</translation> <translation id="3824621460022590830">Token za prijavu uređaja je nevažeći. Kontaktirajte vlasnika ili administratora uređaja. Kȏd greške: <ph name="ERROR_CODE" />.</translation> -<translation id="3826071569074535339">Dozvoljeno je korišćenje senzora kretanja</translation> +<translation id="3826071569074535339">Dozvoljeno je korištenje senzora kretanja</translation> <translation id="3826440694796503677">Vaš administrator je onemogućio dodavanje više Google računa</translation> <translation id="3827306204503227641">Nastavi dozvoljavati dodatke koji nisu u izoliranom okruženju</translation> <translation id="3827774300009121996">&Cijeli ekran</translation> @@ -3830,7 +3830,7 @@ <translation id="5495466433285976480">Na ovaj način će se ukloniti svi lokalni korisnici, fajlovi, podaci i druge postavke nakon sljedećeg ponovnog pokretanja uređaja. Svi korisnici će se morati ponovo prijaviti.</translation> <translation id="5495597166260341369">Ostavi uključen zaslon</translation> <translation id="5496587651328244253">Organizacija</translation> -<translation id="5496730470963166430">Nije dozvoljeno slanje skočnih prozora ili korištenje presmjeravanja</translation> +<translation id="5496730470963166430">Nije dozvoljeno slanje skočnih prozora ili korištenje preusmjeravanja</translation> <translation id="5497251278400702716">Ovaj fajl</translation> <translation id="5498967291577176373">Brže pišite uz umetnute preporuke za ime, adresu ili broj telefona</translation> <translation id="5499313591153584299">Ovaj fajl može naštetiti vašem računaru.</translation> @@ -6237,7 +6237,7 @@ <translation id="8300011035382349091">Uredite oznaku za ovu karticu</translation> <translation id="8300374739238450534">Ponoćno plava</translation> <translation id="8300849813060516376">Greška na OTASP-u</translation> -<translation id="8304383784961451596">Nemate odobrenje za korištenje ovog uređaja. Kontaktirajte administratora zbog odobrenja za prijavu ili se prijavite s Google računom koga nadzire Family Link.</translation> +<translation id="8304383784961451596">Nemate odobrenje za korištenje ovog uređaja. Kontaktirajte administratora zbog odobrenja za prijavu ili se prijavite s Google računom kojeg nadzire Family Link.</translation> <translation id="8308179586020895837">Pitaj ako <ph name="HOST" /> želi pristupiti kameri</translation> <translation id="830868413617744215">Beta</translation> <translation id="8309458809024885768">Potvrda već postoji</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb index d63c77b..d8c352d 100644 --- a/chrome/app/resources/generated_resources_ca.xtb +++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">S'estan sincronitzant els documents, els fulls de càlcul, les diapositives i els dibuixos. Obriu l'aplicació Google Drive per accedir-hi en línia o fora de línia.</translation> <translation id="1012876632442809908">Dispositiu USB-C (port frontal)</translation> <translation id="1013707859758800957">S'ha pogut executar un connector de fora de la zona de proves en aquesta pàgina.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Edita el nom de la carpeta</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{Darrer dia per actualitzar el dispositiu <ph name="DEVICE_TYPE" />}other{Actualitza el dispositiu <ph name="DEVICE_TYPE" /> en {NUM_DAYS} dies}}</translation> <translation id="1016566241875885511">Informació addicional (opcional)</translation> @@ -2236,7 +2237,7 @@ <translation id="3599863153486145794">Esborra l'historial de tots els dispositius en què tinguis iniciada la sessió. A <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> trobaràs altres maneres d'explorar l'historial de navegació del Compte de Google.</translation> <translation id="3600051066689725006">Informació sobre la sol·licitud web</translation> <translation id="3600792891314830896">Silencia els llocs web que reprodueixen so</translation> -<translation id="360180734785106144">Oferir funcions noves a mesura que estiguin disponibles</translation> +<translation id="360180734785106144">Oferir funcions noves a mesura que estiguin disponibles.</translation> <translation id="3602198818276948261">La configuració del contenidor no admet canvis de mida del disc. Per ajustar la quantitat d'espai que es reserva per a Linux (versió beta), crea una còpia de seguretat i, a continuació, fes la restauració en un contenidor nou.</translation> <translation id="3602290021589620013">Previsualitza</translation> <translation id="3603622770190368340">Obtenció del certificat de xarxa</translation> @@ -5181,7 +5182,7 @@ <translation id="7088434364990739311">La comprovació d'actualització no s'ha pogut iniciar (codi d'error <ph name="ERROR" />).</translation> <translation id="7088561041432335295">ZIP Archiver: obre i empaqueta fitxers ZIP a l'aplicació Fitxers.</translation> <translation id="7088674813905715446">L'administrador ha canviat l'estat d'aquest dispositiu perquè no es pugui utilitzar. Per permetre que us hi pugueu registrar, demaneu a l'administrador que en defineixi l'estat com a pendent.</translation> -<translation id="7092474863625458670">Voice Match et permet accedir directament a l'Assistent utilitzant la veu. +<translation id="7092474863625458670">Voice Match et permet accedir directament al teu Assistent utilitzant la veu. <ph name="BR" /> <ph name="BEGIN_BOLD" />Tingues en compte el següent:<ph name="END_BOLD" /> Pot ser que una veu semblant a la teva o una gravació de la teva veu també puguin accedir al teu Assistent. Pots suprimir el permís de Voice Match més tard desactivant-lo a Configuració de l'Assistent.</translation> <translation id="7093434536568905704">GTK+</translation> @@ -5470,7 +5471,7 @@ <translation id="744366959743242014">S'estan carregant les dades. Aquest procés pot tardar uns quants segons.</translation> <translation id="7443806024147773267">Accedeix a les contrasenyes sempre que tinguis la sessió iniciada al Compte de Google</translation> <translation id="7444983668544353857">Desactiva <ph name="NETWORKDEVICE" /></translation> -<translation id="7448430327655618736">Instal·la aplicacions automàticament</translation> +<translation id="7448430327655618736">Instal·lar aplicacions automàticament.</translation> <translation id="7449752890690775568">Vols suprimir la contrasenya?</translation> <translation id="7450761244949417357">S'està obrint a <ph name="ALTERNATIVE_BROWSER_NAME" /></translation> <translation id="7453008956351770337">En seleccionar aquesta impressora, doneu permís a l'extensió següent per accedir a la vostra impressora:</translation> @@ -6146,7 +6147,7 @@ <translation id="8200772114523450471">Reprèn</translation> <translation id="8201717382574620700">Selecciona els àlbums de: <ph name="TOPIC_SOURCE" /></translation> <translation id="8202160505685531999">Torneu a introduir la contrasenya per actualitzar el vostre perfil del dispositiu <ph name="DEVICE_TYPE" />.</translation> -<translation id="8203732864715032075">Rep notificacions en aquest ordinador i estableix-lo com a predeterminat per a Missatges. <ph name="LINK_BEGIN" />Més informació<ph name="LINK_END" /></translation> +<translation id="8203732864715032075">Enviar-te notificacions en aquest ordinador i establir-lo com a predeterminat per a Missatges. <ph name="LINK_BEGIN" />Més informació<ph name="LINK_END" /></translation> <translation id="8205561625497621211">Bloqueja Flash (opció recomanada)</translation> <translation id="820568752112382238">Els llocs web més visitats</translation> <translation id="8206745257863499010">Música</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb index f0139dc9..cff1cead 100644 --- a/chrome/app/resources/generated_resources_cs.xtb +++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">Vaše Dokumenty, Tabulky, Prezentace a Nákresy se synchronizují. Můžete otevřít aplikaci Disk Google a přistupovat k nim online nebo offline.</translation> <translation id="1012876632442809908">Zařízení USB Type-C (přední port)</translation> <translation id="1013707859758800957">Na této stránce bylo povoleno spuštění pluginu mimo izolovaný prostor.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Upravit název složky</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{Poslední den k aktualizaci zařízení <ph name="DEVICE_TYPE" />}few{Do {NUM_DAYS} dní zařízení <ph name="DEVICE_TYPE" /> aktualizujte}many{Do {NUM_DAYS} dne zařízení <ph name="DEVICE_TYPE" /> aktualizujte}other{Do {NUM_DAYS} dní zařízení <ph name="DEVICE_TYPE" /> aktualizujte}}</translation> <translation id="1016566241875885511">Další informace (volitelné)</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb index f0c2059..da93744 100644 --- a/chrome/app/resources/generated_resources_da.xtb +++ b/chrome/app/resources/generated_resources_da.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">Dine filer i Docs, Sheets, Slides og Tegninger synkroniseres. Åbn appen Google Drev for at få adgang til dem online eller offline.</translation> <translation id="1012876632442809908">USB-C-enhed (port foran)</translation> <translation id="1013707859758800957">Et plugin, der ikke er gemt i sandbox, kunne køre på denne side.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Rediger mappenavnet</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{Sidste dag til at opdatere <ph name="DEVICE_TYPE" />}one{Opdater <ph name="DEVICE_TYPE" /> inden for {NUM_DAYS} dag}other{Opdater <ph name="DEVICE_TYPE" /> inden for {NUM_DAYS} dage}}</translation> <translation id="1016566241875885511">Yderligere oplysninger (valgfrit)</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb index 61b4f41..38d75ff 100644 --- a/chrome/app/resources/generated_resources_el.xtb +++ b/chrome/app/resources/generated_resources_el.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">Τα αρχεία Εγγράφων, Φύλλων, Διαφανειών και Σχεδίων συγχρονίζονται. Ανοίξτε την εφαρμογή Google Drive, για να τα προσπελάσετε στο διαδίκτυο ή εκτός σύνδεσης.</translation> <translation id="1012876632442809908">Συσκευή USB-C (μπροστινή θύρα)</translation> <translation id="1013707859758800957">Επιτράπηκε η εκτέλεση μιας προσθήκης εκτός περιβάλλοντος δοκιμών σε αυτήν τη σελίδα.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Επεξεργασία ονόματος φακέλου</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{Τελευταία ημέρα για την ενημέρωση της συσκευής (<ph name="DEVICE_TYPE" />)}other{Ενημέρωση της συσκευής (<ph name="DEVICE_TYPE" />) εντός {NUM_DAYS} ημερών}}</translation> <translation id="1016566241875885511">Πρόσθετες πληροφορίες (προαιρετικό)</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb index fe1f764..744f1a0 100644 --- a/chrome/app/resources/generated_resources_es.xtb +++ b/chrome/app/resources/generated_resources_es.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">Se están sincronizando tus archivos de Documentos, Hojas de cálculo, Presentaciones y Dibujos de Google. Abre la aplicación Google Drive para acceder a ellos con y sin conexión.</translation> <translation id="1012876632442809908">Dispositivo USB-C (puerto frontal)</translation> <translation id="1013707859758800957">Se ha permitido la ejecución de un complemento no incluido en la zona de pruebas en esta página.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Editar el nombre de la carpeta</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{Último día para actualizar el <ph name="DEVICE_TYPE" />}other{Actualiza el <ph name="DEVICE_TYPE" /> en el plazo de {NUM_DAYS} días}}</translation> <translation id="1016566241875885511">Información adicional (opcional)</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb index da90aa0..80adecd5 100644 --- a/chrome/app/resources/generated_resources_fr.xtb +++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -928,6 +928,7 @@ <translation id="204914487372604757">Créer un raccourci</translation> <translation id="2050339315714019657">Portrait</translation> <translation id="2053312383184521053">Données sur l'état de veille</translation> +<translation id="2054665754582400095">Votre présence</translation> <translation id="2055585478631012616">Vous allez être déconnecté de ce site, y compris dans les onglets ouverts</translation> <translation id="205560151218727633">Logo de l'Assistant Google</translation> <translation id="2058456167109518507">Appareil détecté</translation> @@ -1214,6 +1215,7 @@ <translation id="2387052489799050037">Revenir à l'accueil</translation> <translation id="2387458720915042159">Type de connexion proxy</translation> <translation id="2390347491606624519">Impossible de se connecter au proxy, veuillez vous connecter de nouveau</translation> +<translation id="2390782873446084770">Sync Wi-Fi</translation> <translation id="2391082728065870591">Envoyer un rapport de commentaires</translation> <translation id="2391419135980381625">Police standard</translation> <translation id="2392163307141705938">Tu as atteint la limite de temps définie par l'un de tes parents pour <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation> @@ -1870,6 +1872,7 @@ <translation id="3157931365184549694">Restaurer</translation> <translation id="3158033540161634471">Configurer votre empreinte digitale</translation> <translation id="3159493096109238499">Beige</translation> +<translation id="3159978855457658359">Modifier le nom de l'appareil</translation> <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (matériel requis)</translation> <translation id="3161522574479303604">Toutes les langues</translation> <translation id="3162853326462195145">Compte scolaire</translation> @@ -3230,6 +3233,7 @@ <translation id="4761104368405085019">Utiliser votre micro</translation> <translation id="4762718786438001384">Très peu d'espace disque disponible sur l'appareil</translation> <translation id="4763408175235639573">Les cookies suivants étaient autorisés lorsque vous avez consulté cette page</translation> +<translation id="4764368918650455114">Assurez-vous que les deux appareils sont déverrouillés, qu'ils sont proches l'un de l'autre et que le Bluetooth est activé sur les deux. Si vous partagez des fichiers à l'aide d'un Chromebook, vérifiez que la fonctionnalité Partage à proximité est activée sur celui-ci. Pour cela, ouvrez la zone d'état en sélectionnant l'heure, puis cliquez sur "Partage à proximité". <ph name="LINK_BEGIN" />En savoir plus<ph name="LINK_END" /></translation> <translation id="4765582662863429759">Autorise Android Messages à transmettre les SMS de votre téléphone à votre Chromebook</translation> <translation id="476598255842811483">Personne, sauf si vous avez ouvert Partage à proximité sur votre appareil</translation> <translation id="4768332406694066911">Certains certificats provenant de ces organisations vous identifient.</translation> @@ -3392,6 +3396,7 @@ <translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> – <ph name="PROFILE_NAME" /></translation> <translation id="496185450405387901">Cette application a été installée par votre administrateur.</translation> <translation id="4964455510556214366">Organisation</translation> +<translation id="496446150016900060">Synchroniser les réseaux Wi-Fi avec votre téléphone</translation> <translation id="4965808351167763748">Voulez-vous vraiment configurer cet appareil pour exécuter Hangouts Meet ?</translation> <translation id="496888482094675990">L'application Fichiers vous permet d'accéder rapidement aux fichiers que vous avez enregistrés dans Google Drive, sur un périphérique de stockage externe ou sur votre appareil Chrome OS.</translation> <translation id="4971412780836297815">Ouvrir une fois le téléchargement terminé</translation> @@ -3698,6 +3703,7 @@ <translation id="5341980496415249280">Veuillez patienter pendant la compression…</translation> <translation id="5342091991439452114">Le code doit comprendre au moins <ph name="MINIMUM" /> chiffres</translation> <translation id="5344036115151554031">Restauration de Linux…</translation> +<translation id="5345916423802287046">Lancer l'application lors de la connexion</translation> <translation id="5350293332385664455">Désactiver l'Assistant Google</translation> <translation id="535123479159372765">Texte copié depuis un autre appareil</translation> <translation id="5352033265844765294">Enregistrement des informations de date</translation> @@ -4008,6 +4014,7 @@ <translation id="5704875434923668958">Synchronisation</translation> <translation id="5705005699929844214">Toujours afficher les options d'accessibilité</translation> <translation id="5705882733397021510">Retour</translation> +<translation id="5707117624115653804">Personnalisez la taille et le style des sous-titres pour les applications et les sites compatibles avec ce paramètre</translation> <translation id="5707185214361380026">Échec du chargement de l'extension depuis :</translation> <translation id="5708171344853220004">Nom Microsoft principal</translation> <translation id="5709557627224531708">Définir Chrome comme navigateur par défaut</translation> @@ -4171,6 +4178,7 @@ <translation id="5904614460720589786">Impossible d'installer <ph name="APP_NAME" /> en raison d'un problème de configuration. Veuillez contacter votre administrateur. Code d'erreur : <ph name="ERROR_CODE" />.</translation> <translation id="5906655207909574370">Mise à jour presque terminée. Pour la finaliser, veuillez redémarrer votre appareil.</translation> <translation id="5906732635754427568">Les données associées à cette application seront supprimées de cet appareil.</translation> +<translation id="5908474332780919512">Lancer l'application lors de la connexion</translation> <translation id="5908695239556627796">Vitesse de défilement avec la souris</translation> <translation id="5908769186679515905">Interdire aux sites d'exécuter Flash</translation> <translation id="5910363049092958439">En&registrer l'image sous...</translation> @@ -4710,6 +4718,7 @@ <translation id="6532527800157340614">Échec de la connexion dû à l'impossibilité de récupérer votre jeton d'accès. Veuillez vérifier votre connexion réseau, puis réessayer.</translation> <translation id="6532663472409656417">Entreprise inscrite</translation> <translation id="6535331821390304775">Toujours autoriser <ph name="ORIGIN" /> à ouvrir les liens de ce type dans l'application associée</translation> +<translation id="6537613839935722475">Le nom peut contenir des lettres, des chiffres et des traits d'union (-)</translation> <translation id="6538635548667167211">Le paramètre de consommation des données est actuellement défini sur "Données mobiles"</translation> <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Remarque<ph name="END_BOLD" /> : N'activez cette option que si vous êtes sûr de ce que vous faites ou si vous avez été invité à le faire. En effet, la collecte d'informations est susceptible de diminuer les performances.</translation> <translation id="6541638731489116978">L'accès à vos capteurs de mouvement est bloqué pour ce site.</translation> @@ -4798,6 +4807,7 @@ <translation id="6650234781371031356">Votre mot de passe pour <ph name="WEBSITE" /> est enregistré sur cet appareil et dans votre compte Google. Lequel voulez-vous supprimer ?</translation> <translation id="665061930738760572">Ouvrir dans une &nouvelle fenêtre</translation> <translation id="6651237644330755633">Considérer ce certificat comme fiable pour identifier les sites Web</translation> +<translation id="6651495917527016072">Synchronisez les réseaux Wi-Fi avec votre téléphone. <ph name="LINK_BEGIN" />En savoir plus<ph name="LINK_END" /></translation> <translation id="665355505818177700">L'intégration Chrome <ph name="MS_AD_NAME" /> n'est compatible qu'avec les plates-formes x86_64. Les Chromebooks qui reposent sur une plate-forme ARM ou x86 n'offrent pas cette fonctionnalité.</translation> <translation id="6654509035557065241">Définir un réseau favori</translation> <translation id="6655190889273724601">Mode développeur</translation> @@ -5401,6 +5411,7 @@ <translation id="7375235221357833624">{0,plural, =1{Mettre à jour l'appareil d'ici 1 heure}one{Mettre à jour l'appareil d'ici # heure}other{Mettre à jour l'appareil d'ici # heures}}</translation> <translation id="7376553024552204454">Mettre en surbrillance le curseur de la souris lorsqu'il se déplace</translation> <translation id="7377451353532943397">Continuer de bloquer l'accès aux capteurs</translation> +<translation id="7378611153938412599">Les mots de passe peu sécurisés sont faciles à deviner. Assurez-vous de créer des mots de passe sécurisés. <ph name="BEGIN_LINK" />Découvrez d'autres conseils de sécurité.<ph name="END_LINK" /></translation> <translation id="73786666777299047">Ouvrir le Chrome Web Store</translation> <translation id="7378812711085314936">Obtenir une connexion de données</translation> <translation id="7380622428988553498">Le nom de l'appareil comporte des caractères non valides</translation> @@ -5925,6 +5936,7 @@ <translation id="7959074893852789871">Le fichier contenait plusieurs certificats, dont certains n'ont pas été importés :</translation> <translation id="7961015016161918242">Jamais</translation> <translation id="7963001036288347286">Accélération du pavé tactile</translation> +<translation id="7963608432878156675">Ce nom est visible des autres appareils pour les connexions réseau et Bluetooth</translation> <translation id="7963826112438303517">L'Assistant s'appuie sur ces enregistrements et sur vos requêtes énoncées pour créer et mettre à jour votre empreinte vocale, laquelle n'est stockée que sur les appareils où vous avez activé Voice Match. Vous pouvez la réenregistrer ou afficher votre activité vocale dans les paramètres de l'Assistant.</translation> <translation id="7966241909927244760">C&opier l'adresse de l'image</translation> <translation id="7966571622054096916">{COUNT,plural, =1{1 élément dans la liste des favoris}one{{COUNT} élément dans la liste des favoris}other{{COUNT} éléments dans la liste des favoris}}</translation> @@ -6389,6 +6401,7 @@ <translation id="850875081535031620">Aucun logiciel malveillant détecté</translation> <translation id="8509177919508253835">Réinitialiser les clés de sécurité et créer des codes</translation> <translation id="8509646642152301857">Échec du téléchargement du dictionnaire du correcteur orthographique.</translation> +<translation id="8512396579636492893">{COUNT,plural, =0{Aucun mot de passe peu sécurisé trouvé}=1{{COUNT} mot de passe peu sécurisé trouvé}one{{COUNT} mot de passe peu sécurisé trouvé}other{{COUNT} mots de passe peu sécurisés trouvés}}</translation> <translation id="8512476990829870887">Arrêter le processus</translation> <translation id="851263357009351303">Toujours autoriser <ph name="HOST" /> à afficher les images</translation> <translation id="8513108775083588393">Rotation auto</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb index 7ee484cf..562d6d48 100644 --- a/chrome/app/resources/generated_resources_gl.xtb +++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">Estanse sincronizando os teus ficheiros de Documentos, Follas de Cálculo, Presentacións e Debuxos. Abre a aplicación Google Drive para acceder a eles con conexión ou sen ela.</translation> <translation id="1012876632442809908">Dispositivo USB-C (porto frontal)</translation> <translation id="1013707859758800957">Permitiuse que un complemento non sometido a illamento de procesos se executase nesta páxina.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Editar o nome do cartafol</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{Último día para actualizar o <ph name="DEVICE_TYPE" />}other{Actualiza o <ph name="DEVICE_TYPE" /> no prazo de {NUM_DAYS} días}}</translation> <translation id="1016566241875885511">Información adicional (opcional)</translation> @@ -927,6 +928,7 @@ <translation id="204914487372604757">Crear atallo</translation> <translation id="2050339315714019657">Vertical</translation> <translation id="2053312383184521053">Datos do estado inactivo</translation> +<translation id="2054665754582400095">A túa presenza</translation> <translation id="2055585478631012616">Ademais, pecharase sesión nestes sitios aínda que os teñas abertos en pestanas</translation> <translation id="205560151218727633">Logotipo do Asistente de Google</translation> <translation id="2058456167109518507">Detectouse un dispositivo</translation> @@ -1213,6 +1215,7 @@ <translation id="2387052489799050037">Ir á páxina de inicio</translation> <translation id="2387458720915042159">Tipo de conexión mediante proxy</translation> <translation id="2390347491606624519">Non se puido establecer conexión co proxy. Inicia sesión de novo</translation> +<translation id="2390782873446084770">Sincronización wifi</translation> <translation id="2391082728065870591">Enviar informe de comentarios</translation> <translation id="2391419135980381625">Fonte estándar</translation> <translation id="2392163307141705938">Chegaches ao límite que definiu teu pai ou túa nai para <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation> @@ -1869,6 +1872,7 @@ <translation id="3157931365184549694">Restaurar</translation> <translation id="3158033540161634471">Configurar a túa impresión dixital</translation> <translation id="3159493096109238499">Beixe</translation> +<translation id="3159978855457658359">Editar nome do dispositivo</translation> <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (almacenado en hardware)</translation> <translation id="3161522574479303604">Todos os idiomas</translation> <translation id="3162853326462195145">Conta escolar</translation> @@ -3229,6 +3233,7 @@ <translation id="4761104368405085019">Utilizar o micrófono</translation> <translation id="4762718786438001384">O dispositivo ten pouquísimo espazo restante en disco</translation> <translation id="4763408175235639573">Establecéronse as seguintes cookies cando visualizaches esta páxina</translation> +<translation id="4764368918650455114">Asegúrate de que os dous dispositivos estean desbloqueados, preto un do outro e co Bluetooth activado. Se vas compartir contido cun Chromebook, asegúrate de que teña activada a función Compartir por Nearby (abre a área de estado seleccionando a hora e, a continuación, selecciona Compartir por Nearby). <ph name="LINK_BEGIN" />Máis información<ph name="LINK_END" /></translation> <translation id="4765582662863429759">Permite que a aplicación Mensaxes Android transmita as mensaxes do teu teléfono ao Chromebook</translation> <translation id="476598255842811483">Ninguén, a menos que abras no teu dispositivo a función Compartir por Nearby</translation> <translation id="4768332406694066911">Tes certificados destas organizacións que te identifican</translation> @@ -3391,6 +3396,7 @@ <translation id="4960294539892203357"><ph name="WINDOW_TITLE" />, <ph name="PROFILE_NAME" /></translation> <translation id="496185450405387901">O teu administrador instalou esta aplicación.</translation> <translation id="4964455510556214366">Disposición</translation> +<translation id="496446150016900060">Sincroniza as redes wifi co teu teléfono</translation> <translation id="4965808351167763748">Seguro que queres configurar este dispositivo para que execute Hangouts Meet?</translation> <translation id="496888482094675990">A aplicación Ficheiros permite acceder rapidamente aos ficheiros que gardaches en Google Drive, no almacenamento externo ou no teu dispositivo Chrome OS.</translation> <translation id="4971412780836297815">Abrir ao finalizar a descarga</translation> @@ -3697,6 +3703,7 @@ <translation id="5341980496415249280">Agarda, compresión en curso…</translation> <translation id="5342091991439452114">O PIN debe ter como mínimo <ph name="MINIMUM" /> díxitos</translation> <translation id="5344036115151554031">Restaurando Linux</translation> +<translation id="5345916423802287046">Iniciar aplicación ao iniciar sesión</translation> <translation id="5350293332385664455">Desactivar Asistente de Google</translation> <translation id="535123479159372765">Copiouse o texto desde outro dispositivo</translation> <translation id="5352033265844765294">Marca de tempo</translation> @@ -4006,6 +4013,7 @@ <translation id="5704875434923668958">Sincronizando con</translation> <translation id="5705005699929844214">Mostrar sempre as opcións de accesibilidade</translation> <translation id="5705882733397021510">Volver</translation> +<translation id="5707117624115653804">Personaliza o tamaño e o estilo dos subtítulos para as aplicacións e os sitios compatibles con esta opción de configuración</translation> <translation id="5707185214361380026">Erro ao cargar a extensión de:</translation> <translation id="5708171344853220004">Nome principal de Microsoft</translation> <translation id="5709557627224531708">Define Chrome como navegador predeterminado</translation> @@ -4169,6 +4177,7 @@ <translation id="5904614460720589786">Non se puido configurar a aplicación <ph name="APP_NAME" /> debido a un problema de configuración. Ponte en contacto co teu administrador. Código de erro: <ph name="ERROR_CODE" />.</translation> <translation id="5906655207909574370">A actualización case rematou. Reinicia o dispositivo para finalizala.</translation> <translation id="5906732635754427568">Os datos asociados con esta aplicación quitaranse deste dispositivo.</translation> +<translation id="5908474332780919512">Iniciar aplicación ao iniciar sesión</translation> <translation id="5908695239556627796">Velocidade de desprazamento do rato</translation> <translation id="5908769186679515905">Non permitir que os sitios executen Flash</translation> <translation id="5910363049092958439">Gar&dar imaxe como...</translation> @@ -4708,6 +4717,7 @@ <translation id="6532527800157340614">Produciuse un erro ao iniciar sesión porque non se puido obter o teu token de acceso. Comproba a conexión de rede e téntao de novo.</translation> <translation id="6532663472409656417">Inscrito nunha empresa</translation> <translation id="6535331821390304775">Permitir sempre que <ph name="ORIGIN" /> abra as ligazóns deste tipo na aplicación asociada</translation> +<translation id="6537613839935722475">O nome pode conter letras, números e guións (-)</translation> <translation id="6538635548667167211">A configuración de uso de datos actual é Datos</translation> <translation id="654039047105555694"><ph name="BEGIN_BOLD" />Nota:<ph name="END_BOLD" /> Activar só se sabes o que estás facendo ou se se che solicitou facelo, xa que é posible que a recompilación de datos reduza o rendemento.</translation> <translation id="6541638731489116978">Bloqueouse o acceso deste sitio aos teus sensores de movemento.</translation> @@ -4796,6 +4806,7 @@ <translation id="6650234781371031356">O contrasinal de <ph name="WEBSITE" /> está almacenado neste dispositivo e na túa Conta de Google. De onde queres eliminalo?</translation> <translation id="665061930738760572">Abrir nunha ventá &nova</translation> <translation id="6651237644330755633">Confiar neste certificado para identificar sitios web</translation> +<translation id="6651495917527016072">Sincroniza as redes wifi co teu teléfono. <ph name="LINK_BEGIN" />Máis información<ph name="LINK_END" /></translation> <translation id="665355505818177700">A integración de <ph name="MS_AD_NAME" /> con Chrome só é compatible nas plataformas x86_64. Os Chromebook baseados nunha plataforma x86 ou ARC non admiten esta función.</translation> <translation id="6654509035557065241">Establecer rede como preferida</translation> <translation id="6655190889273724601">Modo de programador</translation> @@ -5399,6 +5410,7 @@ <translation id="7375235221357833624">{0,plural, =1{Actualiza o dispositivo en 1 hora}other{Actualiza o dispositivo en # horas}}</translation> <translation id="7376553024552204454">Destacar o cursor do rato cando se move</translation> <translation id="7377451353532943397">Continuar bloqueando o acceso aos sensores</translation> +<translation id="7378611153938412599">Os contrasinais pouco seguros son fáciles de adiviñar. Asegúrate de crear contrasinais seguros. <ph name="BEGIN_LINK" />Ver máis consellos de seguranza<ph name="END_LINK" />.</translation> <translation id="73786666777299047">Abrir Chrome Web Store</translation> <translation id="7378812711085314936">Conseguir conexión de datos</translation> <translation id="7380622428988553498">O nome do dispositivo contén caracteres non válidos</translation> @@ -5923,6 +5935,7 @@ <translation id="7959074893852789871">O ficheiro contiña varios certificados, algúns dos cales non se importaron:</translation> <translation id="7961015016161918242">Nunca</translation> <translation id="7963001036288347286">Aceleración do panel táctil</translation> +<translation id="7963608432878156675">Este nome é visible para outros dispositivos á hora de establecer conexións por Bluetooth e de rede</translation> <translation id="7963826112438303517">O teu Asistente utiliza estas gravacións e as solicitudes que realizases coa voz para crear e actualizar o teu modelo de voz, que só se almacena nos dispositivos nos que activases Voice Match. Consulta ou volve crear a actividade de voz en Configuración do Asistente.</translation> <translation id="7966241909927244760">C&opiar enderezo da imaxe</translation> <translation id="7966571622054096916">{COUNT,plural, =1{Hai 1 elemento na lista de marcadores}other{Hai {COUNT} elementos na lista de marcadores}}</translation> @@ -6386,6 +6399,7 @@ <translation id="850875081535031620">Non se atopou software daniño</translation> <translation id="8509177919508253835">Restablece as chaves de seguranza e crea os PIN</translation> <translation id="8509646642152301857">Non se puido descargar o dicionario da verificación ortográfica.</translation> +<translation id="8512396579636492893">{COUNT,plural, =0{Non se atopou ningún contrasinal pouco seguro}=1{Atopouse {COUNT} contrasinal pouco seguro}other{Atopáronse {COUNT} contrasinais pouco seguros}}</translation> <translation id="8512476990829870887">Finalizar proceso</translation> <translation id="851263357009351303">Permitir sempre a <ph name="HOST" /> mostrar imaxes</translation> <translation id="8513108775083588393">Xirar autom.</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb index 3aec8152..7ee6df22 100644 --- a/chrome/app/resources/generated_resources_gu.xtb +++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -924,6 +924,7 @@ <translation id="204914487372604757">શૉર્ટકટ બનાવો </translation> <translation id="2050339315714019657">પોર્ટ્રેટ</translation> <translation id="2053312383184521053">નિષ્ક્રિય સ્થિતિ ડેટા</translation> +<translation id="2054665754582400095">તમારી હાજરી</translation> <translation id="2055585478631012616">ખુલ્લા ટૅબ સહિત, આ સાઇટમાંથી તમને સાઇન આઉટ કરવામાં આવશે</translation> <translation id="205560151218727633">Google સહાયકનો લોગો</translation> <translation id="2058456167109518507">ઉપકરણ મળ્યું</translation> @@ -1210,6 +1211,7 @@ <translation id="2387052489799050037">હોમ પર જાઓ</translation> <translation id="2387458720915042159">પ્રૉક્સી કનેક્શનનો પ્રકાર</translation> <translation id="2390347491606624519">પ્રૉક્સીથી કનેક્ટ કરી શકાતું નથી, કૃપા કરીને ફરીથી સાઇન ઇન કરો</translation> +<translation id="2390782873446084770">વાઇ-ફાઇ સિંક</translation> <translation id="2391082728065870591">પ્રતિસાદ રિપોર્ટ મોકલો</translation> <translation id="2391419135980381625">માનક ફૉન્ટ</translation> <translation id="2392163307141705938">તમે તમારા માતાપિતાએ <ph name="IDS_SHORT_PRODUCT_NAME" /> માટે સેટ કરેલી સમયસીમા સુધી પહોંચી ગયા છો.</translation> @@ -1866,6 +1868,7 @@ <translation id="3157931365184549694">પુનઃસ્થાપિત કરો</translation> <translation id="3158033540161634471">તમારી ફિંગરપ્રિન્ટ સેટઅપ કરો</translation> <translation id="3159493096109238499">બૈઝ</translation> +<translation id="3159978855457658359">ડિવાઇસના નામમાં ફેરફાર કરો</translation> <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (હાર્ડવેર સમર્થિત)</translation> <translation id="3161522574479303604">બધી ભાષાઓ</translation> <translation id="3162853326462195145">સ્કૂલ એકાઉન્ટ</translation> @@ -3226,6 +3229,7 @@ <translation id="4761104368405085019">તમારા માઇક્રોફોનનો ઉપયોગ કરો</translation> <translation id="4762718786438001384">ઉપકરણ ડિસ્ક સ્થાન અત્યંત ઓછું છે</translation> <translation id="4763408175235639573">જ્યારે તમે આ પેજ જોયું, ત્યારે નીચેની કુકી સેટ થઈ હતી</translation> +<translation id="4764368918650455114">ખાતરી કરો કે બન્ને ડિવાઇસ અનલૉક કરેલા અને નજીક જ હોય તેમજ તેમાં બ્લૂટૂથની સુવિધા ચાલુ કરેલી હોય. જો તમે કોઈ Chromebook સાથે શેર કરી રહ્યાં હો, તો ખાતરી કરો કે તેમાં 'નજીકની શેરિંગ' સુવિધા ચાલુ કરી હોય (સમય પસંદ કરીને સ્ટેટસ એરિયા ખોલો, પછી 'નજીકના શેર' પસંદ કરો). <ph name="LINK_BEGIN" />વધુ જાણો<ph name="LINK_END" /></translation> <translation id="4765582662863429759">Android Messagesને તમારા ફોન પરથી તમારી Chromebook પર ટેક્સ્ટને પ્રસારિત કરવાની મંજૂરી આપે છે</translation> <translation id="476598255842811483">તમારા ડિવાઇસ પર જ્યાં સુધી તમે 'નજીકના શેર' ન ખોલો ત્યાં સુધી કોઈ નહીં</translation> <translation id="4768332406694066911">તમારી પાસે આ સંસ્થાઓના પ્રમાણપત્ર છે કે જે તમને ઓળખે છે</translation> @@ -3388,6 +3392,7 @@ <translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> - <ph name="PROFILE_NAME" /></translation> <translation id="496185450405387901">આ ઍપ તમારા વ્યવસ્થાપક દ્વારા બનાવવામાં આવી હતી.</translation> <translation id="4964455510556214366">ગોઠવણી</translation> +<translation id="496446150016900060">તમારા ફોન સાથે વાઇ-ફાઇ નેટવર્ક સિંક કરો</translation> <translation id="4965808351167763748">શું તમે ખરેખર આ ઉપકરણને Hangouts Meet ચલાવવા માટે સેટ કરવા માગો છો?</translation> <translation id="496888482094675990">ફાઇલ એપ્લિકેશન તમે Google ડ્રાઇવ, બાહ્ય સ્ટોરેજ અથવા તમારા Chrome OS ડિવાઇસ પર સાચવી છે તે ફાઇલની ઝડપી ઍક્સેસ પ્રદાન કરે છે.</translation> <translation id="4971412780836297815">પૂર્ણ થાય ત્યારે ખોલો</translation> @@ -3694,6 +3699,7 @@ <translation id="5341980496415249280">કૃપા કરીને રાહ જુઓ, પૅકિંગ કરીએ છીએ ...</translation> <translation id="5342091991439452114">PIN, ઓછામાં ઓછો <ph name="MINIMUM" /> અંકનો હોવો આવશ્યક છે</translation> <translation id="5344036115151554031">Linux રિસ્ટોર કરી રહ્યાં છીએ</translation> +<translation id="5345916423802287046">તમે સાઇન ઇન કરો ત્યારે ઍપ શરૂ કરો</translation> <translation id="5350293332385664455">Google Assistant બંધ કરો</translation> <translation id="535123479159372765">અન્ય ડિવાઇસમાંથી કૉપિ કરવામાં આવેલી ટેક્સ્ટ</translation> <translation id="5352033265844765294">ટાઇમ સ્ટેમ્પિંગ</translation> @@ -4004,6 +4010,7 @@ <translation id="5704875434923668958">આની સાથે સિંક કરી રહ્યાં છીએ</translation> <translation id="5705005699929844214">હમેંશાં ઍક્સેસિબિલિટીના વિકલ્પો બતાવો</translation> <translation id="5705882733397021510">પાછળ જાઓ</translation> +<translation id="5707117624115653804">આ સેટિંગને સપોર્ટ કરતી ઍપ અને સાઇટ માટે કૅપ્શનનું કદ અને શૈલી કસ્ટમાઇઝ કરો</translation> <translation id="5707185214361380026">અહીંથી એક્સ્ટેન્શનને લોડ કરવામાં નિષ્ફળ:</translation> <translation id="5708171344853220004">Microsoft Principal Name</translation> <translation id="5709557627224531708">Chromeને તમારા ડિફૉલ્ટ બ્રાઉઝર તરીકે સેટ કરો</translation> @@ -4167,6 +4174,7 @@ <translation id="5904614460720589786">ગોઠવણીમાં સમસ્યાને લીધે <ph name="APP_NAME" />ને સેટઅપ કરી શક્યાં નહીં. કૃપા કરીને તમારા વ્યવસ્થાપકનો સંપર્ક કરો. ભૂલનો કોડ: <ph name="ERROR_CODE" />.</translation> <translation id="5906655207909574370">અપ ટૂ ડેટ થવામાં છે! અપડેટ કરવાનું સમાપ્ત કરવા માટે તમારા ઉપકરણને પુનઃપ્રારંભ કરો.</translation> <translation id="5906732635754427568">આ ઍપ્લિકેશન સાથે સંકળાયેલ ડેટાને આ ઉપકરણમાંથી દૂર કરવામાં આવશે.</translation> +<translation id="5908474332780919512">તમે સાઇન ઇન કરો ત્યારે ઍપ શરૂ કરો</translation> <translation id="5908695239556627796">માઉસ સ્ક્રોલની ઝડપ</translation> <translation id="5908769186679515905">સાઇટ્સને ફ્લેશ ચલાવવાથી અવરોધિત કરો</translation> <translation id="5910363049092958439">છબીને આ રૂપે સા&ચવો...</translation> @@ -4707,6 +4715,7 @@ <translation id="6532527800157340614">સાઇન ઇન નિષ્ફળ થયું કારણ કે તમારું એક્સેસ ટોકન પાછું મેળવી શકાયું ન હતું. કૃપા કરીને તમારું નેટવર્ક કનેક્શન ચેક કરો અને ફરી પ્રયાસ કરો.</translation> <translation id="6532663472409656417">એન્ટરપ્રાઇઝ દ્વારા નોંધણી કરાયેલું</translation> <translation id="6535331821390304775">આ પ્રકારની લિંકને હંમેશાં સંકળાયેલી ઍપમાં ખોલવા <ph name="ORIGIN" />ને મંજૂરી આપો</translation> +<translation id="6537613839935722475">નામ માટે અક્ષરો, સંખ્યાઓ અને હાયફન (-)નો ઉપયોગ કરી શકાય છે</translation> <translation id="6538635548667167211">ડેટા વપરાશના હાલના સેટિંગ મોબાઇલ ડેટા માટે સેટ છે</translation> <translation id="654039047105555694"><ph name="BEGIN_BOLD" /> નોંધ: <ph name="END_BOLD" /> જો તમે શું કરી રહ્યાં છો તે તમે જાણતા હો અથવા જો તમને તેવું કરવા માટે કહેવામાં આવ્યું હોય તો જ ચાલુ કરો, કારણ કે ડેટાનો સંગ્રહ પ્રદર્શન પર અસર કરી શકે છે.</translation> <translation id="6541638731489116978">આ સાઇટને તમારા મોશન સેન્સરને ઍક્સેસ કરવાથી બ્લૉક કરવામાં આવી છે.</translation> @@ -4795,6 +4804,7 @@ <translation id="6650234781371031356"><ph name="WEBSITE" />નો તમારો પાસવર્ડ આ ડિવાઇસ પર અને તમારા Google એકાઉન્ટમાં સ્ટોર કરવામાં આવ્યો છે. તમે કયો પાસવર્ડ ડિલીટ કરવા માગો છો?</translation> <translation id="665061930738760572">&નવી વિંડોમાં ખોલો</translation> <translation id="6651237644330755633">વેબસાઇટ્સ ઓળખવા માટે આ પ્રમાણપત્ર પર વિશ્વાસ કરો</translation> +<translation id="6651495917527016072">તમારા ફોન સાથે વાઇ-ફાઇ નેટવર્ક સિંક કરો. <ph name="LINK_BEGIN" />વધુ જાણો<ph name="LINK_END" /></translation> <translation id="665355505818177700">Chrome <ph name="MS_AD_NAME" /> એકીકરણ ફક્ત x86_64 પ્લૅટફોર્મ પર ઉપલબ્ધ છે. ARM અથવા x86 પ્લૅટફોર્મ પર બનાવેલું Chromebooks આ કામગીરીને સહાય કરતું નથી.</translation> <translation id="6654509035557065241">પસંદ કરેલું નેટવર્ક</translation> <translation id="6655190889273724601">વિકાસકર્તા મોડ</translation> @@ -5398,6 +5408,7 @@ <translation id="7375235221357833624">{0,plural, =1{એક કલાકની અંદર ડિવાઇસ અપડેટ કરો}one{# કલાકની અંદર ડિવાઇસ અપડેટ કરો}other{# કલાકની અંદર ડિવાઇસ અપડેટ કરો}}</translation> <translation id="7376553024552204454">માઉસ કર્સર જ્યારે ગતિમાન હોય ત્યારે તેને હાઇલાઇટ કરો</translation> <translation id="7377451353532943397">સેન્સર ઍક્સેસ બ્લૉક કરવાનું ચાલુ રાખો</translation> +<translation id="7378611153938412599">નબળા પાસવર્ડનું અનુમાન કરવું સરળ હોય છે. તમે સશક્ત પાસવર્ડ બનાવવાની ખાતરી કરો. <ph name="BEGIN_LINK" />સુરક્ષા સંબંધિત વધુ ટિપ જુઓ.<ph name="END_LINK" /></translation> <translation id="73786666777299047">Chrome વેબ દુકાન ખોલો</translation> <translation id="7378812711085314936">ડેટા કનેક્શન મેળવો</translation> <translation id="7380622428988553498">ડિવાઇસના નામમાં અમાન્ય અક્ષરો છો</translation> @@ -5921,6 +5932,7 @@ <translation id="7959074893852789871">ફાઇલમાં બહુવિધ પ્રમાણપત્રો રહેલા છે, તેમાંનાં કેટલાક આયાત કરેલા નથી:</translation> <translation id="7961015016161918242">ક્યારેય નહીં</translation> <translation id="7963001036288347286">ટચપૅડની ઝડપ</translation> +<translation id="7963608432878156675">બ્લૂટૂથ અને નેટવર્ક કનેક્શન માટે આ નામ અન્ય ડિવાઇસ પર દેખાઈ શકે છે</translation> <translation id="7963826112438303517">તમારા આસિસ્ટંટ, તમારું વૉઇસ મૉડલ બનાવવા તથા અપડેટ કરવા માટે આ રેકોર્ડિંગનો તથા તમારી બોલાયેલી વિનંતીઓનો ઉપયોગ કરે છે, જેનો સંગ્રહ તમે જેમાં Voice Match ચાલુ કર્યું છે તે જ ડિવાઇસમાં કરવામાં આવે છે. આસિસ્ટંટના સેટિંગમાં વૉઇસ પ્રવૃત્તિ જુઓ અથવા ફરી તાલીમ આપો.</translation> <translation id="7966241909927244760">છબી સરનામું કૉ&પિ કરો</translation> <translation id="7966571622054096916">{COUNT,plural, =1{બુકમાર્કની સૂચિમાં 1 આઇટમ છે}one{બુકમાર્કની સૂચિમાં {COUNT} આઇટમ છે}other{બુકમાર્કની સૂચિમાં {COUNT} આઇટમ છે}}</translation> @@ -6380,6 +6392,7 @@ <translation id="850875081535031620">કોઈ નુકસાનકારક સૉફ્ટવેર મળ્યું નથી</translation> <translation id="8509177919508253835">સુરક્ષા કોડ રીસેટ કરો અને પિન બનાવો</translation> <translation id="8509646642152301857">જોડણીની તપાસ ડાઉનલોડ કરવામાં નિષ્ફળ.</translation> +<translation id="8512396579636492893">{COUNT,plural, =0{કોઈ નબળો પાસવર્ડ મળ્યો નથી}=1{{COUNT} નબળો પાસવર્ડ મળ્યો}one{{COUNT} નબળો પાસવર્ડ મળ્યો}other{{COUNT} નબળા પાસવર્ડ મળ્યા}}</translation> <translation id="8512476990829870887">પ્રક્રિયાનો અંત કરો</translation> <translation id="851263357009351303"><ph name="HOST" /> ને હંમેશા છબી બતાવવાની મંજૂરી આપો</translation> <translation id="8513108775083588393">ઑટો રોટેટ</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb index 739984d..2d6138f3 100644 --- a/chrome/app/resources/generated_resources_hi.xtb +++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -1931,7 +1931,7 @@ <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - नेटवर्क गड़बड़ी</translation> <translation id="3248902735035392926">सुरक्षा ज़रूरी है. थोड़ा समय निकालकर, <ph name="BEGIN_LINK" />अभी अपने एक्सटेंशन की जांच करें.<ph name="END_LINK" /></translation> <translation id="3251759466064201842"><प्रमाणपत्र का भाग नहीं है></translation> -<translation id="325238099842880997">घर पर खेलने, नई चीज़ें सीखने और स्कूल का काम करने में मदद करने में बच्चों की मदद करने के बुनियादी नियम तय करें.</translation> +<translation id="325238099842880997">घर पर खेलने, नई चीज़ें सीखने, और स्कूल का काम करने में मदद करने में बच्चों की मदद करने के बुनियादी नियम तय करें.</translation> <translation id="3253225298092156258">उपलब्ध नहीं है</translation> <translation id="3253448572569133955">अनजान खाता</translation> <translation id="3254084468305910013">{COUNT,plural, =0{सुरक्षा से जुड़ी कोई भी समस्या नहीं मिली}=1{सुरक्षा से जुड़ी {COUNT} समस्या मिली}one{सुरक्षा से जुड़ी {COUNT} समस्या मिली}other{सुरक्षा से जुड़ी {COUNT} समस्याएं मिलीं}}</translation> @@ -4121,7 +4121,7 @@ <translation id="5841270259333717135">ईथरनेट कॉन्फ़िगर करें</translation> <translation id="5842497610951477805">ब्लूटूथ चालू है</translation> <translation id="5843706793424741864">फ़ैरनहाइट</translation> -<translation id="584451707753263735">लाइव कैप्शन की सुविधा चालू है, फ़ोकस को किसी दूसरे डायलॉग पर ले जाने के लिए F6 दबाएं</translation> +<translation id="584451707753263735">लाइव कैप्शन दिख रहा है, फ़ोकस को किसी दूसरे डायलॉग पर ले जाने के लिए F6 दबाएं</translation> <translation id="5844574845205796324">एक्सप्लोर करने के लिए नया कॉन्टेंट सुझाएं</translation> <translation id="5846200638699387931">रिलेशन सिंटैक्स गड़बड़ी: <ph name="ERROR_LINE" /></translation> <translation id="5846807460505171493">अपडेट और ऐप्लिकेशन इंस्टॉल करें. जारी रखकर, आप इस बात की इजाज़त देते हैं कि यह डिवाइस Google, आपको मोबाइल और इंटरनेट सेवा देने वाली कंपनी, और आपका डिवाइस बनाने वाली कंपनी से अपने-आप अपडेट और ऐप्लिकेशन डाउनलोड और उन्हें इंस्टॉल कर सकता है. इसके लिए, शायद आपके मोबाइल डेटा का इस्तेमाल किया जाए. इनमें से कुछ ऐप्लिकेशन में इन-ऐप्लिकेशन खरीदारी की सुविधा भी हो सकती है.</translation> @@ -6235,7 +6235,7 @@ <translation id="8300011035382349091">इस टैब के लिए बुकमार्क में बदलाव करें</translation> <translation id="8300374739238450534">गहरा नीला (मिड नाइट ब्लू)</translation> <translation id="8300849813060516376">OTASP विफल</translation> -<translation id="8304383784961451596">आपको इस डिवाइस का इस्तेमाल करने की अनुमति नहीं है. ए़डमिन से साइन-इन की अनुमति के लिए संपर्क करें या किसी ऐसे Google खाते से साइन इन करें जिसे Family Link की मदद से प्रबंधित किया जाता है.</translation> +<translation id="8304383784961451596">आपको इस डिवाइस का इस्तेमाल करने की अनुमति नहीं है. साइन-इन की अनुमति के लिए, ए़डमिन से संपर्क करें या किसी ऐसे Google खाते से साइन इन करें जिसे Family Link की मदद से प्रबंधित किया जाता है.</translation> <translation id="8308179586020895837">अगर <ph name="HOST" /> आपका कैमरा और माइक्रोफ़ोन एक्सेस करना चाहे, तो इसके लिए पूछें</translation> <translation id="830868413617744215">बीटा</translation> <translation id="8309458809024885768">प्रमाणपत्र पहले से मौजूद है</translation> @@ -6352,7 +6352,7 @@ <translation id="8449036207308062757">जगह प्रबंधित करें</translation> <translation id="8452135315243592079">अनुपलब्ध SIM कार्ड</translation> <translation id="8455026683977728932">ADB इलस्ट्रेशन चालू नहीं किया जा सका</translation> -<translation id="8456398879271637452">लाइव कैप्शन की सुविधा चालू है, फ़ोकस को किसी दूसरे डायलॉग पर ले जाने के लिए Ctrl + Back या Ctrl + Forward बटन दबाएं</translation> +<translation id="8456398879271637452">लाइव कैप्शन दिख रहा है, फ़ोकस को किसी दूसरे डायलॉग पर ले जाने के लिए Ctrl + Back या Ctrl + Forward बटन दबाएं</translation> <translation id="845702320058262034">कनेक्ट नहीं किया जा सकता. देखें कि आपके फ़ोन का ब्लूटूथ चालू है या नहीं.</translation> <translation id="8457451314607652708">बुकमार्क आयात करें</translation> <translation id="8458627787104127436">सभी यूआरएल (<ph name="URL_COUNT" />) नई विंडो में खोलें</translation> @@ -6873,7 +6873,7 @@ <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{आप एक बार और कोशिश कर सकते हैं.}one{आप # बार और कोशिश कर सकते हैं.}other{आप # बार और कोशिश कर सकते हैं.}}</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9040661932550800571"><ph name="ORIGIN" /> के लिए पासवर्ड अपडेट करें?</translation> -<translation id="9041049756004505730">लाइव कैप्शन की सुविधा चालू है, फ़ोकस को किसी दूसरे डायलॉग पर ले जाने के लिए ⌘ + Option + ऊपर या नीचे की ओर तीर का निशान दबाएं</translation> +<translation id="9041049756004505730">लाइव कैप्शन दिख रहा है, फ़ोकस को किसी दूसरे डायलॉग पर ले जाने के लिए ⌘ + Option + ऊपर या नीचे तीर का निशान दबाएं</translation> <translation id="9041692268811217999">आपके एडमिन ने आपकी मशीन पर स्थानीय फ़ाइलों की एक्सेस बंद कर दी है</translation> <translation id="904224458472510106">इस बदलाव को पहले जैसा नहीं किया जा सकता</translation> <translation id="9042893549633094279">निजता और सुरक्षा</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb index fff166d5..e7042e1 100644 --- a/chrome/app/resources/generated_resources_hr.xtb +++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">Vaše se datoteke na Dokumentima, Tablicama, Prezentacijama i Crtežima sinkroniziraju. Otvorite aplikaciju Google disk da biste im pristupali na mreži ili izvanmrežno.</translation> <translation id="1012876632442809908">USB-C uređaj (prednji priključak)</translation> <translation id="1013707859758800957">Na toj je stranici dopušteno pokretanje dodatka izvan testnog okruženja.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Uređivanje naziva mape</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{Zadnji dan za ažuriranje uređaja <ph name="DEVICE_TYPE" />}one{Ažurirajte uređaj <ph name="DEVICE_TYPE" /> u roku od {NUM_DAYS} dana}few{Ažurirajte uređaj <ph name="DEVICE_TYPE" /> u roku od {NUM_DAYS} dana}other{Ažurirajte uređaj <ph name="DEVICE_TYPE" /> u roku od {NUM_DAYS} dana}}</translation> <translation id="1016566241875885511">Dodatne informacije (nije obavezno)</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb index cb54e49b..6c9990bc1 100644 --- a/chrome/app/resources/generated_resources_hy.xtb +++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -958,7 +958,7 @@ <translation id="2090165459409185032">Հաշվի տեղեկությունները վերականգնելու համար այցելեք՝ google.com/accounts/recovery</translation> <translation id="2090876986345970080">Համակարգի անվտանգության կարգավորում</translation> <translation id="2091887806945687916">Ձայն</translation> -<translation id="209539936453343974">Ծնողական վերահսկողությունը կարգավորելու համար երեխան պետք է ունենա Google հաշիվ, որը դուք եք կառավարում։ <ph name="DEVICE_TYPE_PLURAL" />ը թույլ են տալիս սահմանել սարքի օգտագործման սահմանափակումներ, թույլատրել կամ արգելափակել կայքեր և ավելին Family Link հավելվածի օգնությամբ։ Եթե երեխային դասապատրաստման համար անհրաժեշտ լինի Google Classroom կայքից օգտվել, այն կարող եք հետագայում ավելացնել։</translation> +<translation id="209539936453343974">Ծնողական վերահսկողությունը կարգավորելու համար երեխան պետք է ունենա Google հաշիվ, որը դուք եք կառավարում։ <ph name="DEVICE_TYPE_PLURAL" />ը թույլ են տալիս սահմանել սարքի օգտագործման սահմանափակումներ, թույլատրել կամ արգելափակել կայքեր և ավելին Family Link հավելվածի օգնությամբ։ Եթե երեխային դասապատրաստման համար անհրաժեշտ լինի օգտվել Google Classroom կայքից, այն կարող եք հետագայում ավելացնել։</translation> <translation id="2096715839409389970">Արգելափակել երրորդ կողմի քուքիները</translation> <translation id="2097372108957554726">Նոր սարքեր գրանցելու համար դուք պետք է մուտք գործեք Chrome</translation> <translation id="2098805196501063469">Ստուգել մնացած գաղտնաբառերը</translation> @@ -2505,7 +2505,7 @@ <translation id="3873915545594852654">Չհաջողվեց գործարկել ARC++ը։</translation> <translation id="3874164307099183178">Միացնել Google Օգնականը</translation> <translation id="3877075909000773256">«Փոխանակում մոտակա սարքերի հետ» գործառույթի կարգավորումները <ph name="USER_NAME" />-ի սարքի համար։ Փոխանակումը կատարվում է <ph name="USER_EMAIL" /> հաշվով։</translation> -<translation id="387771067039689031">Չի թույլատրվում օգտագործել փլագիններ՝ ձեր համակարգչից օգտվելու համար</translation> +<translation id="387771067039689031">Չի թույլատրվում օգտագործել փլագիններ՝ ձեր համակարգիչ մուտք գործելու համար</translation> <translation id="3879748587602334249">Ներբեռնման կառավարիչ</translation> <translation id="3881478300875776315">Ցույց տալ ավելի քիչ տողեր</translation> <translation id="3882165008614329320">Տեսանյութ տեսախցիկից կամ ֆայլից</translation> @@ -4988,7 +4988,7 @@ <translation id="6865313869410766144">Ինքնալցման տվյալներ</translation> <translation id="6865598234501509159">Էջը <ph name="LANGUAGE" /> չէ</translation> <translation id="6865708901122695652">WebRTC իրադարձությունների մատյաններ (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation> -<translation id="686609795364435700">Հանգիստ</translation> +<translation id="686609795364435700">Ցածր</translation> <translation id="686664946474413495">Գունային ջերմություն</translation> <translation id="6868934826811377550">Դիտել մանրամասները</translation> <translation id="6871644448911473373">OCSP պատասխանիչ՝ <ph name="LOCATION" /></translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb index fd4997b5..65b184d 100644 --- a/chrome/app/resources/generated_resources_id.xtb +++ b/chrome/app/resources/generated_resources_id.xtb
@@ -2224,7 +2224,7 @@ <translation id="3586806079541226322">Tidak dapat membuka file ini</translation> <translation id="3586931643579894722">Sembunyikan detail</translation> <translation id="3587482841069643663">Semua</translation> -<translation id="3588790464166520201">Diizinkan menginstal pengendali pembayaran</translation> +<translation id="3588790464166520201">Diizinkan menginstal pengelola pembayaran</translation> <translation id="3589766037099229847">Konten tidak aman diblokir</translation> <translation id="3590194807845837023">Buka Kunci Profil dan Luncurkan Lagi</translation> <translation id="3590295622232282437">Memasuki sesi terkelola.</translation> @@ -2543,7 +2543,7 @@ <translation id="3919145445993746351">Untuk dapat mengakses ekstensi Anda di semua komputer, aktifkan sinkronisasi</translation> <translation id="3920504717067627103">Kebijakan Sertifikat</translation> <translation id="392089482157167418">Aktifkan ChromeVox (masukan lisan)</translation> -<translation id="3920909973552939961">Tidak diizinkan menginstal pengendali pembayaran</translation> +<translation id="3920909973552939961">Tidak diizinkan menginstal pengelola pembayaran</translation> <translation id="3923184630988645767">Penggunaan data</translation> <translation id="3923676227229836009">Halaman ini diizinkan untuk melihat file</translation> <translation id="3924145049010392604">Meta</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb index 8f082ba..6a57036 100644 --- a/chrome/app/resources/generated_resources_is.xtb +++ b/chrome/app/resources/generated_resources_is.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">Verið er að samstilla skrárnar þínar úr Skjölum, Töflureiknum, Skyggnum og Teikningum. Opnaðu Google Drive forritið þitt til að fá aðgang að þeim með eða án nettengingar.</translation> <translation id="1012876632442809908">USB-C-tæki (tengi að framan)</translation> <translation id="1013707859758800957">Keyrsla óafmarkaðrar viðbótar var leyfð á þessari síðu.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Breyta heiti möppu</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{Síðasti dagur til að uppfæra <ph name="DEVICE_TYPE" /> tækið}one{Uppfærðu <ph name="DEVICE_TYPE" /> tækið innan {NUM_DAYS} dags}other{Uppfærðu <ph name="DEVICE_TYPE" /> tækið innan {NUM_DAYS} daga}}</translation> <translation id="1016566241875885511">Viðbótarupplýsingar (valfrjálst)</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb index e031293..c5a9781 100644 --- a/chrome/app/resources/generated_resources_it.xtb +++ b/chrome/app/resources/generated_resources_it.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">I tuoi file di Documenti, Fogli di lavoro, Presentazioni e Disegni sono in fase di sincronizzazione. Apri l'app Google Drive per accedervi online oppure offline.</translation> <translation id="1012876632442809908">Dispositivo USB-C (porta anteriore)</translation> <translation id="1013707859758800957">È stata consentita l'esecuzione di un plug-in senza sandbox in questa pagina.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Modifica nome cartella</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{Ultimo giorno per aggiornare questo <ph name="DEVICE_TYPE" />}other{Aggiorna questo <ph name="DEVICE_TYPE" /> entro {NUM_DAYS} giorni}}</translation> <translation id="1016566241875885511">Informazioni aggiuntive (facoltativo)</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb index d43d77f..71ef670 100644 --- a/chrome/app/resources/generated_resources_iw.xtb +++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -92,12 +92,12 @@ <translation id="1102187190604780492">Assistant יכולה להציג באופן יזום מידע הקשור למה שמופיע במסך</translation> <translation id="1103523840287552314">ברצוני לקבל תרגום מ<ph name="LANGUAGE" /> תמיד</translation> <translation id="1108600514891325577">&הפסק</translation> -<translation id="1110155001042129815">המתן</translation> +<translation id="1110155001042129815">יש להמתין</translation> <translation id="1112420131909513020">כרטיסיית הרקע משתמשת ב-Bluetooth</translation> <translation id="1113892970288677790">בחירת תמונות ויצירות אומנות מתוך אוסף</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">יהלום</translation> -<translation id="1114335938027186412">המחשב שלך מכיל התקן אבטחה מסוג Trusted Platform Module (TPM), המשמש ליישם תכונות אבטחה קריטיות רבות במערכת ההפעלה של Chrome. היכנס למרכז העזרה של Chromebook כדי לקבל מידע נוסף: https://support.google.com/chromebook/?p=tpm</translation> +<translation id="1114335938027186412">המחשב שלך מכיל התקן אבטחה מסוג Trusted Platform Module (TPM), המשמש ליישום תכונות אבטחה קריטיות רבות במערכת ההפעלה של Chrome. יש להיכנס למרכז העזרה של Chromebook כדי לקבל מידע נוסף: https://support.google.com/chromebook/?p=tpm</translation> <translation id="1114427165525619358">סיסמאות במכשיר הזה ובחשבון Google שלך</translation> <translation id="1114525161406758033">מצב שינה מופעל כשהמכסה סגור</translation> <translation id="1116639326869298217">אי אפשר היה לאמת את זהותך</translation> @@ -218,7 +218,7 @@ <translation id="1241639418100230264">ייתכנו חיובים בגין שימוש בחבילת הגלישה</translation> <translation id="1241753985463165747">קרא ושנה את כל הנתונים שלך באתר הנוכחי בעת הקריאה</translation> <translation id="1242633766021457174"><ph name="THIRD_PARTY_TOOL_NAME" /> רוצה לאפס את ההגדרות שלך.</translation> -<translation id="1243314992276662751">העלה</translation> +<translation id="1243314992276662751">העלאה</translation> <translation id="1243436884219965846">בדיקת הסיסמאות</translation> <translation id="1244265436519979884">מתבצע כעת שחזור של Linux</translation> <translation id="1244303850296295656">שגיאת תוסף</translation> @@ -291,7 +291,7 @@ <translation id="1327794256477341646">תכונות שצריכות גישה למיקום לא יפעלו</translation> <translation id="1327977588028644528">שער</translation> <translation id="1329584516321524826">עודכן עכשיו</translation> -<translation id="1330145147221172764">הפעל מקלדת על המסך</translation> +<translation id="1330145147221172764">הפעלת מקלדת על המסך</translation> <translation id="1331977651797684645">זה הייתי אני.</translation> <translation id="1333489022424033687">ייתכן שתכונות מסוימות ב-<ph name="ORIGIN" /> לא יפעלו עד שיוסרו נתונים שאתרים אחרים אחסנו במכשיר שלך</translation> <translation id="1334384124770871673">בדרך כלל, אתרים משתמשים בחיישני התנועה של המכשיר כדי לתמוך בתכונות כמו מציאות מדומה או ספירת צעדים</translation> @@ -301,7 +301,7 @@ <translation id="1338802252451106843">האתר <ph name="ORIGIN" /> רוצה לפתוח את האפליקציה הזו.</translation> <translation id="1338950911836659113">מוחק...</translation> <translation id="13392265090583506">נגישות</translation> -<translation id="1340527397989195812">גבה את המדיה מהמכשיר באמצעות אפליקציית 'קבצים'.</translation> +<translation id="1340527397989195812">גיבוי המדיה מהמכשיר באמצעות אפליקציית Files.</translation> <translation id="1341988552785875222">הטפט הנוכחי נקבע על ידי '<ph name="APP_NAME" />'. ייתכן שיהיה עליך להסיר את התקנת '<ph name="APP_NAME" />' כדי לבחור טפט אחר.</translation> <translation id="1343865611738742294">הענקת הרשאה לאפליקציות Linux לגשת להתקני USB. אחרי שמוציאים התקן USB, הוא לא נשמר בזיכרון של Linux.</translation> <translation id="1346630054604077329">אישור והפעלה מחדש</translation> @@ -323,7 +323,7 @@ <translation id="1367951781824006909">בחירת קובץ</translation> <translation id="1369149969991017342">גישה באמצעות מתג (שליטה במחשב בעזרת מתג אחד או שניים בלבד)</translation> <translation id="1372841398847029212">סנכרון עם החשבון שלך</translation> -<translation id="1374844444528092021">האישור הנדרש על ידי הרשת "<ph name="NETWORK_NAME" />" אינו מותקן או שכבר אינו חוקי. קבל אישור חדש ונסה להתחבר שוב.</translation> +<translation id="1374844444528092021">האישור הנדרש על ידי הרשת "<ph name="NETWORK_NAME" />" אינו מותקן או שכבר אינו חוקי. יש לקבל אישור חדש ולנסות להתחבר שוב.</translation> <translation id="1375321115329958930">סיסמאות שמורות</translation> <translation id="137651782282853227">כאן יופיעו הכתובות ששמרת</translation> <translation id="1377600615067678409">דילוג לעת עתה</translation> @@ -362,7 +362,7 @@ <translation id="1408980562518920698">ניהול מידע אישי</translation> <translation id="1410197035576869800">סמל האפליקציה</translation> <translation id="1410616244180625362">להמשיך לאפשר ל-<ph name="HOST" /> לגשת למצלמה</translation> -<translation id="1414648216875402825">אתה מעדכן לגרסה לא יציבה של <ph name="PRODUCT_NAME" /> המכילה תכונות שנמצאות בתהליך. ייתכנו קריסות מחשב ובאגים לא צפויים. המשך בזהירות.</translation> +<translation id="1414648216875402825">עדכנת לגרסה לא יציבה של <ph name="PRODUCT_NAME" /> המכילה תכונות שנמצאות בתהליך. ייתכנו קריסות מחשב ובאגים לא צפויים. יש להמשיך בזהירות.</translation> <translation id="1415708812149920388">גישת הקריאה אל הלוח נדחתה</translation> <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (מזהה תוסף "<ph name="EXTENSION_ID" />") אסור בסוג ההפעלה הזה.</translation> <translation id="1416836038590872660">EAP-MD5</translation> @@ -375,7 +375,7 @@ <translation id="1426870617281699524">יש ללחוץ על 'ניסיון נוסף' ולאשר את הבקשה במחשב.</translation> <translation id="1427179946227469514">גובה הקול של המרת טקסט לדיבור (TTS)</translation> <translation id="1427269577154060167">מדינה</translation> -<translation id="142758023928848008">הפעל 'מקשים דביקים' (לשימוש במקשי קיצור על ידי הקלדתם ברצף)</translation> +<translation id="142758023928848008">הפעלת 'מקשים דביקים' (לשימוש במקשי קיצור על ידי הקלדתם ברצף)</translation> <translation id="142765311413773645">פג תוקף הרישיון של <ph name="APP_NAME" /></translation> <translation id="1429300045468813835">הכול נוקה</translation> <translation id="143027896309062157">לקרוא ולשנות את כל הנתונים במחשב שלך ובאתרים שבהם אתה מבקר</translation> @@ -452,7 +452,7 @@ <translation id="1512210426710821809">הדרך היחידה לבטל את הפעולה זו היא להתקין מחדש את <ph name="IDS_SHORT_PRODUCT_OS_NAME" />.</translation> <translation id="1512642802859169995"><ph name="FILE_NAME" /> מוצפן. צריך לבקש מהבעלים שלו לפענח אותו.</translation> <translation id="151501797353681931">יובא מ-Safari</translation> -<translation id="1515163294334130951">הפעל</translation> +<translation id="1515163294334130951">הפעלה</translation> <translation id="1515909359182093592"><ph name="INPUT_LABEL" /> – מארח</translation> <translation id="1520689915144573455">{COUNT,plural, =1{אפליקציה אחת}two{# אפליקציות}many{# אפליקציות}other{# אפליקציות}}</translation> <translation id="1521442365706402292">נהל אישורים</translation> @@ -575,7 +575,7 @@ <translation id="1643072738649235303">חתימת X9.62 ECDSA עם SHA-1</translation> <translation id="1644574205037202324">היסטוריה</translation> <translation id="1645516838734033527">כדי לשמור על הבטיחות של <ph name="DEVICE_TYPE" />, Smart Lock מחייב נעילת מסך בטלפון שלך.</translation> -<translation id="1646982517418478057">הזן סיסמה כדי להצפין את האישור הזה</translation> +<translation id="1646982517418478057">יש להזין סיסמה כדי להצפין את האישור הזה</translation> <translation id="1648528859488547844">קביעת מיקום באמצעות Wi-Fi או רשתות סלולריות</translation> <translation id="164936512206786300">ביטול הצמדה של התקן Bluetooth</translation> <translation id="1650371550981945235">הצג אפשרויות קלט</translation> @@ -710,7 +710,7 @@ <translation id="1802687198411089702">הדף לא מגיב. באפשרות לחכות או לצאת.</translation> <translation id="1802931390041703523">Flash נחסם בדף הזה</translation> <translation id="1803531841600994172">שפת היעד של התרגום</translation> -<translation id="1803545009660609783">אמור שוב</translation> +<translation id="1803545009660609783">יש לומר שוב</translation> <translation id="1805738995123446102">כרטיסיית הרקע משתמשת במיקרופון</translation> <translation id="1805822111539868586">בדיקת תצוגות</translation> <translation id="1805888043020974594">שרת הדפסה</translation> @@ -740,7 +740,7 @@ <translation id="1827738518074806965">גלריית אומנות</translation> <translation id="1828378091493947763">הפלאגין אינו נתמך במכשיר זה</translation> <translation id="1828879788654007962">{COUNT,plural, =0{&פתיחת כול הכתובות}=1{&פתיחת הסימנייה}two{&פתיחת כול הכתובות ({COUNT})}many{&פתיחת כול הכתובות ({COUNT})}other{&פתיחת כול הכתובות ({COUNT})}}</translation> -<translation id="1828901632669367785">הדפס באמצעות תיבת דו-שיח של המערכת...</translation> +<translation id="1828901632669367785">הדפסה באמצעות תיבת דו-שיח של המערכת...</translation> <translation id="1829129547161959350">פינגווין</translation> <translation id="1829192082282182671">הת&רחק</translation> <translation id="1830550083491357902">לא מחובר</translation> @@ -760,7 +760,7 @@ <translation id="1852141627593563189">חיפוש תוכנה מזיקה</translation> <translation id="1852799913675865625">אירעה שגיאה בעת ניסיון לקרוא את הקובץ: <ph name="ERROR_TEXT" />.</translation> <translation id="1853692000353488670">כרטיסייה חדשה לגלישה בסתר</translation> -<translation id="1854180393107901205">הפסק העברה</translation> +<translation id="1854180393107901205">הפסקת ההעברה</translation> <translation id="1856715684130786728">הוסף מיקום...</translation> <translation id="1858585891038687145">תן אמון באישור זה לזיהוי מפתחי תוכנה</translation> <translation id="1860346308203060432">לצפייה בהרשאות הגישה למכשיר</translation> @@ -821,7 +821,7 @@ <translation id="1921584744613111023">dpi <ph name="DPI" /></translation> <translation id="192494336144674234">פתח באמצעות</translation> <translation id="1925017091976104802">יש ללחוץ על <ph name="MODIFIER_KEY_DESCRIPTION" /> כדי להדביק</translation> -<translation id="1925021887439448749">הזן כתובת אינטרנט מותאמת אישית</translation> +<translation id="1925021887439448749">יש להזין כתובת אינטרנט מותאמת אישית</translation> <translation id="1925124445985510535">בדיקת הבטיחות פעלה בשעה <ph name="TIME" /></translation> <translation id="1926339101652878330">ההגדרות האלה נשלטות על פי מדיניות הארגון. יש ליצור קשר עם מנהל המערכת לקבלת מידע נוסף.</translation> <translation id="1927632033341042996">אצבע <ph name="NEW_FINGER_NUMBER" /></translation> @@ -869,7 +869,7 @@ <translation id="1978006917103730774">עדכוני תוכנה ואבטחה עתידיים יותקנו באופן אוטומטי.</translation> <translation id="1978057560491495741">הסרת הכתובת</translation> <translation id="1979095679518582070">השבתת התכונה הזו לא משפיעה על היכולת של המכשיר הזה לשלוח את המידע הדרוש עבור שירותים חיוניים, כמו אבטחה ועדכוני מערכת.</translation> -<translation id="1979280758666859181">אתה עובר לערוץ עם גרסה ישנה יותר של <ph name="PRODUCT_NAME" />. שינוי הערוץ יוחל כאשר גרסת הערוץ תתאים לגרסה המותקנת כעת במכשיר שלך.</translation> +<translation id="1979280758666859181">עברת לערוץ עם גרסה ישנה יותר של <ph name="PRODUCT_NAME" />. שינוי הערוץ יוחל כאשר גרסת הערוץ תתאים לגרסה המותקנת כעת במכשיר שלך.</translation> <translation id="197989455406964291">KDC לא תומך בסוג ההצפנה</translation> <translation id="1984417487208496350">ללא הגנה (לא מומלץ)</translation> <translation id="1987317783729300807">חשבונות</translation> @@ -892,7 +892,7 @@ <translation id="2017836877785168846">ניקוי של ההיסטוריה וההשלמות האוטומטיות בשורת כתובת האתר</translation> <translation id="2018352199541442911">מצטערים, מכשיר האחסון החיצוני שלך אינו נתמך בשלב זה.</translation> <translation id="2019718679933488176">&פתח שמע בכרטיסייה חדשה</translation> -<translation id="2020183425253392403">הצג את ההגדרות של כתובת הרשת</translation> +<translation id="2020183425253392403">הצגת ההגדרות של כתובת הרשת</translation> <translation id="2020225359413970060">סריקת קובץ</translation> <translation id="2022953316617983419">קוד QR</translation> <translation id="2023167225947895179">ייתכן שיהיה קל לנחש את ה-PIN</translation> @@ -904,7 +904,7 @@ <translation id="202918510990975568">יש להזין את הסיסמה כדי לקבוע את הגדרות האבטחה ולהיכנס לחשבון</translation> <translation id="2030455719695904263">משטח מגע</translation> <translation id="2031639749079821948">הסיסמה שלך שמורה בחשבון Google</translation> -<translation id="2034346955588403444">הוסף עוד רשת Wi-Fi</translation> +<translation id="2034346955588403444">הוספת עוד רשת Wi-Fi</translation> <translation id="203574396658008164">הפעל רישום הערות ממסך הנעילה</translation> <translation id="2037445849770872822">הוגדר פיקוח על חשבון Google הזה. כדי להגדיר עוד אפשרויות של בקרת הורים יש ללחוץ על 'המשך'. @@ -936,7 +936,7 @@ <translation id="2073505299004274893">אפשר להזין עד <ph name="CHARACTER_LIMIT" /> תווים</translation> <translation id="2075474481720804517">%<ph name="BATTERY_PERCENTAGE" /> סוללה</translation> <translation id="2075959085554270910">הגדרות אלה מאפשרות להפעיל או להשבית את תכונות הנגיעה הקלה וההקשה לגרירה</translation> -<translation id="2076269580855484719">הסתר פלאגין זה</translation> +<translation id="2076269580855484719">הסתרת פלאגין זה</translation> <translation id="2076672359661571384">בינוני (מומלץ)</translation> <translation id="2077129598763517140">יש להשתמש בהאצת חומרה, כשזה אפשרי</translation> <translation id="2078019350989722914">הזהר לפני היציאה (<ph name="KEY_EQUIVALENT" />)</translation> @@ -988,7 +988,7 @@ <translation id="2135456203358955318">מגדיל במצב מעוגן</translation> <translation id="2135468118189259524">בכתובת <ph name="BEGIN_LINK" />policies.google.com<ph name="END_LINK" /> ניתן למצוא מידע על הנתונים שנאספים על ידי Google ועל הסיבות לכך.</translation> <translation id="2135787500304447609">&המשך ביצוע</translation> -<translation id="2136372518715274136">הזן סיסמה חדשה</translation> +<translation id="2136372518715274136">הזנת סיסמה חדשה</translation> <translation id="2136476978468204130">הזנת ביטוי סיסמה שגוי</translation> <translation id="2138398485845393913">החיבור אל "<ph name="DEVICE_NAME" />" עדיין מתבצע</translation> <translation id="2139545522194199494">רשת <ph name="NETWORK_INDEX" /> מתוך <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, עוצמת האות: <ph name="SIGNAL_STRENGTH" />%, הרשת מנוהלת על ידי מנהל המערכת שלך, התחברות</translation> @@ -1054,7 +1054,7 @@ <translation id="220138918934036434">לחצן הסתר</translation> <translation id="2202898655984161076">היתה בעיה ברישום מדפסות. ייתכן שחלק מהמדפסות שלך לא נרשמו בהצלחה ב-<ph name="CLOUD_PRINT_NAME" />.</translation> <translation id="2204034823255629767">לקרוא ולשנות את כל מה שאתה מקליד</translation> -<translation id="220858061631308971">הזן את קוד PIN זה ב-"<ph name="DEVICE_NAME" />":</translation> +<translation id="220858061631308971">יש להזין את קוד האימות הזה ב-"<ph name="DEVICE_NAME" />":</translation> <translation id="2212565012507486665">אישור קובצי cookie</translation> <translation id="2213140827792212876">הסרת השיתוף</translation> <translation id="2214018885812055163">תיקיות משותפות</translation> @@ -1063,10 +1063,10 @@ <translation id="2215727959747642672">עריכת קובץ</translation> <translation id="2218019600945559112">עכבר ולוח מגע</translation> <translation id="2218320521449013367">אירעה שגיאה בזמן ש-Chrome הסיר תוכנות מזיקות</translation> -<translation id="2218515861914035131">הדבק כטקסט רגיל</translation> +<translation id="2218515861914035131">הדבקה כטקסט רגיל</translation> <translation id="2220409419896228519">הוספת סימניות לאפליקציות המועדפות שלך ב-Google Apps</translation> <translation id="2220529011494928058">דיווח על בעיה</translation> -<translation id="2220572644011485463">PIN או סיסמה</translation> +<translation id="2220572644011485463">קוד אימות או סיסמה</translation> <translation id="2224444042887712269">ההגדרה הזו שייכת ל-<ph name="OWNER_EMAIL" />.</translation> <translation id="2224551243087462610">ערוך את שם התיקייה</translation> <translation id="2225864335125757863">כדי להגן על החשבון, יש לשנות את הסיסמאות הבאות באופן מיידי:</translation> @@ -1098,7 +1098,7 @@ <translation id="225240747099314620">אפשר מזהים עבור תוכן מוגן (ייתכן שיהיה צורך לאתחל את המחשב)</translation> <translation id="2255077166240162850">המכשיר הזה ננעל לצורך שימוש בדומיין או במצב שונה.</translation> <translation id="2255317897038918278">הטבעת חותמת זמן של Microsoft</translation> -<translation id="2256115617011615191">הפעל מחדש כעת</translation> +<translation id="2256115617011615191">יש להפעיל מחדש כעת</translation> <translation id="225614027745146050">ברוכים הבאים</translation> <translation id="225692081236532131">סטטוס הפעלה</translation> <translation id="2257053455312861282">הוספת חשבון בית ספרי מאפשרת לתלמיד או לתלמידה להיכנס בנוחות לאתרים, לתוספים ולאפליקציות, ועדיין לפעול במסגרת המגבלות של בקרת ההורים.</translation> @@ -1115,7 +1115,7 @@ <translation id="2272570998639520080">כוס מרטיני</translation> <translation id="2273119997271134996">בעיה עם יציאות הווידאו באביזר העגינה</translation> <translation id="2274840746523584236">יש לטעון את Chromebook</translation> -<translation id="2276503375879033601">הוסף יישומים נוספים</translation> +<translation id="2276503375879033601">הוספת יישומים</translation> <translation id="2277255602909579701">כל קובצי ה-Cookie ונתוני האתר</translation> <translation id="2278562042389100163">פתח חלון דפדפן</translation> <translation id="2280486287150724112">שוליים ימניים</translation> @@ -1303,7 +1303,7 @@ <translation id="2492461744635776704">המערכת מכינה את בקשת החתימה על אישור</translation> <translation id="249303669840926644">לא ניתן היה להשלים את הרישום</translation> <translation id="2493126929778606526">התמונות הטובות ביותר שלך שנבחרו באופן אוטומטי</translation> -<translation id="2495777824269688114">הכר תכונות נוספות או קבל תשובות לשאלות. בחר '?' כדי לגשת לעזרה.</translation> +<translation id="2495777824269688114">מגלים תכונות נוספות או מקבלים תשובות לשאלות. יש ללחוץ על '?' כדי לגשת לעזרה.</translation> <translation id="2496180316473517155">היסטוריית גלישה</translation> <translation id="2497229222757901769">מהירות עכבר</translation> <translation id="2497852260688568942">מנהל המערכת שלך השבית את הסנכרון</translation> @@ -1363,7 +1363,7 @@ <translation id="2550596535588364872">האם להתיר ל-<ph name="EXTENSION_NAME" /> לפתוח את <ph name="FILE_NAME" />?</translation> <translation id="2552966063069741410">אזור זמן</translation> <translation id="2553290675914258594">גישה מאומתת</translation> -<translation id="2553340429761841190"><ph name="PRODUCT_NAME" /> לא הצליח להתחבר אל <ph name="NETWORK_ID" />. בחר רשת אחרת או נסה שוב.</translation> +<translation id="2553340429761841190"><ph name="PRODUCT_NAME" /> לא הצליח להתחבר אל <ph name="NETWORK_ID" />. יש לבחור רשת אחרת או לנסות שוב.</translation> <translation id="2553440850688409052">הסתר פלאגין זה</translation> <translation id="2554553592469060349">הקובץ שנבחר גדול מדי (גודל מרבי: 3mb).</translation> <translation id="2556820440303627606">{NUM_DAYS,plural, =1{לפי הדרישה של <ph name="DOMAIN" />, עליך להוריד עדכון היום. הורדת העדכון תתבצע באופן אוטומטי בחיבור הבא לאינטרנט.}two{לפי הדרישה של <ph name="DOMAIN" />, עליך להוריד עדכון לפני המועד האחרון. הורדת העדכון תתבצע באופן אוטומטי בחיבור הבא לאינטרנט.}many{לפי הדרישה של <ph name="DOMAIN" />, עליך להוריד עדכון לפני המועד האחרון. הורדת העדכון תתבצע באופן אוטומטי בחיבור הבא לאינטרנט.}other{לפי הדרישה של <ph name="DOMAIN" />, עליך להוריד עדכון לפני המועד האחרון. הורדת העדכון תתבצע באופן אוטומטי בחיבור הבא לאינטרנט.}}</translation> @@ -1417,7 +1417,7 @@ <translation id="2628770867680720336">כדי לאפשר ניפוי באגים באמצעות ADB צריך לאפס את ה-Chromebook הזה להגדרות היצרן. <ph name="BEGIN_LINK_LEARN_MORE" />מידע נוסף<ph name="END_LINK_LEARN_MORE" /></translation> <translation id="2629227353894235473">פיתוח אפליקציות ל-Android</translation> <translation id="2630681426381349926">התחבר ל-Wi-Fi כדי להתחיל</translation> -<translation id="2631498379019108537">הצג אפשרויות קלט במדף</translation> +<translation id="2631498379019108537">הצגת אפשרויות קלט במדף</translation> <translation id="2633212996805280240">להסיר את "<ph name="EXTENSION_NAME" />"?</translation> <translation id="263325223718984101"><ph name="PRODUCT_NAME" /> לא הצליח להשלים את ההתקנה, אך ימשיך לפעול מתמונת הדיסק שלו.</translation> <translation id="2633764681656412085">FIDO</translation> @@ -1487,7 +1487,7 @@ <translation id="2709516037105925701">מילוי אוטומטי</translation> <translation id="2710101514844343743">מידע על אופן השימוש בנתונים וניתוח הביצועים</translation> <translation id="271033894570825754">חדש</translation> -<translation id="2712173769900027643">בקש רשות</translation> +<translation id="2712173769900027643">בקשת רשות</translation> <translation id="2713444072780614174">לבן</translation> <translation id="2714393097308983682">Google Play Store</translation> <translation id="2715751256863167692">השדרוג הזה מאפס את ה-Chromebook ומסיר את נתוני המשתמש הנוכחיים.</translation> @@ -1496,7 +1496,7 @@ <translation id="2718998670920917754">תוכנת האנטי-וירוס זיהתה וירוס.</translation> <translation id="2719020180254996569">רשת <ph name="NETWORK_INDEX" /> מתוך <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, פרטים</translation> <translation id="2719936478972253983">קובצי ה-Cookie הבאים נחסמו</translation> -<translation id="2721037002783622288">בצע &חיפוש תמונה ב-<ph name="SEARCH_ENGINE" /></translation> +<translation id="2721037002783622288">ביצוע &חיפוש תמונה ב-<ph name="SEARCH_ENGINE" /></translation> <translation id="2721334646575696520">Microsoft Edge</translation> <translation id="2721695630904737430">מנהל המערכת שלך השבית את המשתמשים בפיקוח.</translation> <translation id="2724841811573117416">יומני WebRTC</translation> @@ -1509,7 +1509,7 @@ <translation id="2730901670247399077">הצעות אמוג'י</translation> <translation id="273093730430620027">דף זה ניגש למצלמה שלך.</translation> <translation id="2731392572903530958">פתח מ&חדש חלון שנסגר</translation> -<translation id="2731700343119398978">המתן...</translation> +<translation id="2731700343119398978">יש להמתין...</translation> <translation id="2731710757838467317">יוצר את המשתמש בפיקוח. התהליך עשוי להימשך מספר רגעים.</translation> <translation id="2731971182069536520">בפעם הבאה שהמכשיר יופעל מחדש, מנהל המערכת יבצע עדכון חד-פעמי שימחק את הנתונים המקומיים.</translation> <translation id="2732134891301408122">תוכן נוסף של <ph name="CURRENT_ELEMENT" /> מתוך <ph name="TOTAL_ELEMENTS" /></translation> @@ -1575,7 +1575,7 @@ <translation id="2800760947029405028">העלאת תמונה</translation> <translation id="2801954693771979815">גודל תצוגה במסך</translation> <translation id="2803313416453193357">פתח את התיקייה</translation> -<translation id="2803375539583399270">הזן PIN</translation> +<translation id="2803375539583399270">הזנת קוד אימות</translation> <translation id="2804043232879091219">לא ניתן לפתוח את הדפדפן החלופי</translation> <translation id="2804667941345577550">המערכת תוציא אותך מהאתר הזה, כולל בכרטיסיות הפתוחות</translation> <translation id="2804680522274557040">המצלמה מושבתת</translation> @@ -1589,9 +1589,9 @@ <translation id="2812989263793994277">אל תציג אף תמונה</translation> <translation id="2813094189969465044">בקרת הורים</translation> <translation id="281390819046738856">לא ניתן לחתום על הבקשה.</translation> -<translation id="2814489978934728345">הפסק את טעינת הדף</translation> +<translation id="2814489978934728345">הפסקת טעינת הדף</translation> <translation id="281504910091592009">הצגה וניהול של סיסמאות שמורות ב<ph name="BEGIN_LINK" />חשבון Google<ph name="END_LINK" /></translation> -<translation id="2815693974042551705">הוסף את התיקייה לסימניות</translation> +<translation id="2815693974042551705">הוספת התיקייה לסימניות</translation> <translation id="2816319641769218778">כדי לשמור סיסמאות בחשבון Google, יש להפעיל את הסנכרון.</translation> <translation id="2818476747334107629">פרטי מדפסת</translation> <translation id="2820957248982571256">מתבצעת סריקה…</translation> @@ -1631,7 +1631,7 @@ <translation id="2870909136778269686">מעדכן....</translation> <translation id="2871813825302180988">חשבון זה כבר נמצא בשימוש במכשיר זה.</translation> <translation id="287205682142673348">העברה ליציאה אחרת</translation> -<translation id="287286579981869940">הוסף את <ph name="PROVIDER_NAME" />...</translation> +<translation id="287286579981869940">הוספת <ph name="PROVIDER_NAME" />...</translation> <translation id="2872961005593481000">כיבוי</translation> <translation id="2874939134665556319">הרצועה הקודמת</translation> <translation id="2875140350998055906">חסימת מודעות באתרים שמוצגות בהם מודעות מפריעות או מטעות (מומלץ)</translation> @@ -1655,7 +1655,7 @@ <translation id="2894757982205307093">כרטיסייה חדשה בקבוצה</translation> <translation id="289644616180464099">כרטיס ה-SIM נעול</translation> <translation id="289695669188700754">מזהה מפתח: <ph name="KEY_ID" /></translation> -<translation id="2897878306272793870">האם אתה בטוח שברצונך לפתוח כרטיסיות <ph name="TAB_COUNT" />?</translation> +<translation id="2897878306272793870">ברצונך באמת לפתוח <ph name="TAB_COUNT" /> כרטיסיות?</translation> <translation id="290105521672621980">הקובץ דורש תכונות שאינן נתמכות</translation> <translation id="2902127500170292085"><ph name="EXTENSION_NAME" /> לא הצליח לתקשר עם המדפסת הזו. יש לוודא שהמדפסת מחוברת ולנסות שוב.</translation> <translation id="2902312830803030883">פעולות נוספות</translation> @@ -1770,7 +1770,7 @@ <translation id="3027296729579831126">הפעלה של 'שיתוף בקרבת מקום'</translation> <translation id="3029466929721441205">הצגה של כלי סטיילוס במדף</translation> <translation id="3031417829280473749">סוכנת X</translation> -<translation id="3031557471081358569">בחר פריטים לייבוא:</translation> +<translation id="3031557471081358569">יש לבחור פריטים לייבוא:</translation> <translation id="3036041939445522540">אין אנשי קשר זמינים</translation> <translation id="3036327949511794916">תאריך היעד להחזרת מכשיר ה-<ph name="DEVICE_TYPE" /> חלף.</translation> <translation id="3036546437875325427">הפעל Flash</translation> @@ -1835,7 +1835,7 @@ <translation id="3118319026408854581">עזרה של <ph name="PRODUCT_NAME" /></translation> <translation id="3118654181216384296">אפשר לנסות שוב להפעיל את Linux בעוד כמה רגעים.</translation> <translation id="3120430004221004537">ההצפנה לא מספיקה לפעולה נתונה במכשיר: "<ph name="DEVICE_NAME" />".</translation> -<translation id="3121793941267913344">אפס את מכשיר <ph name="IDS_SHORT_PRODUCT_NAME" /> זה</translation> +<translation id="3121793941267913344">איפוס מכשיר <ph name="IDS_SHORT_PRODUCT_NAME" /> זה</translation> <translation id="3122464029669770682">CPU</translation> <translation id="3122496702278727796">יצירת ספריית נתונים נכשלה</translation> <translation id="3124111068741548686">מזהים ייחודיים של משתמש</translation> @@ -1922,7 +1922,7 @@ <translation id="3228679360002431295">מתחבר ומאמת<ph name="ANIMATED_ELLIPSIS" /></translation> <translation id="3233271424239923319">גיבוי קבצים ואפליקציות של Linux</translation> <translation id="3239373508713281971">מגבלת הזמן של <ph name="APP_NAME" /> הוסרה</translation> -<translation id="3241680850019875542">בחר את ספריית הבסיס של התוסף שיש לארוז. כדי לעדכן תוסף, בחר גם את קובץ המפתח הפרטי שבו ניתן להשתמש שוב.</translation> +<translation id="3241680850019875542">יש לבחור את ספריית הבסיס של התוסף שיש לארוז. כדי לעדכן תוסף, יש לבחור גם את קובץ המפתח הפרטי שבו ניתן להשתמש שוב.</translation> <translation id="3244294424315804309">המשך השתקת הצלילים</translation> <translation id="3246107497225150582">{0,plural, =1{יש לעדכן את המכשיר בתוך יום אחד}two{יש לעדכן את המכשיר בתוך # ימים}many{יש לעדכן את המכשיר בתוך # ימים}other{יש לעדכן את המכשיר בתוך # ימים}}</translation> <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - שגיאת רשת</translation> @@ -1989,7 +1989,7 @@ <translation id="3311445899360743395">ייתכן שיוסרו מהמכשיר נתונים המשויכים לאפליקציה הזו.</translation> <translation id="3312424061798279731">שפות זמינות</translation> <translation id="3313622045786997898">ערך חתימת אישור </translation> -<translation id="3315158641124845231">הסתר את <ph name="PRODUCT_NAME" /></translation> +<translation id="3315158641124845231">הסתרת <ph name="PRODUCT_NAME" /></translation> <translation id="3315442055907669208">כניסה למצב קורא</translation> <translation id="3317459757438853210">דו-צדדי</translation> <translation id="3317678681329786349">לא ניתן להשתמש בדף זה במצלמה ובמיקרופון</translation> @@ -2127,7 +2127,7 @@ <translation id="3473479545200714844">מגדיל התצוגה</translation> <translation id="347394413229268704">קריאה במועד מאוחר יותר</translation> <translation id="3474218480460386727">יש לכתוב מילים חדשות עם 99 אותיות או פחות</translation> -<translation id="3475843873335999118">המערכת עדיין לא מזהה את טביעת האצבע. הזן את הסיסמה שלך.</translation> +<translation id="3475843873335999118">המערכת עדיין לא מזהה את טביעת האצבע. יש להזין את הסיסמה שלך.</translation> <translation id="3476303763173086583">שליחה של נתוני אבחון ונתונים על השימוש. אפשר לעזור בשיפור החוויה של הילד/ה שלך ב-Android. לשם כך יש לשלוח אל Google באופן אוטומטי נתוני אבחון ונתונים לגבי השימוש במכשיר ובאפליקציות. נתונים אלה לא ישמשו כדי לזהות את הילד/ה שלך, והם יעזרו לשמור על יציבות המערכת והאפליקציות, כמו גם לביצוע שיפורים אחרים. חלק מהנתונים הנצברים יעזרו גם לאפליקציות ולשותפים של Google, כמו מפתחי Android. ה<ph name="BEGIN_LINK1" />הגדרה<ph name="END_LINK1" /> הזו נאכפת על-ידי הבעלים. ייתכן שהבעלים יבחרו לשלוח אל Google נתוני אבחון ונתונים לגבי אופן השימוש במכשיר הזה. אם הופעלה בשביל הילד/ה שלך האפשרות 'פעילות באתרי אינטרנט ובאפליקציות נוספים', ייתכן שהנתונים יישמרו בחשבון Google שלו/ה. <ph name="BEGIN_LINK2" />מידע נוסף<ph name="END_LINK2" /></translation> <translation id="347670947055184738">אופס! המערכת לא הצליחה לשלוף מדיניות למכשיר שלך.</translation> <translation id="347785443197175480">המשך לאפשר ל-<ph name="HOST" /> לגשת למצלמה ולמיקרופון</translation> @@ -2191,7 +2191,7 @@ <translation id="3550915441744863158">Chrome מתעדכן באופן אוטומטי כך שתשתמש תמיד בגרסה העדכנית ביותר</translation> <translation id="3551320343578183772">סגור כרטיסייה</translation> <translation id="3552780134252864554">מנוקה בעת היציאה</translation> -<translation id="3555812735919707620">הסר תוסף</translation> +<translation id="3555812735919707620">הסרת תוסף</translation> <translation id="3556000484321257665">מנוע החיפוש השתנה ל-<ph name="URL" />.</translation> <translation id="3556433843310711081">המנהל שלך יכול לבטל בשבילך את החסימה</translation> <translation id="3557101512409028104">הגדרה של הגבלות גישה לאתרים וזמן מסך בעזרת Family Link</translation> @@ -2220,7 +2220,7 @@ <translation id="3584169441612580296">לקרוא ולשנות קובצי תמונות, מוזיקה ומדיה מסוגים נוספים מהמחשב שלך</translation> <translation id="3586806079541226322">לא ניתן לפתוח את הקובץ הזה</translation> <translation id="3586931643579894722">הסתרת הפרטים</translation> -<translation id="3587482841069643663">הכל</translation> +<translation id="3587482841069643663">הכול</translation> <translation id="3588790464166520201">מורשים להתקין רכיבי handler של תשלומים</translation> <translation id="3589766037099229847">תוכן לא מאובטח נחסם</translation> <translation id="3590194807845837023">בטל נעילת פרופיל והפעל מחדש</translation> @@ -2246,7 +2246,7 @@ <translation id="3610369246614755442">המאוורר של אביזר העגינה צריך תיקון</translation> <translation id="361106536627977100">נתוני Flash</translation> <translation id="3612673635130633812">ההורדה בוצעה באמצעות <a href="<ph name="URL" />"><ph name="EXTENSION" /></a></translation> -<translation id="3613134908380545408">הצג את <ph name="FOLDER_NAME" /></translation> +<translation id="3613134908380545408">הצגת <ph name="FOLDER_NAME" /></translation> <translation id="3613422051106148727">&פתח בכרטיסייה חדשה</translation> <translation id="3614974189435417452">הגיבוי הושלם</translation> <translation id="3615073365085224194">יש לגעת עם האצבע בחיישן טביעת האצבע</translation> @@ -2276,7 +2276,7 @@ <translation id="3637682276779847508">כרטיס ה-SIM שלך יושבת לצמיתות אם לא תזין את המפתח הנכון לביטול נעילת ה-PIN.</translation> <translation id="3639220004740062347">יציאה ממצב קורא</translation> <translation id="3640214691812501263">האם להוסיף את "<ph name="EXTENSION_NAME" />" בשביל <ph name="USER_NAME" />?</translation> -<translation id="3640613767643722554">ה-Assistant יכול ללמוד לזהות את הקול שלך</translation> +<translation id="3640613767643722554">ה-Assistant יכולה ללמוד לזהות את הקול שלך</translation> <translation id="3643637292669952403">חסימת האפשרות של אתרים לראות את מיקום המכשיר</translation> <translation id="3645372836428131288">יש להזיז קצת את האצבע כדי לסרוק חלק אחר של טביעת האצבע.</translation> <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> התקבל מהמכשיר <ph name="DEVICE_NAME" />}two{<ph name="ATTACHMENTS" /> התקבלו מהמכשיר <ph name="DEVICE_NAME" />}many{<ph name="ATTACHMENTS" /> התקבלו מהמכשיר <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> התקבלו מהמכשיר <ph name="DEVICE_NAME" />}}</translation> @@ -2423,8 +2423,8 @@ <translation id="3797900183766075808">&חפש ב-<ph name="SEARCH_ENGINE" /> אחר '<ph name="SEARCH_TERMS" />'</translation> <translation id="3798449238516105146">גרסה</translation> <translation id="3799128412641261490">הגדרות גישה באמצעות מתג</translation> -<translation id="3800806661949714323">הצג הכל (מומלץ)</translation> -<translation id="380408572480438692">הפעלת האפשרות לאיסוף נתוני ביצועים תסייע ל-Google לשפר את המערכת עם הזמן. הנתונים נשלחים רק לאחר שאתה מגיש דוח משוב (Alt-Shift-I) וכולל את נתוני הביצועים. תוכל לחזור למסך זה כדי להשבית את איסוף הנתונים בכל עת.</translation> +<translation id="3800806661949714323">הצגת הכול (מומלץ)</translation> +<translation id="380408572480438692">הפעלת האפשרות לאיסוף נתוני ביצועים תסייע ל-Google לשפר את המערכת עם הזמן. הנתונים נשלחים רק לאחר שמגישים דוח משוב (Alt-Shift-I) וכוללים את נתוני הביצועים. ניתן לחזור למסך זה כדי להשבית את איסוף הנתונים בכל עת.</translation> <translation id="3807249107536149332">לא ניתן להשתמש ב-<ph name="EXTENSION_NAME" /> (מזהה תוסף "<ph name="EXTENSION_ID" />") במסך התחברות.</translation> <translation id="3807747707162121253">&ביטול</translation> <translation id="3808443763115411087">פיתוח אפליקציות ל-Android ב-Crostini</translation> @@ -2435,7 +2435,7 @@ <translation id="3810973564298564668">נהל</translation> <translation id="381202950560906753">להמשך הוספה</translation> <translation id="3812525830114410218">אישור פגום</translation> -<translation id="3813296892522778813">אם אתה לא מוצא את מה שחיפשת, עבור אל <ph name="BEGIN_LINK_CHROMIUM" />מרכז העזרה של Google Chrome<ph name="END_LINK_CHROMIUM" /></translation> +<translation id="3813296892522778813">אם לא מצאת את מה שחיפשת, יש לעבור אל <ph name="BEGIN_LINK_CHROMIUM" />מרכז העזרה של Google Chrome<ph name="END_LINK_CHROMIUM" /></translation> <translation id="3814529970604306954">חשבון בית ספרי</translation> <translation id="3816118180265633665">צבעי Chrome</translation> <translation id="3817524650114746564">פתיחת הגדרות שרת ה-proxy של המחשב</translation> @@ -2459,7 +2459,7 @@ <translation id="383161972796689579">הבעלים של מכשיר זה השבית את ההוספה של משתמשים חדשים</translation> <translation id="3834728400518755610">השינוי בהגדרת המיקרופון מחייב את הכיבוי של Linux. יש לכבות את Linux כדי להמשיך.</translation> <translation id="3834775135533257713">לא ניתן היה להוסיף את היישום "<ph name="TO_INSTALL_APP_NAME" />" מפני שהוא מתנגש עם "<ph name="INSTALLED_APP_NAME" />".</translation> -<translation id="3835522725882634757">אוי, לא! שרת זה שולח נתונים ש-<ph name="PRODUCT_NAME" /> לא יכול להבין. <ph name="BEGIN_LINK" />דיווח על באג<ph name="END_LINK" /> וכלול את <ph name="BEGIN2_LINK" />הרישום הגולמי<ph name="END2_LINK" />.</translation> +<translation id="3835522725882634757">אוי, לא! שרת זה שולח נתונים ש-<ph name="PRODUCT_NAME" /> לא יכול להבין. <ph name="BEGIN_LINK" />יש לדווח על באג<ph name="END_LINK" /> ולכלול את <ph name="BEGIN2_LINK" />הרישום הגולמי<ph name="END2_LINK" />.</translation> <translation id="383669374481694771">זהו מידע כללי על המכשיר הזה ואופן השימוש בו (למשל רמת הסוללה, פעילות המערכת, הפעילות באפליקציות ושגיאות). הנתונים האלה ישמשו כדי לשפר את Android. חלק מהמידע הנצבר יעזור גם לשפר את האפליקציות של Google, וכן יעזור לשותפים של Google (למשל למפתחים של Android) לשפר את האפליקציות והמוצרים שלהם.</translation> <translation id="3838085852053358637">טעינת התוסף נכשלה</translation> <translation id="3838486795898716504"><ph name="PAGE_TITLE" /> נוספים</translation> @@ -2496,7 +2496,7 @@ <translation id="3870931306085184145">לא נשמרו סיסמאות בשביל <ph name="DOMAIN" /></translation> <translation id="3871350334636688135">כעבור 24 שעות, מנהל המערכת יבצע עדכון חד-פעמי שימחק את הנתונים המקומיים כשהמכשיר יופעל מחדש. חשוב לשמור באחסון בענן תוך 24 שעות את הנתונים המקומיים הנחוצים לך.</translation> <translation id="3872220884670338524">עוד פעולות, חשבון שמור של <ph name="USERNAME" /> ב-<ph name="DOMAIN" /></translation> -<translation id="3872991219937722530">אם לא תפנה שטח אחסון, המכשיר יפסיק להגיב.</translation> +<translation id="3872991219937722530">אם לא מפנים שטח אחסון, המכשיר יפסיק להגיב.</translation> <translation id="3873315167136380065">כדי להפעיל את האפשרות הזאת, צריך <ph name="BEGIN_LINK" />לאפס את הסנכרון<ph name="END_LINK" /> כדי להסיר את ביטוי הסיסמה של הסנכרון</translation> <translation id="3873423927483480833">הצגת קודי אימות</translation> <translation id="3873915545594852654">התרחשה בעיה הקשורה ל-ARC++.</translation> @@ -2530,7 +2530,7 @@ <translation id="3905761538810670789">תיקון האפליקציה</translation> <translation id="3908393983276948098"><ph name="PLUGIN_NAME" /> לא מעודכן</translation> <translation id="3908501907586732282">הפעלת תוסף</translation> -<translation id="3909791450649380159">גז&ור</translation> +<translation id="3909791450649380159">גז&ירה</translation> <translation id="39103738135459590">קוד הפעלה</translation> <translation id="3911824782900911339">דף 'כרטיסייה חדשה'</translation> <translation id="3915280005470252504">חיפוש קולי</translation> @@ -2539,7 +2539,7 @@ <translation id="3918972485393593704">שליחת הפרטים אל Google</translation> <translation id="3919145445993746351">כדי לקבל גישה אל התוספים שלך בכל המחשבים שברשותך, יש להפעיל את הסנכרון</translation> <translation id="3920504717067627103">מדיניות אישורים </translation> -<translation id="392089482157167418">הפעל את ChromeVox (משוב קולי)</translation> +<translation id="392089482157167418">הפעלת ChromeVox (משוב קולי)</translation> <translation id="3920909973552939961">לא מורשים להתקין רכיבי handler של תשלומים</translation> <translation id="3923184630988645767">שימוש בחבילת הגלישה</translation> <translation id="3923676227229836009">לדף הזה יש הרשאה להציג קבצים</translation> @@ -2617,7 +2617,7 @@ <translation id="3986705137476756801">השבתת הכתוביות המיידיות נכון לעכשיו</translation> <translation id="3987544746655539083">להמשיך לחסום – האתר לא יקבל גישה למיקום שלך</translation> <translation id="3987938432087324095">זה לא היה ברור.</translation> -<translation id="3988996860813292272">בחר אזור זמן</translation> +<translation id="3988996860813292272">בחירת אזור זמן</translation> <translation id="399179161741278232">מיובאות</translation> <translation id="3994374631886003300">עליך לבטל את נעילת הטלפון ולקרב אותו ל-<ph name="DEVICE_TYPE" /> כדי לבטל את הנעילה שלו.</translation> <translation id="3994878504415702912">מרחק מתצוגה</translation> @@ -2688,7 +2688,7 @@ <translation id="408721682677442104">הבקשה לשליטה מלאה במכשירי MIDI נדחתה</translation> <translation id="4088095054444612037">אשר עבור הקבוצה</translation> <translation id="4089235344645910861">ההגדרות נשמרו והסנכרון החל.</translation> -<translation id="4090103403438682346">הפעל גישה מאומתת</translation> +<translation id="4090103403438682346">הפעלת גישה מאומתת</translation> <translation id="4090947011087001172">לאפס את ההרשאות של האתר <ph name="SITE" />?</translation> <translation id="4093865285251893588">תמונת הפרופיל</translation> <translation id="4093955363990068916">קובץ מקומי:</translation> @@ -2732,7 +2732,7 @@ <translation id="4133076602192971179">כדי לשנות את הסיסמה, יש לפתוח את האפליקציה</translation> <translation id="4136203100490971508">תאורת הלילה תכבה באופן אוטומטי בשעת הזריחה</translation> <translation id="41365691917097717">בחירה להמשיך תגרום להפעלת ניפוי באגים באמצעות ADB במהלך היצירה והבדיקה של אפליקציות ל-Android. חשוב לשים לב שהפעולה הזו מאפשרת את ההתקנה של אפליקציות ל-Android שלא אומתו על ידי Google. כדי להשבית את התכונה, יש לאפס את המכשיר להגדרות המקוריות.</translation> -<translation id="4138267921960073861">הצג שמות משתמשים ותמונות במסך הכניסה</translation> +<translation id="4138267921960073861">הצגת שמות משתמשים ותמונות במסך הכניסה</translation> <translation id="413915106327509564"><ph name="WINDOW_TITLE" /> - התקן HID מחובר</translation> <translation id="4142052906269098341">אפשר לבטל את הנעילה של <ph name="DEVICE_TYPE" /> בעזרת הטלפון. <ph name="LINK_BEGIN" />מידע נוסף<ph name="LINK_END" /></translation> <translation id="4142518881503042940">ניתן לשמור את המדפסות שזוהו בפרופיל שלך או להוסיף מדפסת חדשה. <ph name="LINK_BEGIN" />מידע נוסף<ph name="LINK_END" /></translation> @@ -2827,7 +2827,7 @@ <translation id="4275291496240508082">הפעלת צליל</translation> <translation id="4275830172053184480">הפעלת המכשיר מחדש</translation> <translation id="4276288850178085042">חסימת האפשרות של אתרים להשתמש במצלמה</translation> -<translation id="4278101229438943600">ה-Assistant מוכן</translation> +<translation id="4278101229438943600">ה-Assistant מוכנה</translation> <translation id="4278390842282768270">מותר</translation> <translation id="4281844954008187215">תנאי שירות</translation> <translation id="4282196459431406533">Smart Lock מופעל</translation> @@ -2869,7 +2869,7 @@ <translation id="4340575312453649552">המודעה הזו צרכה משאבים רבים מדי מהמכשיר שלך, ולכן היא הוסרה על-ידי Chrome.</translation> <translation id="4341577178275615435">כדי להפעיל או להשבית את הגלישה באמצעות סמן הטקסט, אפשר להשתמש במקש הקיצור F7</translation> <translation id="434404122609091467">באמצעות ספק השירות הנוכחי</translation> -<translation id="4345587454538109430">הגדר...</translation> +<translation id="4345587454538109430">הגדרה...</translation> <translation id="4345732373643853732">שם המשתמש לא מוכר לשרת</translation> <translation id="4348766275249686434">תעד שגיאות</translation> <translation id="4349828822184870497">מועילה</translation> @@ -2953,7 +2953,7 @@ <translation id="4439427728133035643">רשת <ph name="NETWORK_INDEX" /> מתוך <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, עוצמת האות: <ph name="SIGNAL_STRENGTH" />%, התחברות</translation> <translation id="4441124369922430666">האם ברצונך להפעיל יישום זה באופן אוטומטי בעת הפעלת המחשב?</translation> <translation id="4441147046941420429">כדי להמשיך, יש לנתק את מפתח האבטחה מהמכשיר, לחבר אותו מחדש ולגעת בו</translation> -<translation id="444134486829715816">הרחב...</translation> +<translation id="444134486829715816">הרחבה...</translation> <translation id="4442424173763614572">חיפוש ה-DNS נכשל</translation> <translation id="4443536555189480885">&עזרה</translation> <translation id="4444304522807523469">גישה לסורקי מסמכים המחוברים באמצעות USB או ברשת המקומית</translation> @@ -2996,7 +2996,7 @@ <translation id="4488502501195719518">לנקות את כל הנתונים?</translation> <translation id="449232563137139956">אתרים מציגים בדרך כלל תמונות לצורך המחשה, כמו תמונות בחנויות וירטואליות או במאמרי חדשות</translation> <translation id="4493468155686877504">מומלץ (<ph name="INSTALL_SIZE" />)</translation> -<translation id="4495419450179050807">אל תציג בדף זה</translation> +<translation id="4495419450179050807">לא להציג בדף זה</translation> <translation id="4496054781541092778">ההרשאה <ph name="PERMISSION" /> נחסמה אוטומטית</translation> <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> קרס</translation> <translation id="450099669180426158">סמל של סימן קריאה</translation> @@ -3066,12 +3066,12 @@ <translation id="4562494484721939086">אין שירות</translation> <translation id="4563210852471260509">שפת הקלט הראשונית היא סינית</translation> <translation id="4563880231729913339">אצבע שלישית</translation> -<translation id="4565377596337484307">הסתר סיסמה</translation> +<translation id="4565377596337484307">הסתרת סיסמה</translation> <translation id="4565577809484439917">{NUM_DAYS,plural, =1{לפי הדרישה של <ph name="DOMAIN" />, עליך לגבות את הנתונים שלך ולהחזיר את מכשיר ה-<ph name="DEVICE_TYPE" /> היום.}two{לפי הדרישה של <ph name="DOMAIN" />, עליך לגבות את הנתונים שלך ולהחזיר את מכשיר ה-<ph name="DEVICE_TYPE" /> לפני המועד האחרון.}many{לפי הדרישה של <ph name="DOMAIN" />, עליך לגבות את הנתונים שלך ולהחזיר את מכשיר ה-<ph name="DEVICE_TYPE" /> לפני המועד האחרון.}other{לפי הדרישה של <ph name="DOMAIN" />, עליך לגבות את הנתונים שלך ולהחזיר את מכשיר ה-<ph name="DEVICE_TYPE" /> לפני המועד האחרון.}}</translation> <translation id="4565917129334815774">אחסון יומני מערכת</translation> <translation id="456717285308019641">שפת הדף שיש לתרגם</translation> <translation id="4567533462991917415">תמיד אפשר להוסיף עוד אנשים לאחר ההגדרה. כל משתמש יכול להתאים אישית את החשבון שלו ולהגן על פרטיות הנתונים.</translation> -<translation id="4567772783389002344">הוסף מילה</translation> +<translation id="4567772783389002344">הוספת מילה</translation> <translation id="4568025708905928793">המערכת מבקשת מפתח אבטחה</translation> <translation id="4568213207643490790">מצטערים, לא ניתן להשתמש בחשבונות Google במכשיר זה.</translation> <translation id="4569747168316751899">במצב לא פעיל</translation> @@ -3273,7 +3273,7 @@ <translation id="4824958205181053313">לבטל את הסנכרון?</translation> <translation id="4827675678516992122">לא ניתן להתחבר</translation> <translation id="4827784381479890589">בדיקת איות משופרת בדפדפן Chrome (הטקסט נשלח ל-Google לקבלת הצעות איות)</translation> -<translation id="4829768588131278040">הגדר PIN</translation> +<translation id="4829768588131278040">הגדרת קוד אימות</translation> <translation id="4830121310592638841">תוצג שאלה כשאתר ירצה לפתוח ולהציב חלונות במסכים שלך</translation> <translation id="4830502475412647084">מתקין עדכון OS</translation> <translation id="4830573902900904548">ה-<ph name="DEVICE_TYPE" /> לא מצליח להתחבר אל האינטרנט באמצעות <ph name="NETWORK_NAME" />. בחר רשת אחרת. <ph name="LEARN_MORE_LINK_START" />למידע נוסף<ph name="LEARN_MORE_LINK_END" /></translation> @@ -3288,12 +3288,12 @@ <translation id="4839303808932127586">שמ&ור וידאו כ...</translation> <translation id="4842976633412754305">דף זה מנסה לטעון סקריפטים ממקורות שאינם מאומתים.</translation> <translation id="4844333629810439236">מקלדות אחרות</translation> -<translation id="4846680374085650406">אתה פועל בהתאם להמלצה של מנהל המערכת לגבי הגדרה זו.</translation> +<translation id="4846680374085650406">הפעילות שלך נעשית בהתאם להמלצה של מנהל המערכת לגבי הגדרה זו.</translation> <translation id="4847902821209177679">בחרת <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> – יש להקיש על Enter כדי לבחור אלבומי <ph name="TOPIC_SOURCE" /></translation> <translation id="4848191975108266266">קריאה ל-Google Assistant במילים "Ok Google"</translation> -<translation id="4848518990323155912">הפעל נעילת כרטיס SIM (דרוש הזנה של PIN כדי להשתמש בנתונים לנייד)</translation> +<translation id="4848518990323155912">הפעלה של נעילת כרטיס SIM (יש להזין קוד אימות כדי להשתמש בחבילת הגלישה)</translation> <translation id="4849286518551984791">זמן אוניברסלי מתואם (UTC/GMT)</translation> -<translation id="4849517651082200438">אל תתקין</translation> +<translation id="4849517651082200438">לא להתקין</translation> <translation id="4850886885716139402">הצגה</translation> <translation id="485088796993065002">אתרים יכולים להפעיל סאונד כדי להשמיע מוזיקה או אודיו של סרטונים, או מדיה מסוגים אחרים</translation> <translation id="4853020600495124913">פתח ב&חלון חדש</translation> @@ -3312,7 +3312,7 @@ <translation id="4870903493621965035">אין מכשירים מותאמים</translation> <translation id="4871308555310586478">לא מחנות האינטרנט של Chrome.</translation> <translation id="4871322859485617074">קוד האימות מכיל תווים לא חוקיים</translation> -<translation id="4871370605780490696">הוסף סימניה</translation> +<translation id="4871370605780490696">הוספת סימנייה</translation> <translation id="4871568871368204250">כיבוי הסינכרון</translation> <translation id="4871719318659334896">סגירת הקבוצה</translation> <translation id="4873312501243535625">בודק קובצי המדיה</translation> @@ -3333,8 +3333,8 @@ <translation id="4884987973312178454">6x</translation> <translation id="4885705234041587624">MSCHAPv2</translation> <translation id="4887424188275796356">פתח באמצעות מציג המערכת</translation> -<translation id="488785315393301722">הצג פרטים</translation> -<translation id="4890773143211625964">הצג אפשרויות מדפסת מתקדמות</translation> +<translation id="488785315393301722">הצגת פרטים</translation> +<translation id="4890773143211625964">הצגת אפשרויות מדפסת מתקדמות</translation> <translation id="4891089016822695758">פורום ביטא</translation> <translation id="4892229439761351791">לאתר יש הרשאה להשתמש ב-Bluetooth</translation> <translation id="489258173289528622">מה לעשות בעת חוסר פעילות בזמן שימוש בסוללה</translation> @@ -3365,7 +3365,7 @@ <translation id="4921290200821452703">פרטי חשבון בית ספרי להורים</translation> <translation id="4921348630401250116">המרת טקסט לדיבור</translation> <translation id="49226369361073053">{0,plural, =0{יש לעדכן את המכשיר עכשיו}=1{יש לעדכן את המכשיר תוך שנייה אחת}two{יש לעדכן את המכשיר תוך # שניות}many{יש לעדכן את המכשיר תוך # שניות}other{יש לעדכן את המכשיר תוך # שניות}}</translation> -<translation id="492299503953721473">הסר אפליקציות Android</translation> +<translation id="492299503953721473">הסרת אפליקציות Android</translation> <translation id="492363500327720082">ההסרה של <ph name="APP_NAME" /> מתבצעת…</translation> <translation id="4924002401726507608">שליחת משוב</translation> <translation id="4924352752174756392">12x</translation> @@ -3415,7 +3415,7 @@ <translation id="4986728572522335985">הפעולה הזו תמחק את כל הנתונים במפתח האבטחה, כולל קוד האימות שלו</translation> <translation id="4988526792673242964">דפים</translation> <translation id="49896407730300355">סובב נ&גד כיוון השעון</translation> -<translation id="4989966318180235467">בדוק את דף ה&רקע</translation> +<translation id="4989966318180235467">בדיקת דף ה&רקע</translation> <translation id="4991420928586866460">התייחס למקשים בשורה העליונה כאל מקשי פונקציה</translation> <translation id="499165176004408815">השתמש במצב ניגודיות גבוהה</translation> <translation id="4992458225095111526">אשר פעולת Powerwash</translation> @@ -3502,7 +3502,7 @@ <translation id="5099399397495049098">אתרים יכולים להשתמש ב-JavaScript (מומלץ)</translation> <translation id="5101839224773798795">קליק אוטומטי כשהסמן עוצר</translation> <translation id="5107443654503185812">תוסף כיבה את הגלישה הבטוחה</translation> -<translation id="5108967062857032718">הגדרות - הסר אפליקציות Android</translation> +<translation id="5108967062857032718">הגדרות - הסרת אפליקציות Android</translation> <translation id="5109044022078737958">מיה</translation> <translation id="5111646998522066203">יציאה ממצב גלישה בסתר</translation> <translation id="5111692334209731439">&מנהל הסימניות</translation> @@ -3543,7 +3543,7 @@ <translation id="5148277445782867161">כדי להעריך את המיקום של המכשיר שלך, שירותי המיקום של Google מסתמכים על מקורות כמו Wi-Fi, רשתות סלולריות וחיישנים.</translation> <translation id="5150070631291639005">הגדרות פרטיות</translation> <translation id="5150254825601720210">שם שרת SSL של אישור Netscape</translation> -<translation id="5151354047782775295">אם לא תפנה שטח אחסון, ייבחרו נתונים למחיקה אוטומטית</translation> +<translation id="5151354047782775295">אם לא מפנים שטח אחסון, ייבחרו נתונים למחיקה אוטומטית</translation> <translation id="5153234146675181447">מחיקת הטלפון</translation> <translation id="5154108062446123722">הגדרות מתקדמות עבור <ph name="PRINTING_DESTINATION" /></translation> <translation id="5154702632169343078">נושא</translation> @@ -3579,7 +3579,7 @@ <translation id="5198430103906431024">שליחת מידע לגבי אופן השימוש בנתונים וניתוח הביצועים. המכשיר הזה שולח עכשיו אל Google באופן אוטומטי נתוני אבחון, נתוני מכשיר ונתוני שימוש באפליקציות. הנתונים האלה יעזרו לשמור על היציבות של המערכת ושל האפליקציות ולבצע שיפורים אחרים. חלק מהנתונים הנצברים יעזרו גם לשפר את האפליקציות של Google וכן יעזרו לשותפים של Google, כמו מפתחים של Android. אם הופעלה ההגדרה 'פעילות באתרי אינטרנט ובאפליקציות נוספים', ייתכן שהנתונים יישמרו בחשבון Google שלך.</translation> <translation id="5203920255089865054">{NUM_EXTENSIONS,plural, =1{יש ללחוץ כדי לראות את התוסף}two{יש ללחוץ כדי לראות את התוספים האלה}many{יש ללחוץ כדי לראות את התוספים האלה}other{יש ללחוץ כדי לראות את התוספים האלה}}</translation> <translation id="5204673965307125349">אפשר לבצע Powerwash במכשיר ולנסות שוב.</translation> -<translation id="5204967432542742771">הזן סיסמה</translation> +<translation id="5204967432542742771">הזנת סיסמה</translation> <translation id="5206215183583316675">האם למחוק את "<ph name="CERTIFICATE_NAME" />"?</translation> <translation id="520621735928254154">שגיאה בייבוא האישור</translation> <translation id="5206787458656075734">{COUNT,plural, =1{הסיסמה שנחשפה הוחלפה בהצלחה. נותרה עוד סיסמה אחת שנחשפה. ההמלצה של Chrome היא לבדוק את הסיסמה הזו עכשיו.}two{הסיסמה שנחשפה הוחלפה בהצלחה. נותרו עוד # סיסמאות שנחשפו. ההמלצה של Chrome היא לבדוק את הסיסמאות האלה עכשיו.}many{הסיסמה שנחשפה הוחלפה בהצלחה. נותרו עוד # סיסמאות שנחשפו. ההמלצה של Chrome היא לבדוק את הסיסמאות האלה עכשיו.}other{הסיסמה שנחשפה הוחלפה בהצלחה. נותרו עוד # סיסמאות שנחשפו. ההמלצה של Chrome היא לבדוק את הסיסמאות האלה עכשיו.}}</translation> @@ -3593,7 +3593,7 @@ <translation id="5222403284441421673">נחסמה הורדה לא מאובטחת</translation> <translation id="5222676887888702881">יציאה</translation> <translation id="52232769093306234">האריזה נכשלה.</translation> -<translation id="5225324770654022472">הצג קיצורי יישומים</translation> +<translation id="5225324770654022472">הצגת קיצורי יישומים</translation> <translation id="52254442782792731">הרשאות הגישה הנוכחיות עוד לא הוגדרו</translation> <translation id="5227679487546032910">דמות ברירת מחדל כחלחלה</translation> <translation id="5228579091201413441">הפעל סנכרון</translation> @@ -3682,7 +3682,7 @@ <translation id="5319359161174645648">Google ממליצה על Chrome</translation> <translation id="532247166573571973">ייתכן שהשרת אינו נגיש. נסה שוב מאוחר יותר.</translation> <translation id="5324300749339591280">רשימת האפליקציות</translation> -<translation id="5324780743567488672">היעזר במיקום להגדרה אוטומטית של אזור הזמן</translation> +<translation id="5324780743567488672">היעזרות במיקום להגדרה אוטומטית של אזור הזמן</translation> <translation id="5327248766486351172">שם</translation> <translation id="5327570636534774768">המכשיר הזה מסומן כמנוהל על ידי דומיין אחר. צריך לבטל את ניהול התצורה שלו מהדומיין הזה לפני ההגדרה של מצב ההדגמה.</translation> <translation id="532943162177641444">הקש על ההודעה בטלפון <ph name="PHONE_NAME" /> כדי להגדיר את הנקודה לשיתוף אינטרנט בנייד שבה המכשיר הזה יכול להשתמש.</translation> @@ -3710,12 +3710,12 @@ <translation id="5355191726083956201">מופעלת הגנה משופרת</translation> <translation id="5355926466126177564">התוסף "<ph name="EXTENSION_NAME" />" שינה את הדף שמוצג כשאתה מבצע חיפוש מסרגל הכתובות.</translation> <translation id="5359910752122114278">תוצאה אחת</translation> -<translation id="5360150013186312835">הצג בסרגל הכלים</translation> -<translation id="5362741141255528695">בחר קובץ מפתח פרטי.</translation> -<translation id="5363109466694494651">בצע Powerwash וחזור לגרסה הקודמת</translation> +<translation id="5360150013186312835">הצגה בסרגל הכלים</translation> +<translation id="5362741141255528695">יש לבחור קובץ מפתח פרטי.</translation> +<translation id="5363109466694494651">ביצוע Powerwash וחזרה לגרסה הקודמת</translation> <translation id="5365881113273618889">התיקייה שבחרת מכילה קבצים רגישים. האפליקציה <ph name="APP_NAME" /> תקבל הרשאת כתיבה קבועה לתיקייה הזו. להמשיך?</translation> <translation id="536638840841140142">ללא</translation> -<translation id="5368720394188453070">הטלפון שלך נעול. בטל את הנעילה כדי להיכנס.</translation> +<translation id="5368720394188453070">הטלפון שלך נעול. יש לבטל את הנעילה כדי להיכנס.</translation> <translation id="5368779022775404937">כניסה אל <ph name="REALM" /></translation> <translation id="5369491905435686894">הפעלת האצה של עכבר</translation> <translation id="5370819323174483825">&טען מחדש</translation> @@ -3746,7 +3746,7 @@ <translation id="5405146885510277940">איפוס הגדרות</translation> <translation id="5408750356094797285">שינוי מרחק התצוגה: <ph name="PERCENT" /></translation> <translation id="5409044712155737325">מחשבון Google שלך</translation> -<translation id="5411472733320185105">אל תשתמש בהגדרות proxy עבור מארחים ודומיינים אלה:</translation> +<translation id="5411472733320185105">אין להשתמש בהגדרות proxy עבור מארחים ודומיינים אלה:</translation> <translation id="5414566801737831689">קריאה של סמלי האתרים שבהם אתה מבקר</translation> <translation id="5417312524372586921">עיצובי דפדפן</translation> <translation id="5419405654816502573">Voice Match</translation> @@ -3811,7 +3811,7 @@ <translation id="5485080380723335835">ה-<ph name="DEVICE_TYPE" /> נעול מטעמי אבטחה. כדי להמשיך, עליך להזין את הסיסמה שלך.</translation> <translation id="5485102783864353244">הוסף יישום</translation> <translation id="5485754497697573575">שחזר את כל הכרטיסיות</translation> -<translation id="5486261815000869482">אשר סיסמה</translation> +<translation id="5486261815000869482">אישור סיסמה</translation> <translation id="5486275809415469523"><ph name="APP_NAME" /> משתף את המסך שלך עם <ph name="TAB_NAME" />.</translation> <translation id="5486561344817861625">ביצוע הדמיה של הפעלת דפדפן מחדש</translation> <translation id="5487521232677179737">ניקוי נתונים</translation> @@ -3977,7 +3977,7 @@ <translation id="5662513737565158057">שינוי אופן הפעולה של אפליקציות Linux.</translation> <translation id="5667546120811588575">הגדרת Google Play מתבצעת...</translation> <translation id="5669267381087807207">מפעיל</translation> -<translation id="5669691691057771421">הזן את מספר ה-PIN החדש</translation> +<translation id="5669691691057771421">הזנת קוד האימות החדש</translation> <translation id="5670702108860320605">BSSID</translation> <translation id="5671641761787789573">תמונות נחסמו</translation> <translation id="5671658447180261823">הסרת ההצעה <ph name="SUGGESTION_NAME" /></translation> @@ -4126,7 +4126,7 @@ <translation id="5849212445710944278">כבר נוספה</translation> <translation id="5849570051105887917">קוד ספק ביתי</translation> <translation id="5851868085455377790">מנפיק</translation> -<translation id="5852112051279473187">אופס! משהו השתבש בעת הרשמת התקן זה. נסה שוב או פנה לנציג תמיכה.</translation> +<translation id="5852112051279473187">אופס! משהו השתבש בעת הרשמת התקן זה. יש לנסות שוב או לפנות לנציג תמיכה.</translation> <translation id="5852137567692933493">הפעל מחדש ובצע פעולת Powerwash</translation> <translation id="5854912040170951372">משולש</translation> <translation id="5855267860608268405">רשתות Wi-Fi מוכרות</translation> @@ -4142,7 +4142,7 @@ <translation id="5860494867054883682">מעדכן את המכשיר שלך לערוץ <ph name="CHANNEL_NAME" /> (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="5862109781435984885">הצגת כלי סטיילוס במדף</translation> <translation id="5862319196656206789">הגדרה של מכשירים מחוברים</translation> -<translation id="5863445608433396414">הפעל תכונות ניפוי באגים</translation> +<translation id="5863445608433396414">הפעלת תכונות ניפוי באגים</translation> <translation id="5864195618110239517">שימוש בחיבור עם חיוב לפי שימוש בנתונים</translation> <translation id="5864471791310927901">חיפוש DHCP נכשל</translation> <translation id="5864754048328252126">מה לעשות בעת חוסר פעילות בזמן טעינה</translation> @@ -4158,7 +4158,7 @@ <translation id="5870155679953074650">שגיאות חמורות</translation> <translation id="5876576639916258720">התכונה פעילה…</translation> <translation id="5876851302954717356">כרטיסייה חדשה מצד שמאל</translation> -<translation id="5877064549588274448">הערוץ שונה. הפעל מחדש את המכשיר להחלת השינויים.</translation> +<translation id="5877064549588274448">הערוץ שונה. יש להפעיל מחדש את המכשיר להחלת השינויים.</translation> <translation id="5877584842898320529">המדפסת שבחרת אינה זמינה או שאינה מותקנת כראוי. <ph name="BR" /> יש לבדוק את המדפסת או לנסות לבחור מדפסת אחרת.</translation> <translation id="5882919346125742463">רשתות מוכרות</translation> <translation id="5883464818836130222">לא תהיה יותר תמיכה בהדפסה בענן אחרי 31 בדצמבר. יש לפנות אל מנהל המערכת.</translation> @@ -4167,7 +4167,7 @@ <translation id="5889282057229379085">המספר המרבי של רשויות אישורים ברמת ביניים: <ph name="NUM_INTERMEDIATE_CA" /></translation> <translation id="5891688036610113830">רשתות Wi-Fi מועדפות</translation> <translation id="5893589697005440881">שיתוף קבצים עם משתמשים בסביבה</translation> -<translation id="5895138241574237353">הפעל מחדש</translation> +<translation id="5895138241574237353">הפעלה מחדש</translation> <translation id="5900302528761731119">תמונת פרופיל Google</translation> <translation id="5900358982890952556">שדרוג Linux (בטא)</translation> <translation id="5901494423252125310">דלת המדפסת פתוחה</translation> @@ -4231,7 +4231,7 @@ <translation id="5963117322306686970">כדי לקבץ כרטיסיות, יש ללחוץ לחיצה ימנית על כרטיסייה</translation> <translation id="5963453369025043595"><ph name="NUM_HANDLES" /> (שיא של <ph name="NUM_KILOBYTES_LIVE" />)</translation> <translation id="5964113968897211042">{COUNT,plural, =0{פתיחת כול הכתובות בחלון &חדש}=1{פתיחה בחלון &חדש}two{פתיחת כול הכתובות ({COUNT}) בחלון &חדש}many{פתיחת כול הכתובות ({COUNT}) בחלון &חדש}other{פתיחת כול הכתובות ({COUNT}) בחלון &חדש}}</translation> -<translation id="5965661248935608907">הגדרה זו גם קובעת איזה דף מוצג כשאתה לוחץ על הלחצן 'דף הבית' או מבצע חיפוש מסרגל הכתובות.</translation> +<translation id="5965661248935608907">הגדרה זו גם קובעת איזה דף מוצג כשלוחצים על הלחצן 'דף הבית' או מבצעים חיפוש מסרגל הכתובות.</translation> <translation id="5969419185858894314">ל-<ph name="ORIGIN" /> יש הרשאה להציג קבצים בתיקייה <ph name="FOLDERNAME" /></translation> <translation id="5971037678316050792">הגדרת מצב ושליטה בהתאמה עבור מתאם Bluetooth</translation> <translation id="597235323114979258">הצגת יעדים נוספים</translation> @@ -4362,7 +4362,7 @@ <translation id="6112952769866305444">עריכת המשתמש, <ph name="PROFILE_NAME" />, <ph name="USERNAME" /></translation> <translation id="6113942107547980621">כדי להשתמש ב-Smart Lock יש לעבור אל פרופיל המשתמש הראשי בטלפון</translation> <translation id="6116921718742659598">שנה את הגדרות הקלט והשפה</translation> -<translation id="6120205520491252677">הצמד דף זה למסך הפתיחה...</translation> +<translation id="6120205520491252677">הצמדת דף זה למסך הפתיחה...</translation> <translation id="6122081475643980456">החיבור שלך לאינטרנט נשלט על ידי גורם כלשהו</translation> <translation id="6122095009389448667">המשך חסימת הגישה של האתר הזה ללוח</translation> <translation id="6122191549521593678">מקוון</translation> @@ -4402,7 +4402,7 @@ <translation id="6160625263637492097">אספקת אישורים לאימות</translation> <translation id="6163363155248589649">&רגיל</translation> <translation id="6163376401832887457">הגדרות Kerberos</translation> -<translation id="6163522313638838258">הרחב את הכל...</translation> +<translation id="6163522313638838258">הרחבת הכול...</translation> <translation id="6164005077879661055">כל הקבצים והנתונים המקומיים המשויכים למשתמש בפיקוח יימחקו לצמיתות לאחר שמשתמש בפיקוח זה יוסר. המנהל עדיין יוכל לראות את האתרים שבהם משתמש בפיקוח זה ביקר, ואת ההגדרות שלו, בכתובת <ph name="MANAGEMENT_URL" />.</translation> <translation id="6165508094623778733">למידע נוסף</translation> <translation id="6166185671393271715">ייבוא סיסמאות אל Chrome</translation> @@ -4415,25 +4415,25 @@ <translation id="6173870063490457111">חסימת חלונות קופצים והפניות אוטומטיות (מומלץ)</translation> <translation id="6175314957787328458">Microsoft Domain GUID</translation> <translation id="6176043333338857209">המערכת תפעיל את Bluetooth באופן זמני כדי לאפשר תקשורת עם מפתח האבטחה</translation> -<translation id="6178664161104547336">בחר אישור</translation> +<translation id="6178664161104547336">בחירת אישור</translation> <translation id="6181431612547969857">ההורדה נחסמה</translation> <translation id="6184099524311454384">חיפוש כרטיסיות</translation> <translation id="6185132558746749656">מיקום מכשיר</translation> <translation id="6186394437969115158">אתרים מציגים בדרך כלל מודעות כדי שיוכלו לספק תוכן או שירותים בחינם. עם זאת, ידוע כי אתרים מסוימים מציגים מודעות מפריעות או מטעות.</translation> <translation id="6191293864534840972">שרתי שמות שגויים</translation> -<translation id="6195693561221576702">אי אפשר להגדיר את המכשיר הזה במצב הדגמה לא מקוון.</translation> +<translation id="6195693561221576702">אי אפשר להגדיר את המכשיר הזה במצב הדגמה אופליין.</translation> <translation id="6196640612572343990">חסום קובצי Cookie של צד שלישי</translation> <translation id="6196854373336333322">התוסף "<ph name="EXTENSION_NAME" />" השתלט על הגדרות שרת ה-Proxy. פירוש הדבר שהוא יכול לשנות ולקטוע לכל פעולה שתבצע באינטרנט או לצותת לה. אם אינך יודע בוודאות מדוע שינוי זה התרחש, סביר להניח שזהו שינוי לא רצוי.</translation> <translation id="6198102561359457428">צא והיכנס שוב...</translation> <translation id="6198252989419008588">שנה PIN</translation> <translation id="6202304368170870640">קוד האימות מאפשר להיכנס למכשיר או לבטל את נעילתו.</translation> -<translation id="6206311232642889873">העת&ק תמונה</translation> +<translation id="6206311232642889873">העת&קת תמונה</translation> <translation id="6207200176136643843">אפס למרחק התצוגה המוגדר כברירת המחדל</translation> <translation id="6207937957461833379">מדינה/אזור</translation> <translation id="6208521041562685716">המערכת מפעילה את חבילת הגלישה</translation> <translation id="6209838773933913227">עדכון רכיבים</translation> <translation id="6209908325007204267">המכשיר כולל אפשרות שדרוג ל-Chrome Enterprise, אבל שם המשתמש שלך לא משויך לחשבון ארגוני. כדי ליצור חשבון ארגוני, יש להיכנס לכתובת g.co/ChromeEnterpriseAccount במכשיר אחר.</translation> -<translation id="6211495400987308581"><ph name="PROFILE_NAME" />: הסינכרון לא פועל</translation> +<translation id="6211495400987308581"><ph name="PROFILE_NAME" />: הסנכרון לא פועל</translation> <translation id="6212039847102026977">הצג מאפייני רשת מתקדמים</translation> <translation id="6212168817037875041">כיבוי המסך</translation> <translation id="6212752530110374741">שליחת קישור באימייל</translation> @@ -4450,7 +4450,7 @@ <translation id="6229849828796482487">ניתוק רשת ה-Wi-Fi</translation> <translation id="6229890768313448549">לא ניתן לטעון את התנאים וההגבלות של Google Play. יש לנסות שוב.</translation> <translation id="6231782223312638214">מוצע</translation> -<translation id="6231881193380278751">הוסף פרמטר שאילתה בכתובת האתר כדי לרענן את הדף באופן אוטומטי: chrome://device-log/?refresh=<sec></translation> +<translation id="6231881193380278751">יש להוסיף פרמטר שאילתה בכתובת האתר כדי לרענן את הדף באופן אוטומטי: chrome://device-log/?refresh=<sec></translation> <translation id="6232017090690406397">סוללה</translation> <translation id="6232116551750539448">החיבור אל <ph name="NAME" /> נותק</translation> <translation id="6233154960150021497">שימוש בקול במקום במקלדת כברירת מחדל</translation> @@ -4502,7 +4502,7 @@ <translation id="6278068827862345700">אתרים שנסגרו לאחרונה יכולים לסיים שליחה וקבלה של נתונים (מומלץ)</translation> <translation id="6278428485366576908">עיצוב</translation> <translation id="6278776436938569440">שינוי מיקום</translation> -<translation id="6279183038361895380">הקש על |<ph name="ACCELERATOR" />| כדי להציג את הסמן</translation> +<translation id="6279183038361895380">יש להקיש על |<ph name="ACCELERATOR" />| כדי להציג את הסמן</translation> <translation id="6280215091796946657">יש להיכנס באמצעות חשבון אחר</translation> <translation id="6280912520669706465">ARC</translation> <translation id="6282180787514676874">{COUNT,plural, =1{חרגת מהמגבלה של גיליון נייר אחד}two{חרגת מהמגבלה של {COUNT} גיליונות נייר}many{חרגת מהמגבלה של {COUNT} גיליונות נייר}other{חרגת מהמגבלה של {COUNT} גיליונות נייר}}</translation> @@ -4637,12 +4637,12 @@ <translation id="6442187272350399447">גדול!</translation> <translation id="6444070574980481588">הגדרת תאריך ושעה</translation> <translation id="6444909401984215022"><ph name="WINDOW_TITLE" /> – סריקת Bluetooth פעילה</translation> -<translation id="6445450263907939268">אם לא רצית את השינויים האלו, תוכל לשחזר את ההגדרות הקודמות שלך.</translation> +<translation id="6445450263907939268">אם לא רצית את השינויים האלו, יהיה באפשרותך לשחזר את ההגדרות הקודמות שלך.</translation> <translation id="6447842834002726250">קובצי Cookie</translation> <translation id="6450876761651513209">שינוי הגדרות הפרטיות שלך</translation> <translation id="6451180435462401570">ניהול מכשירי Cloud Print</translation> <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> וכרטיסייה נוספת אחת}two{<ph name="PAGE_TITLE" /> ו-# כרטיסיות נוספות}many{<ph name="PAGE_TITLE" /> ו-# כרטיסיות נוספות}other{<ph name="PAGE_TITLE" /> ו-# כרטיסיות נוספות}}</translation> -<translation id="6451689256222386810">אם שכחת את ביטוי הסיסמה או אם ברצונך לשנות את ההגדרה הזו, <ph name="BEGIN_LINK" />אפס את הסנכרון<ph name="END_LINK" />.</translation> +<translation id="6451689256222386810">אם שכחת את ביטוי הסיסמה או אם ברצונך לשנות את ההגדרה הזו, <ph name="BEGIN_LINK" />יש לאפס את הסנכרון<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">דחייה</translation> <translation id="6452251728599530347"><ph name="PERCENT" /> הושלמו</translation> <translation id="6452961788130242735">בעיית רשת או תחום לא תקין</translation> @@ -4664,7 +4664,7 @@ <translation id="6468485451923838994">גופנים</translation> <translation id="6469557521904094793">הפעלת רשת סלולרית</translation> <translation id="6472207088655375767">OTP</translation> -<translation id="6472893788822429178">הצג את לחצן 'דף הבית'</translation> +<translation id="6472893788822429178">הצגת לחצן 'דף הבית'</translation> <translation id="6473842110411557830">איור Powerwash</translation> <translation id="6474498546677193336">לא ניתן לבטל את השיתוף כי אפליקציה משתמשת בתיקייה הזו. השיתוף של התיקייה הזו יבוטל בכיבוי הבא של Linux.</translation> <translation id="6474884162850599008">נתק חשבון Google Drive</translation> @@ -4732,7 +4732,7 @@ <translation id="655483977608336153">ניסיון חוזר</translation> <translation id="6555432686520421228">הסרת כל חשבונות המשתמשים ואיפוס המכשיר <ph name="IDS_SHORT_PRODUCT_NAME" /> כך שיהיה כמו חדש.</translation> <translation id="6555810572223193255">הניקוי לא זמין עכשיו</translation> -<translation id="6556866813142980365">בצע מחדש</translation> +<translation id="6556866813142980365">ביצוע מחדש</translation> <translation id="6556903358015358733">עיצוב וטפט</translation> <translation id="6557290421156335491">קיצורי הדרך שלי</translation> <translation id="6560151649238390891">ההצעה יושמה</translation> @@ -4778,7 +4778,7 @@ <translation id="661907246513853610">האתר רשאי לעקוב אחרי המיקום שלך</translation> <translation id="6619243162837544323">מצב רשת</translation> <translation id="6619801788773578757">הוספת יישום קיוסק</translation> -<translation id="6619990499523117484">אשר את מספר ה-PIN</translation> +<translation id="6619990499523117484">אישור קוד האימות</translation> <translation id="6621715389962683284">לא ניתן ליצור חיבור לרשת.</translation> <translation id="6622980291894852883">המשך לחסום תמונות</translation> <translation id="6624535038674360844"><ph name="FILE_NAME" /> מכיל תוכן רגיש או מסוכן. עליך לבקש מהבעלים שלו לתקן אותו.</translation> @@ -4828,7 +4828,7 @@ <translation id="6686817083349815241">שמור את הסיסמה שלך</translation> <translation id="6688285987813868112">יצירת קוד QR לתמונה הזו</translation> <translation id="6690659332373509948">לא ניתן לנתח את הקובץ: <ph name="FILE_NAME" /></translation> -<translation id="6690751852586194791">בחר משתמש בפיקוח להוספה למכשיר זה.</translation> +<translation id="6690751852586194791">יש לבחור משתמש בפיקוח להוספה למכשיר זה.</translation> <translation id="6691331417640343772">ניהול נתונים מסוכרנים במרכז השליטה של Google</translation> <translation id="6691541770654083180">כדור הארץ</translation> <translation id="6691936601825168937">&קדימה</translation> @@ -4866,7 +4866,7 @@ <translation id="6732801395666424405">האישורים לא נטענו</translation> <translation id="6732900235521116609">לא ניתן להסיר את קיצור הדרך</translation> <translation id="6734468588183300211">במצב אנונימי, אתרים לא יכולים להשתמש בקובצי Cookie כדי לקבל מידע על פעילות הגלישה שלך. המידע הזה דרוש להם לצרכים שונים, כמו למשל הצגה של מודעות בהתאמה אישית. ייתכן שתכונות באתרים מסוימים לא יפעלו כראוי.</translation> -<translation id="6735304988756581115">הצג קובצי Cookie ונתוני אתר אחרים...</translation> +<translation id="6735304988756581115">הצגת קובצי Cookie ונתוני אתר אחרים...</translation> <translation id="6736243959894955139">כתובת</translation> <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation> <translation id="6737663862851963468">הסרה של כרטיס Kerberos</translation> @@ -4877,7 +4877,7 @@ <translation id="6745592621698551453">עדכן כעת</translation> <translation id="6746124502594467657">העברה למטה</translation> <translation id="674632704103926902">הפעלת גרירה והקשה</translation> -<translation id="6748465660675848252">אתה יכול להמשיך, אולם רק הנתונים וההגדרות המסונכרנים שלך ישוחזרו. כל הנתונים המקומיים יאבדו.</translation> +<translation id="6748465660675848252">באפשרותך להמשיך, אולם רק הנתונים וההגדרות המסונכרנים שלך ישוחזרו. כל הנתונים המקומיים יאבדו.</translation> <translation id="6749006854028927059">אתרים לא יכולים להשתמש בקובצי Cookie כדי לקבל מידע על פעילות הגלישה שלך. המידע הזה דרוש להם לצרכים שונים, כמו למשל הצגה של מודעות בהתאמה אישית. ייתכן שתכונות באתרים מסוימים לא יפעלו כראוי.</translation> <translation id="6750757184909117990">ביטול הרשת הסלולרית</translation> <translation id="6750946710563435348">שימוש בשם משתמש אחר</translation> @@ -4910,7 +4910,7 @@ <translation id="6787839852456839824">מקשי קיצור</translation> <translation id="6788210894632713004">תוסף Unpacked</translation> <translation id="6789592661892473991">פיצול אופקי</translation> -<translation id="6790428901817661496">הפעל</translation> +<translation id="6790428901817661496">הפעלה</translation> <translation id="6790497603648687708"><ph name="EXTENSION_NAME" /> נוסף מרחוק</translation> <translation id="6790820461102226165">הוספת משתמש...</translation> <translation id="6792072150955115067">מהאפליקציה <ph name="APP_NAME" /> נשלחה בקשה לשתף את תוכן המסך עם <ph name="TARGET_NAME" />. בחר את התוכן שברצונך לשתף.</translation> @@ -4928,7 +4928,7 @@ <translation id="680572642341004180">הפעלת מעקב RLZ ב-<ph name="SHORT_PRODUCT_OS_NAME" />.</translation> <translation id="6808039367995747522">כדי להמשיך, עליך לחבר את מפתח האבטחה ולגעת בו</translation> <translation id="6808193438228982088">שועל</translation> -<translation id="6810613314571580006">היכנס באופן אוטומטי לאתרים באמצעות פרטי כניסה שמורים. כשהתכונה הזו מושבתת, תתבקש לאשר לפני כל כניסה לאתר.</translation> +<translation id="6810613314571580006">כניסה אוטומטית לאתרים באמצעות פרטי כניסה שמורים. כשהתכונה הזו מושבתת, יהיה עליך לאשר לפני כל כניסה לאתר.</translation> <translation id="6810768462515084623">אופס! נראה שהסיסמה שלך כבר לא בתוקף. יש לחדש אותה במכשיר אחר ולנסות שוב.</translation> <translation id="6811034713472274749">הדף מוכן להצגה</translation> <translation id="6811332638216701903">שם מארח ב-DHCP</translation> @@ -5008,7 +5008,7 @@ <translation id="6902336033320348843">הקטע לא נתמך: <ph name="ERROR_LINE" /></translation> <translation id="6902837902700739466">צירוף המכשיר לדומיין</translation> <translation id="6903590427234129279">פתיחת כל החלונות (<ph name="URL_COUNT" />)</translation> -<translation id="6903907808598579934">הפעל סנכרון</translation> +<translation id="6903907808598579934">הפעלת הסנכרון</translation> <translation id="6904344821472985372">ביטול גישה לקבצים</translation> <translation id="6904655473976120856">לחץ על לחצן האפליקציה כדי לצאת</translation> <translation id="6909422577741440844">לקבל שיתוף מהמכשיר הזה?</translation> @@ -5114,7 +5114,7 @@ <translation id="7006634003215061422">שוליים תחתונים</translation> <translation id="7007648447224463482">פתח הכול בחלון חדש</translation> <translation id="7009709314043432820">המצלמה בשימוש על ידי <ph name="APP_NAME" /></translation> -<translation id="701080569351381435">הצג מקור</translation> +<translation id="701080569351381435">הצגת המקור</translation> <translation id="7014174261166285193">ההתקנה נכשלה.</translation> <translation id="7017004637493394352">אמור שוב "Ok Google"</translation> <translation id="7017219178341817193">הוסף דף חדש</translation> @@ -5163,7 +5163,7 @@ <translation id="7069811530847688087">ייתכן שיהיה צורך במפתח אבטחה חדש יותר, או מסוג אחר, עבור <ph name="WEBSITE" /></translation> <translation id="7070484045139057854">התוסף יכול לקרוא ולשנות נתוני אתרים</translation> <translation id="7072010813301522126">שם קיצור הדרך</translation> -<translation id="707392107419594760">בחר מקלדת:</translation> +<translation id="707392107419594760">יש לבחור מקלדת:</translation> <translation id="7075513071073410194">PKCS #1 MD5 עם הצפנת RSA</translation> <translation id="7075625805486468288">נהל אישורים והגדרות של HTTPS/SSL</translation> <translation id="7076293881109082629">כניסה</translation> @@ -5178,7 +5178,7 @@ <translation id="7086672505018440886">הכללה של קובצי יומן Chrome בארכיון.</translation> <translation id="7088434364990739311">המערכת לא הצליחה להפעיל את בדיקת העדכונים (קוד שגיאה <ph name="ERROR" />).</translation> <translation id="7088561041432335295">Zip Archiver - פתיחה ויצירה של קובצי ZIP באפליקציה 'קבצים'.</translation> -<translation id="7088674813905715446">המכשיר הזה הועבר למצב 'ללא הקצאה' על ידי מנהל המערכת. על מנת להפעיל אותו עבור הרשמה, בקש ממנהל המערכת להעביר את המכשיר למצב המתנה.</translation> +<translation id="7088674813905715446">המכשיר הזה הועבר למצב 'ללא הקצאה' על ידי מנהל המערכת. על מנת להפעיל אותו עבור הרשמה, יש לבקש ממנהל המערכת להעביר את המכשיר למצב המתנה.</translation> <translation id="7092474863625458670">התכונה Voice Match מאפשרת לך לגשת ל-Assistant ישירות באמצעות הקול שלך. <ph name="BR" /> <ph name="BEGIN_BOLD" />חשוב לזכור:<ph name="END_BOLD" /> ייתכן שיהיה אפשר לגשת ל-Assistant שלך גם באמצעות קול דומה או הקלטה. אפשר להסיר את ההרשאה של Voice Match בשלב מאוחר יותר. כדי לעשות זאת, יש להשבית את ההרשאה דרך ההגדרות של Assistant.</translation> @@ -5305,7 +5305,7 @@ <translation id="725109152065019550">מצטערים, מנהל המערכת השבית את האחסון החיצוני בחשבונך.</translation> <translation id="7251346854160851420">הטפט המוגדר כברירת מחדל</translation> <translation id="7253521419891527137">&למידע נוסף</translation> -<translation id="7254951428499890870">האם אתה בטוח שברצונך להפעיל את "<ph name="APP_NAME" />" במצב אבחון?</translation> +<translation id="7254951428499890870">ברצונך באמת להפעיל את "<ph name="APP_NAME" />" במצב אבחון?</translation> <translation id="7255002516883565667">יש לך כרגע כרטיס אחד שאפשר להשתמש בו רק במכשיר הזה</translation> <translation id="7255935316994522020">החל</translation> <translation id="7256069762010468647">האתר משתמש במצלמה</translation> @@ -5361,7 +5361,7 @@ <translation id="7325209047678309347">נייר נתקע</translation> <translation id="7325437708553334317">תוסף ניגודיות גבוהה</translation> <translation id="7326004502692201767">הגדרת מכשיר <ph name="DEVICE_TYPE" /> הזה בשביל ילד או ילדה</translation> -<translation id="7328699668338161242">ה-Assistant כבר יודע לזהות את הקול שלך</translation> +<translation id="7328699668338161242">ה-Assistant כבר יודעת לזהות את הקול שלך</translation> <translation id="7328867076235380839">שילוב לא חוקי</translation> <translation id="7329154610228416156">הכניסה נכשלה מפני שהוגדר שימוש בכתובת אתר לא מאובטחת (<ph name="BLOCKED_URL" />). צור קשר עם מנהל המערכת.</translation> <translation id="7332053360324989309">עובד ייעודי: <ph name="SCRIPT_URL" /></translation> @@ -5426,7 +5426,7 @@ <translation id="7399045143794278225">התאמה אישית של הסנכרון</translation> <translation id="7400418766976504921">כתובת אתר</translation> <translation id="7400447915166857470">לשנות חזרה אל <ph name="OLD_SEARCH_PROVIDER" />?</translation> -<translation id="7400839060291901923">הגדר את החיבור בטלפון <ph name="PHONE_NAME" /></translation> +<translation id="7400839060291901923">הגדרת החיבור בטלפון <ph name="PHONE_NAME" /></translation> <translation id="7401778920660465883">סגירת ההודעה</translation> <translation id="7403642243184989645">מתבצעת הורדת משאבים</translation> <translation id="7405938989981604410">{NUM_HOURS,plural, =1{בדיקת הבטיחות פעלה לפני שעה}two{בדיקת הבטיחות פעלה לפני {NUM_HOURS} שעות}many{בדיקת הבטיחות פעלה לפני {NUM_HOURS} שעות}other{בדיקת הבטיחות פעלה לפני {NUM_HOURS} שעות}}</translation> @@ -5480,7 +5480,7 @@ <translation id="7459920164600044274">אתרים משתמשים בדרך כלל ביישומי פלאגין כדי לתמוך בתכונות כמו וידאו בסטרימינג או התקנת אפליקציות</translation> <translation id="7460045493116006516">העיצוב הנוכחי</translation> <translation id="7461729991508684543">{NUM_DAYS,plural, =1{לפי הדרישה של <ph name="DOMAIN" />, עליך לגבות את הנתונים שלך ולהחזיר את מכשיר ה-<ph name="DEVICE_TYPE" /> היום. <ph name="LINK_BEGIN" />פרטים נוספים<ph name="LINK_END" />}two{לפי הדרישה של <ph name="DOMAIN" />, עליך לגבות את הנתונים שלך ולהחזיר את מכשיר ה-<ph name="DEVICE_TYPE" /> בתוך {NUM_DAYS} ימים. <ph name="LINK_BEGIN" />פרטים נוספים<ph name="LINK_END" />}many{לפי הדרישה של <ph name="DOMAIN" />, עליך לגבות את הנתונים שלך ולהחזיר את מכשיר ה-<ph name="DEVICE_TYPE" /> בתוך {NUM_DAYS} ימים. <ph name="LINK_BEGIN" />פרטים נוספים<ph name="LINK_END" />}other{לפי הדרישה של <ph name="DOMAIN" />, עליך לגבות את הנתונים שלך ולהחזיר את מכשיר ה-<ph name="DEVICE_TYPE" /> בתוך {NUM_DAYS} ימים. <ph name="LINK_BEGIN" />פרטים נוספים<ph name="LINK_END" />}}</translation> -<translation id="7461924472993315131">הצמד</translation> +<translation id="7461924472993315131">הצמדה</translation> <translation id="746216226901520237">בפעם הבאה, הטלפון יבטל את הנעילה של <ph name="DEVICE_TYPE" />. אפשר להשבית את Smart Lock דרך ההגדרות.</translation> <translation id="7463006580194749499">הוספת משתמש</translation> <translation id="7465522323587461835">{NUM_OPEN_TABS,plural, =1{כרטיסייה פתוחה אחת. עליך ללחוץ כדי להחליף את המצב של שורת הכרטיסיות}two{# כרטיסיות פתוחות. עליך ללחוץ כדי להחליף את המצב של שורת הכרטיסיות}many{# כרטיסיות פתוחות. עליך ללחוץ כדי להחליף את המצב של שורת הכרטיסיות}other{# כרטיסיות פתוחות. עליך ללחוץ כדי להחליף את המצב של שורת הכרטיסיות}}</translation> @@ -5552,10 +5552,10 @@ <translation id="7548856833046333824">משקה בריאות</translation> <translation id="7550830279652415241">bookmarks_<ph name="DATESTAMP" />.html</translation> <translation id="7551059576287086432">ההורדה של <ph name="FILE_NAME" /> הצליחה</translation> -<translation id="7551643184018910560">הצמד למדף</translation> +<translation id="7551643184018910560">הצמדה למדף</translation> <translation id="7552846755917812628">אולי הטיפים האלו יעזרו לך:</translation> <translation id="7553012839257224005">המערכת בודקת את הקונטיינר של Linux</translation> -<translation id="7553242001898162573">הזן את הסיסמה</translation> +<translation id="7553242001898162573">הזנת הסיסמה</translation> <translation id="7554475479213504905">לטעון מחדש ולהציג בכל זאת?</translation> <translation id="7554791636758816595">כרטיסייה חדשה</translation> <translation id="7556033326131260574">מערכת Smart Lock לא הצליחה לאמת את חשבונך. כדי להיכנס, הזן את הסיסמה.</translation> @@ -5573,7 +5573,7 @@ <translation id="7573172247376861652">טעינת סוללה</translation> <translation id="7573594921350120855">אתרים משתמשים בדרך כלל במצלמת הווידאו כדי לתמוך בתכונות תקשורת כמו וידאו צ'אט</translation> <translation id="7574650250151586813">כדי להקליד טקסט צריך לעדכן את האפליקציה 'מקלדת Daydream'</translation> -<translation id="7576690715254076113">אסוף</translation> +<translation id="7576690715254076113">איסוף</translation> <translation id="7576976045740938453">התרחשה בעיה שקשורה לחשבון מצב ההדגמה.</translation> <translation id="7578137152457315135">הגדרות של טביעות אצבעות</translation> <translation id="7580671184200851182">השמע את אותו אודיו מכל הרמקולים (אודיו מונו)</translation> @@ -5723,7 +5723,7 @@ <translation id="7744047395460924128">הצגת היסטוריית ההדפסות שלך</translation> <translation id="7744192722284567281">נמצאה בפרצה באבטחת מידע</translation> <translation id="7750228210027921155">תמונה בתוך תמונה</translation> -<translation id="7751260505918304024">הצג הכל</translation> +<translation id="7751260505918304024">הצגת הכול</translation> <translation id="7753735457098489144">ההתקנה נכשלה כי אין מספיק שטח אחסון. כדי לפנות שטח, עליך למחוק קבצים מאחסון המכשיר.</translation> <translation id="7754347746598978109">לא מורשים להשתמש ב-JavaScript</translation> <translation id="7754704193130578113">יש לשאול היכן לשמור כל קובץ לפני הורדתו</translation> @@ -5825,7 +5825,7 @@ <translation id="7832084384634357321">שעת סיום</translation> <translation id="783214144752121388">חסימת האפשרות של אתרים להפעיל Flash (מומלץ)</translation> <translation id="7833720883933317473">כאן יופיעו המילים המותאמות ששמרת</translation> -<translation id="7835178595033117206">הסימניה הוסרה</translation> +<translation id="7835178595033117206">הסימנייה הוסרה</translation> <translation id="7836850009646241041">עליך לנסות לגעת שוב במפתח האבטחה</translation> <translation id="7837776265184002579">דף הבית השתנה ל-<ph name="URL" />.</translation> <translation id="7839051173341654115">הצג/גבה מדיה</translation> @@ -5835,7 +5835,7 @@ <translation id="7844553762889824470">יש להדגיש את הטקסט להשמעה ולהקיש על מקש החיפוש יחד עם מקש S. לחלופין, אפשר גם ללחוץ לחיצה ארוכה על מקש החיפוש או להקיש על סמל ההקראה ליד תמונת הפרופיל כדי לבחור.</translation> <translation id="7844992432319478437">מעדכן הבדל</translation> <translation id="7846634333498149051">מקלדת</translation> -<translation id="7847212883280406910">הקש על Ctrl + Alt + S כדי לעבור אל <ph name="IDS_SHORT_PRODUCT_OS_NAME" /></translation> +<translation id="7847212883280406910">יש להקיש על Ctrl + Alt + S כדי לעבור אל <ph name="IDS_SHORT_PRODUCT_OS_NAME" /></translation> <translation id="7849264908733290972">פתיחת &תמונה בכרטיסייה חדשה</translation> <translation id="784934925303690534">טווח זמן</translation> <translation id="7851457902707056880">הכניסה הוגבלה לחשבון הבעלים בלבד. יש לבצע אתחול מחדש ולהיכנס באמצעות חשבון הבעלים. המערכת תבצע אתחול מחדש באופן אוטומטי בתוך 30 שניות.</translation> @@ -5889,7 +5889,7 @@ <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">הסיסמה שלך שונתה בשרת. צא ולאחר מכן היכנס מחדש.</translation> <translation id="7915457674565721553">יש להתחבר לאינטרנט כדי להגדיר בקרת הורים</translation> -<translation id="7918257978052780342">הירשם</translation> +<translation id="7918257978052780342">הרשמה</translation> <translation id="7919210519031517829"><ph name="DURATION" /> שנ'</translation> <translation id="7920363873148656176">ל-<ph name="ORIGIN" /> יש אפשרות להציג את <ph name="FILENAME" /></translation> <translation id="7920482456679570420">הוספת מילים שיש לדלג עליהן בבדיקות איות</translation> @@ -5934,13 +5934,13 @@ <translation id="7963001036288347286">האצת לוח מגע</translation> <translation id="7963608432878156675">השם הזה יוצג למכשירים אחרים בזמן החיבור לרשת או ל-Bluetooth</translation> <translation id="7963826112438303517">ה-Assistant משתמש בהקלטות האלה ובבקשות קוליות כדי ליצור ולעדכן את תבנית הקול שלך. התבנית נשמרת רק במכשירים שבהם התכונה Voice Match מופעלת. אפשר להציג את הפעילות הקולית או לשמור אותה דרך ההגדרות של Assistant.</translation> -<translation id="7966241909927244760">העתק כתובת &תמונה</translation> +<translation id="7966241909927244760">העתקת כתובת &תמונה</translation> <translation id="7966571622054096916">{COUNT,plural, =1{פריט אחד ברשימת הסימניות}two{{COUNT} פריטים ברשימת הסימניות}many{{COUNT} פריטים ברשימת הסימניות}other{{COUNT} פריטים ברשימת הסימניות}}</translation> <translation id="7968072247663421402">אפשרויות ספק</translation> <translation id="7968198493605442410">העתקת הקישור לטקסט</translation> <translation id="7968742106503422125">קריאה ושינוי של נתונים שאתה מעתיק ומדביק</translation> <translation id="7968833647796919681">הפעל איסוף של נתוני ביצועים</translation> -<translation id="7968982339740310781">הצג פרטים</translation> +<translation id="7968982339740310781">הצגת פרטים</translation> <translation id="7969046989155602842">פקודה</translation> <translation id="7970673414865679092">פרטי Ethernet</translation> <translation id="7970882136539140748">אי אפשר לשמור את הכרטיס עכשיו</translation> @@ -5961,7 +5961,7 @@ <translation id="7985283639530788531">להשתמש ב-Touch ID עם <ph name="APP_NAME" /> במצב גלישה בסתר?</translation> <translation id="7986295104073916105">קריאה ושינוי של הגדרות בשביל סיסמאות שמורות</translation> <translation id="7987814697832569482">החיבור יתבצע תמיד דרך ה-VPN הזה</translation> -<translation id="7988355189918024273">הפוך תכונות נגישות לפעילות</translation> +<translation id="7988355189918024273">יש להפוך תכונות נגישות לפעילות</translation> <translation id="7991296728590311172">הגדרות גישה באמצעות מתג</translation> <translation id="7993750787380199093">כדאי לשמור את כל הסיסמאות בחשבון Google כדי להשתמש בהן בכל המכשירים שברשותך</translation> <translation id="7994702968232966508">שיטת EAP</translation> @@ -5978,7 +5978,7 @@ <translation id="8004582292198964060">דפדפן</translation> <translation id="8005600846065423578">אפשר תמיד ל-<ph name="HOST" /> לגשת ללוח</translation> <translation id="8006143138282906848">הסרת הפרופיל</translation> -<translation id="8008356846765065031">האינטרנט מנותק. בדוק את חיבור האינטרנט.</translation> +<translation id="8008356846765065031">האינטרנט מנותק. יש לבדוק את חיבור האינטרנט.</translation> <translation id="8009225694047762179">ניהול סיסמאות</translation> <translation id="8012647001091218357">לא הצלחנו ליצור קשר עם ההורים שלך. נסה שוב מאוחר יותר.</translation> <translation id="8013993649590906847">אם אין לתמונה תיאור מועיל, Chrome ינסה לספק לך תיאור. כדי ליצור תיאורים, התמונות נשלחות אל Google.</translation> @@ -6018,7 +6018,7 @@ <translation id="8053278772142718589">קבצים של PKCS #12</translation> <translation id="8053390638574070785">טען דף זה מחדש</translation> <translation id="8054517699425078995">קובץ מסוג זה יכול לפגוע במכשיר שלך. האם אתה רוצה לשמור את <ph name="FILE_NAME" /> בכל זאת?</translation> -<translation id="8054563304616131773">הזן כתובת אימייל חוקית</translation> +<translation id="8054563304616131773">יש להזין כתובת אימייל חוקית</translation> <translation id="8054921503121346576">מקלדת USB מחוברת</translation> <translation id="8058655154417507695">שנת תפוגה</translation> <translation id="8058811362315390556">לא תהיה יותר תמיכה ב-Google Cloud Print לאחר 31 בדצמבר</translation> @@ -6029,7 +6029,7 @@ <translation id="8063235345342641131">דמות ברירת מחדל ירוקה</translation> <translation id="8063535366119089408">אישור לראות את הקובץ</translation> <translation id="8064279191081105977">קבוצה <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /> – <ph name="COLLAPSED_STATE" /></translation> -<translation id="8068253693380742035">גע כדי להיכנס</translation> +<translation id="8068253693380742035">יש לגעת כדי להיכנס</translation> <translation id="8069615408251337349">Google Cloud Print</translation> <translation id="8071432093239591881">הדפסה כתמונה</translation> <translation id="8073499153683482226"><ph name="BEGIN_PARAGRAPH1" />נתוני אפליקציות הם כל הנתונים הנשמרים באפליקציות (בהתאם להגדרות המפתחים), כולל נתונים כמו אנשי קשר, הודעות ותמונות.<ph name="END_PARAGRAPH1" /> @@ -6103,7 +6103,7 @@ <translation id="8141725884565838206">נהל את הסיסמאות שלך</translation> <translation id="8143442547342702591">יישום לא חוקי</translation> <translation id="8143951647992294073">בחירת <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation> -<translation id="8146177459103116374">אם אתה כבר רשום במכשיר זה, תוכל <ph name="LINK2_START" />להתחבר כמשתמש קיים<ph name="LINK2_END" />.</translation> +<translation id="8146177459103116374">אם נרשמת כבר במכשיר זה, יהיה באפשרותך <ph name="LINK2_START" />להתחבר כמשתמש קיים<ph name="LINK2_END" />.</translation> <translation id="8146793085009540321">הכניסה נכשלה. צור קשר עם מנהל המערכת או נסה שוב.</translation> <translation id="8147900440966275470">נמצאה כרטיסייה אחת (<ph name="NUM" />)</translation> <translation id="8148760431881541277">הגבלת כניסה</translation> @@ -6145,7 +6145,7 @@ <translation id="8199300056570174101">מאפייני רשת (שירות) ומכשיר</translation> <translation id="8200772114523450471">חדש</translation> <translation id="8201717382574620700">בחר אלבומי <ph name="TOPIC_SOURCE" /></translation> -<translation id="8202160505685531999">הזן שוב את הסיסמה כדי לעדכן את פרופיל <ph name="DEVICE_TYPE" />.</translation> +<translation id="8202160505685531999">יש להזין שוב את הסיסמה כדי לעדכן את פרופיל <ph name="DEVICE_TYPE" />.</translation> <translation id="8203732864715032075">המערכת שולחת לך התראות ומגדירה את המחשב הזה כברירת מחדל לשליחת ההודעות. <ph name="LINK_BEGIN" />מידע נוסף<ph name="LINK_END" /></translation> <translation id="8205561625497621211">חסימת Flash (מומלץ)</translation> <translation id="820568752112382238">האתרים שאליהם נכנסת בתדירות הגבוהה ביותר</translation> @@ -6209,11 +6209,11 @@ <ph name="BEGIN_PARAGRAPH4" />אם הופעלה הגדרה נוספת של 'פעילות באינטרנט ובאפליקציות' בחשבון של הילד/ה, ייתכן שהנתונים האלה יישמרו בחשבון Google שלו/ה. אפשר לקרוא מידע נוסף על ההגדרות האלה ואופן השינוי שלהם בכתובת families.google.com.<ph name="END_PARAGRAPH4" /></translation> <translation id="826905130698769948">אישור לקוח לא חוקי</translation> <translation id="8270242299912238708">מסמכי PDF</translation> -<translation id="827097179112817503">הצג את לחצן 'דף הבית'</translation> +<translation id="827097179112817503">הצגת לחצן 'דף הבית'</translation> <translation id="8271379370373330993">עכשיו יש כמה שלבים שהורים צריכים להשלים. אפשר יהיה להחזיר את ה-<ph name="DEVICE_TYPE" /> לילד/ה לאחר הגדרת החשבון.</translation> <translation id="8272443605911821513">נהל את התוספים שלך על ידי לחיצה על 'תוספים' בתפריט 'כלים נוספים'.</translation> <translation id="8274332263553132018">העברת קובץ</translation> -<translation id="8274924778568117936">אל תכבה או תסגור את ה-<ph name="DEVICE_TYPE" /> לפני סיום העדכון. ה-<ph name="DEVICE_TYPE" /> יופעל מחדש באופן אוטומטי בסיום ההתקנה.</translation> +<translation id="8274924778568117936">אין לכבות או לסגור את ה-<ph name="DEVICE_TYPE" /> לפני סיום העדכון. ה-<ph name="DEVICE_TYPE" /> יופעל מחדש באופן אוטומטי בסיום ההתקנה.</translation> <translation id="8275038454117074363">ייבוא</translation> <translation id="8275080796245127762">שיחה מהמכשיר שלך</translation> <translation id="8275339871947079271">מומלץ להעביר את הסיסמה לחשבון Google כדי לגשת אליה באופן מאובטח לאחר התחברות לחשבון</translation> @@ -6228,7 +6228,7 @@ <translation id="8288032458496410887">הסרת <ph name="APP" />...</translation> <translation id="8289128870594824098">גודל כונן</translation> <translation id="8291967909914612644">המדינה של הספק הביתי</translation> -<translation id="8293206222192510085">הוסף סימניה</translation> +<translation id="8293206222192510085">הוספת סימנייה</translation> <translation id="8294431847097064396">מקור</translation> <translation id="8297006494302853456">חלש</translation> <translation id="8299319456683969623">אינך מחובר לאינטרנט כרגע</translation> @@ -6270,7 +6270,7 @@ <translation id="8351419472474436977">תוסף זה השתלט על הגדרות שרת ה-Proxy שלך. משמעות הדבר היא שהוא יכול לשנות, לקטוע או לצותת לכל פעולה שתבצע באינטרנט. אם אינך יודע בוודאות מדוע שינוי זה התרחש, סביר להניח שזהו שינוי לא רצוי.</translation> <translation id="8351630282875799764">הסוללה לא נטענת</translation> <translation id="835238322900896202">אירעה שגיאה במהלך הסרת ההתקנה. יש להסיר את ההתקנה באמצעות המסוף.</translation> -<translation id="8352772353338965963">הוסף חשבון לכניסה עם מספר חשבונות. כל החשבונות שאליהם נכנסת נגישים ללא סיסמה, לכן יש להשתמש בתכונה זו עם חשבונות אמינים בלבד.</translation> +<translation id="8352772353338965963">יש להוסיף חשבון לכניסה עם מספר חשבונות. כל החשבונות שאליהם נכנסת נגישים ללא סיסמה, לכן יש להשתמש בתכונה זו עם חשבונות אמינים בלבד.</translation> <translation id="8353683614194668312">יכול:</translation> <translation id="8356197132883132838"><ph name="TITLE" /> - <ph name="COUNT" /></translation> <translation id="8357388086258943206">שגיאה בהתקנת Linux</translation> @@ -6340,7 +6340,7 @@ <translation id="8434480141477525001">יציאת ניפוי באגים של לקוח מקומי</translation> <translation id="8435395510592618362">אימות הזהות שלך בעזרת <ph name="APP_NAME" /></translation> <translation id="8437209419043462667">ארה"ב</translation> -<translation id="8438328416656800239">החלף לדפדפן חכם</translation> +<translation id="8438328416656800239">החלפה לדפדפן חכם</translation> <translation id="8438566539970814960">שיפור החיפושים והגלישה</translation> <translation id="8439506636278576865">הצעות לתרגום דפים שנכתבו בשפה זו</translation> <translation id="8440630305826533614">אפליקציות Linux</translation> @@ -6348,7 +6348,7 @@ <translation id="8446884382197647889">למידע נוסף</translation> <translation id="8447409163267621480">יש לכלול את Ctrl או Alt</translation> <translation id="8448729345478502352">הגדלה או הקטנה של פריטים במסך</translation> -<translation id="8449008133205184768">הדבק והתאם סגנון</translation> +<translation id="8449008133205184768">הדבקה והתאמה של סגנון</translation> <translation id="8449036207308062757">נהל אחסון</translation> <translation id="8452135315243592079">כרטיס SIM חסר</translation> <translation id="8455026683977728932">ההפעלה של איור ADB נכשלה</translation> @@ -6384,7 +6384,7 @@ <translation id="8483248364096924578">כתובת IP</translation> <translation id="8487678622945914333">התקרב</translation> <translation id="8489156414266187072">הצעות מותאמות אישית מוצגות בחשבון שלך בלבד</translation> -<translation id="8490896350101740396">אפליקצית הקיוסק הבאות "<ph name="UPDATED_APPS" />" עודכנו. הפעל מחדש את המכשיר כדי להשלים את תהליך העדכון.</translation> +<translation id="8490896350101740396">אפליקצית הקיוסק הבאות "<ph name="UPDATED_APPS" />" עודכנו. יש להפעיל מחדש את המכשיר כדי להשלים את תהליך העדכון.</translation> <translation id="8492822722330266509">אתרים יכולים להציג חלונות קופצים ולהשתמש בהפניות אוטומטיות</translation> <translation id="8493236660459102203">מיקרופון:</translation> <translation id="8496717697661868878">הרץ פלאגין זה</translation> @@ -6431,7 +6431,7 @@ <translation id="854655314928502177">כתובת האתר לגילוי אוטומטי של שרת proxy באינטרנט:</translation> <translation id="8546930481464505581">התאם אישית את סרגל המגע</translation> <translation id="8547013269961688403">הפעלת מגדיל למסך מלא</translation> -<translation id="85486688517848470">החזק את מקש החיפוש כדי לשנות את ההתנהגות של מקשי השורה העליונה</translation> +<translation id="85486688517848470">יש להחזיק את מקש החיפוש כדי לשנות את ההתנהגות של מקשי השורה העליונה</translation> <translation id="8549316893834449916">הכניסה אל Chromebook תתבצע באמצעות חשבון Google שלך – אותו חשבון שמשמש אותך ב-Gmail, ב-Drive, ב-YouTube ועוד.</translation> <translation id="8551388862522347954">רישיונות</translation> <translation id="8551588720239073785">הגדרות תאריך ושעה</translation> @@ -6504,7 +6504,7 @@ <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> – יציאה</translation> <translation id="8639635302972078117">שליחת מידע לגבי אופן השימוש בנתונים וניתוח הביצועים. המכשיר הזה שולח עכשיו אל Google באופן אוטומטי נתוני אבחון, נתוני מכשיר ונתוני שימוש באפליקציות. הנתונים האלה לא ישמשו כדי לזהות את הילד או הילדה שלך, והם יעזרו לנו לשמור על היציבות של המערכת ושל האפליקציות ולבצע שיפורים אחרים. חלק מהנתונים הנצברים יעזרו גם לשפר את האפליקציות של Google וכן יעזרו לשותפים של Google, כמו מפתחים של Android. אם ההגדרה 'פעילות באתרי אינטרנט ובאפליקציות נוספים' הופעלה עבור הילד או הילדה שלך, ייתכן שהנתונים יישמרו בחשבון Google שלהם.</translation> <translation id="8642900771896232685">שתי שניות</translation> -<translation id="8642947597466641025">הגדל טקסט</translation> +<translation id="8642947597466641025">הגדלת טקסט</translation> <translation id="8643443571868262066">הקובץ <ph name="FILE_NAME" /> עשוי להיות מסוכן. האם לשלוח אותו לסריקה באמצעות ההגנה המתקדמת של Google?</translation> <translation id="8644655801811752511">לא ניתן לאפס את מפתח האבטחה הזה. צריך לנסות לאפס אותו מיד אחרי החיבור.</translation> <translation id="8645354835496065562">המשך התרת הגישה לחיישנים</translation> @@ -6520,7 +6520,7 @@ <translation id="8652400352452647993">שגיאת 'ארוז תוסף'</translation> <translation id="8654151524613148204">הקובץ גדול מכדי שהמחשב שלך יוכל לטפל בו. מצטערים.</translation> <translation id="8655295600908251630">ערוץ</translation> -<translation id="8655972064210167941">הכניסה נכשלה מפני שלא ניתן היה לאמת את הסיסמה. צור קשר עם מנהל המערכת או נסה שוב.</translation> +<translation id="8655972064210167941">הכניסה נכשלה מפני שלא ניתן היה לאמת את הסיסמה. יש לפנות למנהל המערכת או לנסות שוב.</translation> <translation id="8656768832129462377">אל תבדוק</translation> <translation id="8658645149275195032"><ph name="APP_NAME" /> משתף את המסך והאודיו שלך עם <ph name="TAB_NAME" />.</translation> <translation id="8661290697478713397">פתיחת הקישור בחלון &אנונימי</translation> @@ -6654,7 +6654,7 @@ <translation id="8800034312320686233">האתר לא פועל?</translation> <translation id="8803953437405899238">פתיחת כרטיסייה חדשה בקליק אחד</translation> <translation id="8804999695258552249">{NUM_TABS,plural, =1{העברת כרטיסייה לחלון אחר}two{העברת כרטיסיות לחלון אחר}many{העברת כרטיסיות לחלון אחר}other{העברת כרטיסיות לחלון אחר}}</translation> -<translation id="8805140816472474147">אשר הגדרות סינכרון כדי להתחיל בסינכרון.</translation> +<translation id="8805140816472474147">יש לאשר הגדרות סנכרון כדי להתחיל בסנכרון.</translation> <translation id="8806680466228877631"><ph name="SHORTCUT" /> מאפשר לפתוח מחדש כרטיסיות שנסגרו בטעות</translation> <translation id="8807632654848257479">יציב</translation> <translation id="8808478386290700967">חנות אינטרנט</translation> @@ -6677,7 +6677,7 @@ <translation id="8818152010000655963">טפט</translation> <translation id="8818958672113348984">אימות באמצעות הטלפון</translation> <translation id="8820817407110198400">סימניות</translation> -<translation id="8821045908425223359">הגדר כתובת IP באופן אוטומטי</translation> +<translation id="8821045908425223359">הגדרת כתובת IP באופן אוטומטי</translation> <translation id="8821268776955756404">האפליקציה <ph name="APP_NAME" /> מוכנה לשימוש.</translation> <translation id="882204272221080310">כדאי לעדכן את הקושחה כדי להגביר את האבטחה.</translation> <translation id="8823514049557262177">העתק ט&קסט קישור</translation> @@ -6724,7 +6724,7 @@ <translation id="8868838761037459823">פרטי הרשת הסלולרית</translation> <translation id="8870413625673593573">נסגרו לאחרונה</translation> <translation id="8871551568777368300">הוצמד על ידי מנהל המערכת</translation> -<translation id="8871696467337989339">אתה משתמש בסימון שורת פקודה שאינו נתמך: <ph name="BAD_FLAG" />. היציבות והאבטחה ייפגעו.</translation> +<translation id="8871696467337989339">השתמשת בסימון שורת פקודה שאינו נתמך: <ph name="BAD_FLAG" />. היציבות והאבטחה ייפגעו.</translation> <translation id="8871974300055371298">הגדרות תוכן</translation> <translation id="8872155268274985541">נמצא קובץ מניפסט לא חוקי לעדכון חיצוני של קיוסק. העדכון של אפליקצית הקיוסק נכשל. הסר את הדיסק און קי.</translation> <translation id="8872777911145321141">תוצג שאלה כשאתר ירצה להשתמש במכשירי המציאות המדומה ובנתוני המציאות המדומה שלך (מומלץ)</translation> @@ -6742,7 +6742,7 @@ <translation id="8888432776533519951">צבע:</translation> <translation id="8889651696183044030">ל-<ph name="ORIGIN" /> יש הרשאה לערוך את הקבצים והתיקיות הבאים</translation> <translation id="8890516388109605451">מקורות</translation> -<translation id="8892168913673237979">הכל מוכן!</translation> +<translation id="8892168913673237979">הכול מוכן!</translation> <translation id="8893801527741465188">הסרת ההתקנה הושלמה</translation> <translation id="8893928184421379330">מצטערים, לא ניתן לזהות את המכשיר <ph name="DEVICE_LABEL" />.</translation> <translation id="8895454554629927345">רשימת סימניות</translation> @@ -6778,7 +6778,7 @@ <translation id="8931475688782629595">ניהול הסנכרון</translation> <translation id="8932654652795262306">הפרטים של שיתוף האינטרנט המיידי בין מכשירים</translation> <translation id="8932894639908691771">אפשרויות גישה באמצעות מתג</translation> -<translation id="8933960630081805351">ה&צג ב-Finder</translation> +<translation id="8933960630081805351">ה&צגה ב-Finder</translation> <translation id="8934732568177537184">המשך</translation> <translation id="8938800817013097409">מכשיר עם יציאת USB-C (יציאה ימנית מאחור)</translation> <translation id="8940081510938872932">המחשב מבצע יותר מדי פעולות כרגע. נסה שוב מאוחר יותר.</translation> @@ -6796,7 +6796,7 @@ <translation id="8953476467359856141">בזמן טעינה</translation> <translation id="895347679606913382">מתחיל...</translation> <translation id="895944840846194039">זיכרון JavaScript</translation> -<translation id="8962083179518285172">הסתר פרטים</translation> +<translation id="8962083179518285172">הסתרת פרטים</translation> <translation id="8962918469425892674">האתר הזה משתמש בחיישני תנועה או תאורה.</translation> <translation id="8965037249707889821">הזן את הסיסמה הישנה</translation> <translation id="8966870118594285808">ניתן לפתוח כרטיסייה מחדש אם סגרת אותה בטעות</translation> @@ -6891,7 +6891,7 @@ <translation id="9057354806206861646">לוח זמנים של עדכונים</translation> <translation id="9062468308252555888">14x</translation> <translation id="9063208415146866933">שגיאה משורה <ph name="ERROR_LINE_START" /> עד <ph name="ERROR_LINE_END" /></translation> -<translation id="9064275926664971810">אפשר ל'מילוי אוטומטי' למלא טפסים בלחיצה אחת</translation> +<translation id="9064275926664971810">הפעלת האפשרות של 'מילוי אוטומטי' למלא טפסים בלחיצה אחת</translation> <translation id="9065203028668620118">עריכה</translation> <translation id="9066773882585798925">הקראת טקסט בקול רם</translation> <translation id="9066782832737749352">טקסט לדיבור</translation> @@ -6967,7 +6967,7 @@ <translation id="9157096865782046368">0.8 שניות</translation> <translation id="9157697743260533322">הגדרת עדכונים אוטומטיים לכל המשתמשים נכשלה (שגיאת קדם-הפעלה: <ph name="ERROR_NUMBER" />)</translation> <translation id="9157915340203975005">הדלת של המדפסת פתוחה</translation> -<translation id="9158715103698450907">אופס! אירעה בעיה של תקשורת רשת במהלך האימות. בדוק את חיבור הרשת ונסה שוב.</translation> +<translation id="9158715103698450907">אופס! אירעה בעיה של תקשורת רשת במהלך האימות. יש לבדוק את חיבור הרשת ולנסות שוב.</translation> <translation id="9159643062839240276">כדאי לנסות: <ph name="BEGIN_LIST" /> <ph name="LIST_ITEM" />לבדוק את הכבלים, המודם והנתב שדרכם מתבצע החיבור לרשת @@ -7017,7 +7017,7 @@ <translation id="9219103736887031265">תמונות</translation> <translation id="9220525904950070496">הסרת חשבון</translation> <translation id="9220820413868316583">צריך להרים את האצבע ולנסות שוב.</translation> -<translation id="923467487918828349">הצג הכול</translation> +<translation id="923467487918828349">הצגת הכול</translation> <translation id="929117907539171075">המערכת תמחק גם נתונים שנשמרו במצב אופליין באפליקציה מותקנת</translation> <translation id="930268624053534560">חותמות זמן מפורטות</translation> <translation id="932327136139879170">בית</translation> @@ -7036,13 +7036,13 @@ <translation id="938470336146445890">יש להתקין אישור משתמש.</translation> <translation id="939252827960237676">שמירת צילום המסך נכשלה</translation> <translation id="939519157834106403">SSID</translation> -<translation id="939598580284253335">הזן משפט-סיסמה</translation> +<translation id="939598580284253335">הזנת ביטוי סיסמה</translation> <translation id="939736085109172342">תיקייה חדשה</translation> <translation id="941070664607309480">יש ללחוץ כדי שיוכל לאתר אותך ולשתף איתך</translation> <translation id="942532530371314860"><ph name="APP_NAME" /> משתף כרטיסייה ואודיו של Chrome.</translation> <translation id="945522503751344254"> שליחת משוב</translation> <translation id="947329552760389097">&בדיקת רכיבים</translation> -<translation id="951991426597076286">דחה</translation> +<translation id="951991426597076286">דחייה</translation> <translation id="952992212772159698">לא פעיל</translation> <translation id="956500788634395331">המערכת מגינה עליך מפני תוספים שעשויים להיות מזיקים</translation> <translation id="957960681186851048">האתר הזה ניסה להוריד קבצים מרובים באופן אוטומטי</translation> @@ -7083,7 +7083,7 @@ <translation id="992592832486024913">השבת את ChromeVox (משוב קולי)</translation> <translation id="992778845837390402">מתבצע כעת גיבוי של Linux</translation> <translation id="993540765962421562">ההתקנה עוד לא הסתיימה</translation> -<translation id="994289308992179865">הפעל ב&רצף</translation> +<translation id="994289308992179865">הפעלה ב&רצף</translation> <translation id="995782501881226248">YouTube</translation> <translation id="996250603853062861">יוצר חיבור מאובטח...</translation> <translation id="99731366405731005">יש להפעיל <ph name="LINK1_BEGIN" />סנכרון Chrome<ph name="LINK1_END" /> כדי להשתמש בסנכרון Wi-Fi. <ph name="LINK2_BEGIN" />מידע נוסף<ph name="LINK2_END" /></translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb index 2a20ef2..7398943c 100644 --- a/chrome/app/resources/generated_resources_kk.xtb +++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">Docs, Sheets, Slides және Drawings файлдарыңыз синхрондалуда. Оларды желіде немесе желіден тыс пайдалану үшін Google Drive қолданбасын ашыңыз.</translation> <translation id="1012876632442809908">USB-C құрылғысы (алдыңғы ұяшық)</translation> <translation id="1013707859758800957">Бұл бетте сына ортасынан тыс плагинді іске қосуға рұқсат етілді.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Қалта атауын өзгерту</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{<ph name="DEVICE_TYPE" /> құрылғысын жаңартудың соңғы күні}other{<ph name="DEVICE_TYPE" /> құрылғысын {NUM_DAYS} күн ішінде жаңарту}}</translation> <translation id="1016566241875885511">Қосымша ақпарат (міндетті емес)</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb index 95bca39..47eb37d 100644 --- a/chrome/app/resources/generated_resources_km.xtb +++ b/chrome/app/resources/generated_resources_km.xtb
@@ -958,7 +958,7 @@ <translation id="2090165459409185032">ដើម្បីសង្គ្រោះទិន្នន័យគណនីរបស់អ្នក សូមចូលទៅកាន់៖ google.com/accounts/recovery</translation> <translation id="2090876986345970080">ការកំណត់សុវត្ថិភាពប្រព័ន្ធ</translation> <translation id="2091887806945687916">សំឡេង</translation> -<translation id="209539936453343974">ដើម្បីរៀបចំការគ្រប់គ្រងដោយមាតាបិតា កុមារត្រូវតែមានគណនី Google ដែលស្ថិតក្រោមការគ្រប់គ្រងរបស់មាតាបិតា។ <ph name="DEVICE_TYPE_PLURAL" /> អនុញ្ញាតឱ្យមាតាបិតារៀបចំរយៈពេលកំណត់នៃការប្រើប្រាស់ឧបករណ៍ អនុញ្ញាត ឬទប់ស្កាត់គេហទំព័រ និងធ្វើសកម្មភាពជាច្រើនទៀតដោយប្រើកម្មវិធី Family Link។ ប្រសិនបើកុមារនោះត្រូវការធ្វើកិច្ចការសាលានៅលើគេហទំព័រនានាដូចជា Google ថ្នាក់រៀន មាតាបិតាអាចបញ្ចូលគណនីសាលារៀននៅពេលក្រោយ។</translation> +<translation id="209539936453343974">ដើម្បីរៀបចំការគ្រប់គ្រងដោយមាតាបិតា កុមារត្រូវតែមានគណនី Google ដែលស្ថិតក្រោមការគ្រប់គ្រងរបស់មាតាបិតា។ <ph name="DEVICE_TYPE_PLURAL" /> អនុញ្ញាតឱ្យមាតាបិតារៀបចំរយៈពេលកំណត់នៃការប្រើប្រាស់ឧបករណ៍ អនុញ្ញាតឬទប់ស្កាត់គេហទំព័រ និងធ្វើសកម្មភាពជាច្រើនទៀតដោយប្រើកម្មវិធី Family Link។ ប្រសិនបើកុមារនោះត្រូវការធ្វើកិច្ចការសាលានៅលើគេហទំព័រនានាដូចជា Google ថ្នាក់រៀន មាតាបិតាអាចបញ្ចូលគណនីសាលារៀននៅពេលក្រោយ។</translation> <translation id="2096715839409389970">សម្អាតខូគីភាគីទីបី</translation> <translation id="2097372108957554726">អ្នកត្រូវចូលទៅ Chrome ដើម្បីចុះឈ្មោះឧបករណ៍ថ្មី</translation> <translation id="2098805196501063469">ពិនិត្យមើលពាក្យសម្ងាត់ដែលនៅសល់</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb index be55d23..9b80f15 100644 --- a/chrome/app/resources/generated_resources_kn.xtb +++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -5099,7 +5099,7 @@ <translation id="7005848115657603926">ಅಮಾನ್ಯ ಪುಟ ಶ್ರೇಣಿ, <ph name="EXAMPLE_PAGE_RANGE" /> ಬಳಸಿ</translation> <translation id="7006634003215061422">ಕೆಳಗಿನ ಅಂಚು</translation> <translation id="7007648447224463482">ಎಲ್ಲವನ್ನೂ ಹೊಸ ವಿಂಡೋದಲ್ಲಿ ತೆರೆಯಿರಿ</translation> -<translation id="7009709314043432820"><ph name="APP_NAME" /> ನಿಮ್ಮ ಕ್ಯಾಮರಾ ಅನ್ನು ಬಳಸುತ್ತಿದೆ</translation> +<translation id="7009709314043432820"><ph name="APP_NAME" /> ನಿಮ್ಮ ಕ್ಯಾಮರಾವನ್ನು ಬಳಸುತ್ತಿದೆ</translation> <translation id="701080569351381435">ಮೂಲ ವೀಕ್ಷಿಸಿ</translation> <translation id="7014174261166285193">ಸ್ಥಾಪನೆ ವಿಫಲವಾಗಿದೆ.</translation> <translation id="7017004637493394352">"Ok Google" ಎಂದು ಮತ್ತೊಮ್ಮೆ ಹೇಳಿ</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb index 1343348..6b23151e 100644 --- a/chrome/app/resources/generated_resources_ky.xtb +++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">Документтериңиз, иш кагаздарыңыз, слайддарыңыз жана чиймелериңиз шайкештештирилүүдө. Аларды онлайн же офлайн режиминде колдонуу үчүн Google Drive колдонмолорун ачыңыз.</translation> <translation id="1012876632442809908">USB-C түзмөгү (маңдайкы оюкча)</translation> <translation id="1013707859758800957">Бул баракта сынамык чөйрөсүнөн тышкары плагиндердин иштешине уруксат берилген.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Папканын аталышын өзгөртүү</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{<ph name="DEVICE_TYPE" /> түзмөгүн бүгүн жаңыртыңыз}other{<ph name="DEVICE_TYPE" /> түзмөгүн {NUM_DAYS} күндүн ичинде жаңыртыңыз}}</translation> <translation id="1016566241875885511">Кошумча маалымат (милдеттүү эмес)</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb index 04dc16e..7ae39de 100644 --- a/chrome/app/resources/generated_resources_lt.xtb +++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">Dokumentų, Skaičiuoklių, Skaidrių ir Piešinių failai sinchronizuojami. Atidarykite „Google“ disko programą, kad juos pasiektumėte prisijungę arba neprisijungę.</translation> <translation id="1012876632442809908">USB-C įrenginys (prievadas priekyje)</translation> <translation id="1013707859758800957">Šiame puslapyje leidžiama paleisti ne „smėlio dėžės“ papildinį.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Aplanko pavadinimo redagavimas</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{Paskutinė diena atnaujinti „<ph name="DEVICE_TYPE" />“ įrenginį}one{Atnaujinkite „<ph name="DEVICE_TYPE" />“ įrenginį per {NUM_DAYS} dieną}few{Atnaujinkite „<ph name="DEVICE_TYPE" />“ įrenginį per {NUM_DAYS} dienas}many{Atnaujinkite „<ph name="DEVICE_TYPE" />“ įrenginį per {NUM_DAYS} dienos}other{Atnaujinkite „<ph name="DEVICE_TYPE" />“ įrenginį per {NUM_DAYS} dienų}}</translation> <translation id="1016566241875885511">Papildoma informacija (nebūtina)</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb index 9fc18de..444d91c 100644 --- a/chrome/app/resources/generated_resources_lv.xtb +++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">Jūsu Dokumentu, Izklājlapu, Prezentāciju un Zīmējumu faili tiek sinhronizēti. Atveriet lietotni “Google disks”, lai piekļūtu šiem failiem tiešsaistē vai bezsaistē.</translation> <translation id="1012876632442809908">USB-C ierīce (priekšējā pieslēgvieta)</translation> <translation id="1013707859758800957">Šajā lapā tika atļauta tāda spraudņa darbība, kas nav ievietots smilškastē.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Mapes nosaukuma rediģēšana</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{Pēdējā diena, kad var atjaunināt <ph name="DEVICE_TYPE" /> ierīci}zero{<ph name="DEVICE_TYPE" /> ierīce ir jāatjaunina {NUM_DAYS} dienu laikā}one{<ph name="DEVICE_TYPE" /> ierīce ir jāatjaunina {NUM_DAYS} dienas laikā}other{<ph name="DEVICE_TYPE" /> ierīce ir jāatjaunina {NUM_DAYS} dienu laikā}}</translation> <translation id="1016566241875885511">Papildu informācija (neobligāti)</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb index daf236d..cb80652b 100644 --- a/chrome/app/resources/generated_resources_mk.xtb +++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">Вашите документи, листови, слајдови и цртежи се синхронизираат. Отворете ја апликацијата Google Диск за да им пристапите на интернет или локално.</translation> <translation id="1012876632442809908">USB-Ц уред (предна порта)</translation> <translation id="1013707859758800957">Дозволено е да се активира неизолиран приклучок на оваа страница.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Измена на името на папката</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{Последен ден за ажурирање на <ph name="DEVICE_TYPE" />}one{Ажурирајте го <ph name="DEVICE_TYPE" /> во рок од {NUM_DAYS} ден}other{Ажурирајте го <ph name="DEVICE_TYPE" /> во рок од {NUM_DAYS} дена}}</translation> <translation id="1016566241875885511">Дополнителни информации (изборно)</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb index f6e01b3..8759894 100644 --- a/chrome/app/resources/generated_resources_ml.xtb +++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -3781,7 +3781,7 @@ <translation id="5449588825071916739">എല്ലാ ടാബുകളും ബുക്ക്മാര്ക്ക് ചെയ്യുക</translation> <translation id="5449716055534515760">വി&ന്ഡോ അടയ്ക്കുക</translation> <translation id="5452974209916053028">നിലവിലെ അദൃശ്യ മോഡ് സെഷൻ: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" />, <ph name="RECENT_PERMISSIONS_CHANGE_1" />, <ph name="RECENT_PERMISSIONS_CHANGE_2" /> എന്നിവ</translation> -<translation id="5454005855577728171"><ph name="POSITION_ON_SCREEN_FROM_LEFT" />% എതിർവശത്ത്, <ph name="POSITION_ON_SCREEN_FROM_TOP" />% താഴെയായി ക്യാപ്ഷൻ ബബ്ൾ നീങ്ങി</translation> +<translation id="5454005855577728171"><ph name="POSITION_ON_SCREEN_FROM_LEFT" />% എതിർവശത്ത്, <ph name="POSITION_ON_SCREEN_FROM_TOP" />% താഴെയായി ക്യാപ്ഷൻ ബബിൾ നീങ്ങി</translation> <translation id="5454166040603940656"><ph name="PROVIDER" /> എന്നതിനൊപ്പം</translation> <translation id="5457113250005438886">അസാധുവാണ്</translation> <translation id="5457459357461771897">നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ നിന്ന് ഫോട്ടോകളും സംഗീതവും മറ്റ് മീഡിയയും വായിക്കുക, ഇല്ലാതാക്കുക</translation> @@ -5073,7 +5073,7 @@ <translation id="6972629891077993081">HID ഉപകരണങ്ങൾ</translation> <translation id="6972754398087986839">ആരംഭിക്കാം</translation> <translation id="6972887130317925583">അപഹരിക്കപ്പെട്ട പാസ്വേഡ് മാറ്റി. ഏത് സമയത്തും <ph name="SETTINGS" /> എന്നതിൽ നിങ്ങളുടെ പാസ്വേഡുകൾ പരിശോധിക്കുക.</translation> -<translation id="697312151395002334">പോപ്പ് അപ്പ് അയയ്ക്കുന്നതോ റീഡയറക്റ്റുകൾ ഉപയോഗിക്കുന്നതോ അനുവദിച്ചിരിക്കുന്നു</translation> +<translation id="697312151395002334">പോപ്പ് അപ്പ് അയയ്ക്കുന്നതും റീഡയറക്റ്റുകൾ ഉപയോഗിക്കുന്നതും അനുവദിച്ചിരിക്കുന്നു</translation> <translation id="6973611239564315524">Debian 10 (Buster) -ലേക്കുള്ള അപ്ഗ്രേഡ് ലഭ്യമാണ്</translation> <translation id="6974609594866392343">ഓഫ്ലൈൻ ഡെമോ മോഡ്</translation> <translation id="6977381486153291903">ഫേംവെയർ പുനഃപരിശോധന</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb index 51854caa..a157e63 100644 --- a/chrome/app/resources/generated_resources_no.xtb +++ b/chrome/app/resources/generated_resources_no.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">Dokumenter-, Regneark-, Presentasjoner- og Tegninger-filene dine synkroniseres. Åpne Google Disk-appen for å få tilgang til dem med eller uten nett.</translation> <translation id="1012876632442809908">USB-C-enhet (porten foran)</translation> <translation id="1013707859758800957">Et programtillegg uten prosessisolering fikk tillatelse til å kjøre på denne siden.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Endre mappenavnet</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{Siste dag for oppdatering av <ph name="DEVICE_TYPE" />}other{Oppdater <ph name="DEVICE_TYPE" /> innen {NUM_DAYS} dager}}</translation> <translation id="1016566241875885511">Tilleggsinformasjon (valgfritt)</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb index 85aeb72..7044d4a 100644 --- a/chrome/app/resources/generated_resources_or.xtb +++ b/chrome/app/resources/generated_resources_or.xtb
@@ -6332,7 +6332,7 @@ <translation id="8449036207308062757">ଷ୍ଟୋରେଜ୍ ପରିଚାଳନା କରନ୍ତୁ</translation> <translation id="8452135315243592079">ଅନୁପଲବ୍ଧ ଥିବା SIM କାର୍ଡ</translation> <translation id="8455026683977728932">ADB ଇଲୁଷ୍ଟ୍ରେସନ୍ ସକ୍ଷମ କରିବାରେ ବିଫଳ ହୋଇଛି</translation> -<translation id="8456398879271637452">ଲାଇଭ୍ କ୍ୟାପ୍ସନ୍ ଦୃଶ୍ୟମାନ ହେଉଛି, ଫୋକସ୍ ସାଇକଲ୍ କରିବାକୁ Ctrl + Back କିମ୍ବା Ctrl + Forward ଦବାନ୍ତୁ</translation> +<translation id="8456398879271637452">ଲାଇଭ୍ କ୍ୟାପ୍ସନ୍ ଦୃଶ୍ୟମାନ ହେଉଛି, ଫୋକସ୍ ସାଇକଲ୍ କରିବାକୁ Ctrl + Back କିମ୍ବା Ctrl + Forward କୀ ଦବାନ୍ତୁ</translation> <translation id="845702320058262034">ସଂଯୋଗ କରିପାରିବ ନାହିଁ। ଏହା ସୁନିଶ୍ଚିତ କରନ୍ତୁ ଯେ ଆପଣଙ୍କ ଫୋନ୍ର ବ୍ଲୁଟୁଥ୍ ଚାଲୁ ଅଛି।</translation> <translation id="8457451314607652708">ବୁକ୍ମାର୍କଗୁଡିକୁ ଇମ୍ପୋର୍ଟ କରନ୍ତୁ</translation> <translation id="8458627787104127436">ସମସ୍ତ (<ph name="URL_COUNT" />)ଟି URL ନୂଆ ୱିଣ୍ଡୋରେ ଖୋଲନ୍ତୁ</translation> @@ -6852,7 +6852,7 @@ <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{ଆପଣଙ୍କର ଗୋଟିଏ ପ୍ରଚେଷ୍ଟା ବାକି ଅଛି।}other{ଆପଣଙ୍କର #ଟି ପ୍ରଚେଷ୍ଟା ବାକି ଅଛି।}}</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9040661932550800571"><ph name="ORIGIN" /> ପାଇଁ ପାସ୍ୱାର୍ଡକୁ ଅପ୍ଡେଟ୍ କରିବେ କି?</translation> -<translation id="9041049756004505730">ଲାଇଭ୍ କ୍ୟାପ୍ସନ୍ ଦୃଶ୍ୟମାନ ହେଉଛି, ଫୋକସ୍ ସାଇକଲ୍ କରିବାକୁ ⌘ + Option + ଅପ୍ କିମ୍ବା ଡାଉନ୍ ତୀର ଦବାନ୍ତୁ</translation> +<translation id="9041049756004505730">ଲାଇଭ୍ କ୍ୟାପ୍ସନ୍ ଦୃଶ୍ୟମାନ ହେଉଛି, ଫୋକସ୍ ସାଇକଲ୍ କରିବାକୁ ⌘ + Option + ଅପ୍ କିମ୍ବା ଡାଉନ୍ ତୀର କୀ ଦବାନ୍ତୁ</translation> <translation id="9041692268811217999">ଆପଣଙ୍କର ବ୍ୟବସ୍ଥାପକଙ୍କ ଦ୍ୱାରା ଆପଣଙ୍କ ମେସିନ୍ରେ ଥିବା ସ୍ଥାନୀୟ ଫାଇଲ୍ଗୁଡ଼ିକୁ ଆକ୍ସେସ୍ ଅକ୍ଷମ କରାଯାଇଛି</translation> <translation id="904224458472510106">ଏହି କାର୍ଯ୍ୟକୁ ପୂର୍ବବତ୍ କରାଯାଇପାରିବ ନାହିଁ</translation> <translation id="9042893549633094279">ଗୋପନୀୟତା ଏବଂ ସୁରକ୍ଷା</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb index b13ff8e..3de9808 100644 --- a/chrome/app/resources/generated_resources_pa.xtb +++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -927,6 +927,7 @@ <translation id="204914487372604757">ਸ਼ਾਰਟਕੱਟ ਬਣਾਓ</translation> <translation id="2050339315714019657">ਪੋਰਟਰੇਟ</translation> <translation id="2053312383184521053">ਨਿਸ਼ਕਿਰਿਆ ਸਥਿਤੀ ਡਾਟਾ</translation> +<translation id="2054665754582400095">ਤੁਹਾਡੀ ਮੌਜੂਦਗੀ</translation> <translation id="2055585478631012616">ਖੁੱਲ੍ਹੀਆਂ ਟੈਬਾਂ ਸਮੇਤ, ਤੁਹਾਨੂੰ ਇਹਨਾਂ ਸਾਈਟਾਂ ਤੋਂ ਸਾਈਨ-ਆਊਟ ਕਰ ਦਿੱਤਾ ਜਾਵੇਗਾ</translation> <translation id="205560151218727633">Google ਸਹਾਇਕ ਲੋਗੋ</translation> <translation id="2058456167109518507">ਡੀਵਾਈਸ ਦਾ ਪਤਾ ਲੱਗਿਆ</translation> @@ -1211,6 +1212,7 @@ <translation id="2387052489799050037">ਹੋਮ 'ਤੇ ਜਾਓ</translation> <translation id="2387458720915042159">ਪ੍ਰੌਕਸੀ ਕਨੈਕਸ਼ਨ ਕਿਸਮ</translation> <translation id="2390347491606624519">ਪ੍ਰੌਕਸੀ ਨਾਲ ਕਨੈਕਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ, ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਸਾਈਨ-ਇਨ ਕਰੋ</translation> +<translation id="2390782873446084770">ਵਾਈ-ਫਾਈ ਸਿੰਕ</translation> <translation id="2391082728065870591">ਵਿਚਾਰ ਸੰਬੰਧੀ ਰਿਪੋਰਟ ਭੇਜੋ</translation> <translation id="2391419135980381625">ਸਟੈਂਡਰਡ ਫੌਂਟ</translation> <translation id="2392163307141705938">ਤੁਸੀਂ <ph name="IDS_SHORT_PRODUCT_NAME" /> ਲਈ ਤੁਹਾਡੇ ਮਾਪਿਆਂ ਵੱਲੋਂ ਸੈੱਟ ਕੀਤੀ ਗਈ ਸਮਾਂ ਸੀਮਾ ਪੂਰੀ ਕਰ ਲਈ ਹੈ।</translation> @@ -1865,6 +1867,7 @@ <translation id="3157931365184549694">ਰੀਸਟੋਰ ਕਰੋ</translation> <translation id="3158033540161634471">ਆਪਣਾ ਫਿੰਗਰਪ੍ਰਿੰਟ ਸੈੱਟਅੱਪ ਕਰੋ</translation> <translation id="3159493096109238499">ਬੇਜ</translation> +<translation id="3159978855457658359">ਡੀਵਾਈਸ ਦੇ ਨਾਮ ਦਾ ਸੰਪਾਦਨ ਕਰੋ</translation> <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (ਹਾਰਡਵੇਅਰ-ਬੈਕਅੱਪ)</translation> <translation id="3161522574479303604">ਸਾਰੀਆਂ ਭਾਸ਼ਾਵਾਂ</translation> <translation id="3162853326462195145">ਸਕੂਲੀ ਖਾਤਾ</translation> @@ -3223,6 +3226,7 @@ <translation id="4761104368405085019">ਆਪਣਾ ਮਾਈਕ੍ਰੋਫੋਨ ਵਰਤੋ</translation> <translation id="4762718786438001384">ਡੀਵਾਈਸ 'ਤੇ ਡਿਸਕ ਜਗ੍ਹਾ ਬਹੁਤ ਘੱਟ ਹੈ</translation> <translation id="4763408175235639573">ਜਦੋਂ ਤੁਸੀਂ ਇਸ ਪੰਨੇ ਨੂੰ ਦੇਖਿਆ ਸੀ ਤਾਂ ਅੱਗੇ ਦਿੱਤੀਆਂ ਕੁਕੀਜ਼ ਸੈੱਟ ਕੀਤੀਆਂ ਹੋਈਆਂ ਸਨ</translation> +<translation id="4764368918650455114">ਪੱਕਾ ਕਰੋ ਕਿ ਦੋਵੇਂ ਡੀਵਾਈਸ ਅਣਲਾਕ ਹੋਣ, ਇੱਕ-ਦੂਜੇ ਦੇ ਨੇੜੇ ਹੋਣ ਅਤੇ ਬਲੂਟੁੱਥ ਚਾਲੂ ਹੋਵੇ। ਜੇ ਤੁਸੀਂ Chromebook ਨਾਲ ਸਾਂਝਾ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ ਪੱਕਾ ਕਰੋ ਕਿ ਇਸ ਵਿੱਚ 'ਨਜ਼ਦੀਕੀ ਸਾਂਝ' ਚਾਲੂ ਹੈ (ਸਮੇਂ ਨੂੰ ਚੁਣ ਕੇ ਸਥਿਤੀ ਖੇਤਰ ਖੋਲ੍ਹੋ, ਫਿਰ 'ਨਜ਼ਦੀਕੀ ਸਾਂਝ' ਚੁਣੋ)। <ph name="LINK_BEGIN" />ਹੋਰ ਜਾਣੋ<ph name="LINK_END" /></translation> <translation id="4765582662863429759">'Android ਸੁਨੇਹੇ' ਨੂੰ ਤੁਹਾਡੇ ਫ਼ੋਨ ਦੇ ਲਿਖਤੀ ਸੁਨੇਹਿਆਂ ਨੂੰ ਤੁਹਾਡੀ Chromebook 'ਤੇ ਦਿਖਾਉਣ ਦਿਓ</translation> <translation id="476598255842811483">ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਆਪਣੇ ਡੀਵਾਈਸ 'ਤੇ 'ਨਜ਼ਦੀਕੀ ਸਾਂਝ' ਨਹੀਂ ਖੋਲ੍ਹਦੇ, ਉਦੋਂ ਤੱਕ ਕੋਈ ਵੀ ਡਾਟਾ ਸਾਂਝਾ ਨਹੀਂ ਕਰ ਸਕਦਾ</translation> <translation id="4768332406694066911">ਤੁਹਾਡੇ ਕੋਲ ਇਹਨਾਂ ਸੰਸਥਾਵਾਂ ਦੇ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਹਨ ਜੋ ਤੁਹਾਡੀ ਪਛਾਣ ਕਰਦੇ ਹਨ</translation> @@ -3385,6 +3389,7 @@ <translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> - <ph name="PROFILE_NAME" /></translation> <translation id="496185450405387901">ਇਹ ਐਪ ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਨੇ ਸਥਾਪਤ ਕੀਤੀ ਹੈ।</translation> <translation id="4964455510556214366">ਤਰਤੀਬ</translation> +<translation id="496446150016900060">ਆਪਣੇ ਫ਼ੋਨ ਨਾਲ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕਾਂ ਦਾ ਸਮਕਾਲੀਕਰਨ ਕਰੋ</translation> <translation id="4965808351167763748">ਕੀ ਤੁਸੀਂ ਪੱਕਾ ਇਸ ਡੀਵਾਈਸ ਨੂੰ Hangouts Meet ਚਲਾਉਣ ਲਈ ਸਥਾਪਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?</translation> <translation id="496888482094675990">Files ਐਪ ਉਹਨਾਂ ਫਾਈਲਾਂ ਤੱਕ ਤਤਕਾਲ ਪਹੁੰਚ ਮੁਹੱਈਆ ਕਰਦੀ ਹੈ ਜੋ ਤੁਸੀਂ Google ਡਰਾਈਵ, ਬਾਹਰੀ ਸਟੋਰੇਜ ਜਾਂ ਤੁਹਾਡੀ Chrome OS ਡੀਵਾਈਸ 'ਤੇ ਸੁਰੱਖਿਅਤ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ।</translation> <translation id="4971412780836297815">ਪੂਰਾ ਹੋਣ ਤੇ ਖੋਲ੍ਹੋ</translation> @@ -3691,6 +3696,7 @@ <translation id="5341980496415249280">ਕਿਰਪਾ ਕਰਕੇ ਉਡੀਕ ਕਰੋ, ਪੈਕਿੰਗ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ...</translation> <translation id="5342091991439452114">PIN ਘੱਟੋ-ਘੱਟ <ph name="MINIMUM" /> ਅੰਕਾਂ ਦਾ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ</translation> <translation id="5344036115151554031">Linux ਨੂੰ ਮੁੜ-ਬਹਾਲ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ</translation> +<translation id="5345916423802287046">ਸਾਈਨ-ਇਨ ਕਰਨ ਵੇਲੇ ਐਪ ਨੂੰ ਸ਼ੁਰੂ ਕਰੋ</translation> <translation id="5350293332385664455">Google Assistant ਨੂੰ ਬੰਦ ਕਰੋ</translation> <translation id="535123479159372765">ਕਿਸੇ ਹੋਰ ਡੀਵਾਈਸ ਤੋਂ ਲਿਖਤ ਕਾਪੀ ਕੀਤੀ ਗਈ</translation> <translation id="5352033265844765294">ਸਮਾਂ ਸਟੈਂਪਿੰਗ</translation> @@ -3998,6 +4004,7 @@ <translation id="5704875434923668958">ਇਸ ਨਾਲ ਸਮਕਾਲੀਕਰਨ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ</translation> <translation id="5705005699929844214">ਹਮੇਸ਼ਾਂ ਪਹੁੰਚਯੋਗਤਾ ਵਿਕਲਪ ਦਿਖਾਓ</translation> <translation id="5705882733397021510">ਪਿੱਛੇ ਜਾਓ</translation> +<translation id="5707117624115653804">ਉਹਨਾਂ ਐਪਾਂ ਜਾਂ ਸਾਈਟਾਂ ਲਈ ਸੁਰਖੀ ਦੇ ਆਕਾਰ ਅਤੇ ਸਟਾਈਲ ਨੂੰ ਵਿਉਂਤਬੱਧ ਕਰੋ ਜੋ ਇਸ ਸੈਟਿੰਗ ਦਾ ਸਮਰਥਨ ਕਰਦੀਆਂ ਹਨ</translation> <translation id="5707185214361380026">ਇਸ ਤੋਂ ਐਕਸਟੈਂਸ਼ਨ ਲੋਡ ਕਰਨ ਵਿੱਚ ਅਸਫਲ:</translation> <translation id="5708171344853220004">Microsoft ਪ੍ਰਿੰਸੀਪਲ ਨਾਮ</translation> <translation id="5709557627224531708">Chrome ਨੂੰ ਆਪਣੇ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਬ੍ਰਾਊਜ਼ਰ ਵਜੋਂ ਸੈੱਟ ਕਰੋ</translation> @@ -4160,6 +4167,7 @@ <translation id="5904614460720589786">ਕਿਸੇ ਸੰਰੂਪਣ ਸੰਬੰਧੀ ਸਮੱਸਿਆ ਕਰਕੇ <ph name="APP_NAME" /> ਦਾ ਸੈੱਟਅੱਪ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ। ਕਿਰਪਾ ਕਰਕੇ ਆਪਣੇ ਪ੍ਰਸ਼ਾਸਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ। ਗੜਬੜ ਕੋਡ: <ph name="ERROR_CODE" />।</translation> <translation id="5906655207909574370">ਲਗਭਗ ਅੱਪ ਟੂ ਡੇਟ! ਅੱਪਡੇਟ ਕਰਨਾ ਪੂਰਾ ਕਰਨ ਲਈ ਆਪਣੀ ਡੀਵਾਈਸ ਨੂੰ ਮੁੜ-ਚਾਲੂ ਕਰੋ।</translation> <translation id="5906732635754427568">ਇਸ ਐਪ ਨਾਲ ਸਬੰਧਿਤ ਡਾਟੇ ਨੂੰ ਇਸ ਡੀਵਾਈਸ ਤੋਂ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ।</translation> +<translation id="5908474332780919512">ਸਾਈਨ-ਇਨ ਕਰਨ ਵੇਲੇ ਐਪ ਨੂੰ ਸ਼ੁਰੂ ਕਰੋ</translation> <translation id="5908695239556627796">ਮਾਊਸ ਸਕ੍ਰੋਲ ਗਤੀ</translation> <translation id="5908769186679515905">ਸਾਈਟਾਂ ਨੂੰ Flash ਚਲਾਉਣ ਤੋਂ ਰੋਕੋ</translation> <translation id="5910363049092958439">ਦੇ ਤੌਰ ਤੇ ਚਿੱਤਰ ਰੱ&ਖਿਅਤ ਕਰੋ...</translation> @@ -4699,6 +4707,7 @@ <translation id="6532527800157340614">ਸਾਈਨ-ਇਨ ਅਸਫਲ ਰਿਹਾ ਕਿਉਂਕਿ ਤੁਹਾਡਾ ਪਹੁੰਚ ਟੋਕਨ ਪ੍ਰਾਪਤ ਨਹੀਂ ਹੋ ਸਕਿਆ। ਕਿਰਪਾ ਕਰਕੇ ਆਪਣੇ ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨ ਦੀ ਜਾਂਚ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation> <translation id="6532663472409656417">ਐਂਟਰਪ੍ਰਾਈਜ਼ ਵਜੋਂ ਦਰਜ</translation> <translation id="6535331821390304775"><ph name="ORIGIN" /> ਨੂੰ ਇਸ ਕਿਸਮ ਦੇ ਲਿੰਕਾਂ ਨੂੰ ਹਮੇਸ਼ਾਂ ਕਿਸੇ ਸੰਬੰਧਿਤ ਐਪ ਵਿੱਚ ਖੋਲ੍ਹਣ ਦਿਓ</translation> +<translation id="6537613839935722475">ਨਾਮ ਲਈ ਅੱਖਰ, ਨੰਬਰ ਅਤੇ ਹਾਈਫਨ (-) ਵਰਤੇ ਜਾ ਸਕਦੇ ਹਨ</translation> <translation id="6538635548667167211">ਮੌਜੂਦਾ ਡਾਟਾ ਵਰਤੋਂ ਸੈਟਿੰਗ 'ਡਾਟਾ' ਹੈ</translation> <translation id="654039047105555694"><ph name="BEGIN_BOLD" />ਨੋਟ:<ph name="END_BOLD" /> ਸਿਰਫ਼ ਤਾਂ ਹੀ ਚਾਲੂ ਕਰੋ ਜੇਕਰ ਤੁਹਾਨੂੰ ਪਤਾ ਹੈ ਕਿ ਤੁਸੀਂ ਕੀ ਕਰ ਰਹੇੇ ਹੋ ਜਾਂ ਜੇਕਰ ਤੁਹਾਨੂੰ ਅਜਿਹਾ ਕਰਨ ਲਈ ਕਿਹਾ ਗਿਆ ਹੈ, ਕਿਉਂਕਿ ਡਾਟਾ ਦਾ ਇਕੱਤਰੀਕਰਨ ਕਾਰਗੁਜ਼ਾਰੀ ਘਟਾ ਸਕਦਾ ਹੈ।</translation> <translation id="6541638731489116978">ਇਸ ਸਾਈਟ ਨੂੰ ਤੁਹਾਡੇ ਗਤੀਸ਼ੀਲਤਾ ਸੈਂਸਰਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਤੋਂ ਬਲਾਕ ਕੀਤਾ ਗਿਆ ਹੈ।</translation> @@ -4787,6 +4796,7 @@ <translation id="6650234781371031356"><ph name="WEBSITE" /> ਲਈ ਤੁਹਾਡਾ ਪਾਸਵਰਡ ਇਸ ਡੀਵਾਈਸ ਅਤੇ ਤੁਹਾਡੇ Google ਖਾਤੇ ਵਿੱਚ ਸਟੋਰ ਕੀਤਾ ਗਿਆ ਹੈ। ਤੁਸੀਂ ਕਿਸ ਨੂੰ ਮਿਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?</translation> <translation id="665061930738760572">&ਨਵੀਂ Window ਵਿੱਚ ਖੋਲ੍ਹੋ</translation> <translation id="6651237644330755633">ਵੈੱਬਸਾਈਟਾਂ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ ਇਸ ਪ੍ਰਮਾਣ-ਪੱਤਰ 'ਤੇ ਭਰੋਸਾ ਕਰੋ</translation> +<translation id="6651495917527016072">ਆਪਣੇ ਫ਼ੋਨ ਨਾਲ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕਾਂ ਦਾ ਸਮਕਾਲੀਕਰਨ ਕਰੋ। <ph name="LINK_BEGIN" />ਹੋਰ ਜਾਣੋ<ph name="LINK_END" /></translation> <translation id="665355505818177700">Chrome <ph name="MS_AD_NAME" /> ਏਕੀਕਰਨ ਸਿਰਫ਼ x86_64 ਪਲੇਟਫਾਰਮਾਂ 'ਤੇ ਸਮਰਥਿਤ ਹੈ। ARM ਜਾਂ x86 ਪਲੇਟਫਾਰਮ 'ਤੇ ਨਿਰਮਿਤ Chromebooks ਇਸ ਪ੍ਰਕਾਰਜਾਤਮਕਤਾ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੀਆਂ ਹਨ।</translation> <translation id="6654509035557065241">ਨੈੱਟਵਰਕ ਨੂੰ ਤਰਜੀਹ</translation> <translation id="6655190889273724601">ਵਿਕਾਸਕਾਰ ਮੋਡ</translation> @@ -5389,6 +5399,7 @@ <translation id="7375235221357833624">{0,plural, =1{ਡੀਵਾਈਸ ਨੂੰ ਇੱਕ ਘੰਟੇ ਦੇ ਅੰਦਰ ਅੱਪਡੇਟ ਕਰੋ}one{ਡੀਵਾਈਸ ਨੂੰ # ਘੰਟੇ ਦੇ ਅੰਦਰ ਅੱਪਡੇਟ ਕਰੋ}other{ਡੀਵਾਈਸ ਨੂੰ # ਘੰਟਿਆਂ ਦੇ ਅੰਦਰ ਅੱਪਡੇਟ ਕਰੋ}}</translation> <translation id="7376553024552204454">ਮਾਊਸ ਕਰਸਰ ਨੂੰ ਉਸ ਵੱਲੋਂ ਜਗ੍ਹਾ ਬਦਲੇ ਜਾਣ ਦੋਰਾਨ ਉਜਾਗਰ ਕਰੋ</translation> <translation id="7377451353532943397">ਸੈਂਸਰ ਤੱਕ ਪਹੁੰਚ ਨੂੰ ਬਲਾਕ ਕਰਦੇ ਰਹੋ</translation> +<translation id="7378611153938412599">ਕਮਜ਼ੋਰ ਪਾਸਵਰਡਾਂ ਦਾ ਅੰਦਾਜ਼ਾ ਲਗਾਉਣਾ ਆਸਾਨ ਹੁੰਦਾ ਹੈ। ਇਹ ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਸੀਂ ਮਜ਼ਬੂਤ ਪਾਸਵਰਡ ਬਣਾ ਰਹੇ ਹੋ। <ph name="BEGIN_LINK" />ਹੋਰ ਸੁਰੱਖਿਆ ਨੁਕਤੇ ਦੇਖੋ।<ph name="END_LINK" /></translation> <translation id="73786666777299047">'Chrome ਵੈੱਬ ਸਟੋਰ' ਖੋਲ੍ਹੋ</translation> <translation id="7378812711085314936">ਡਾਟਾ ਕਨੈਕਸ਼ਨ ਪ੍ਰਾਪਤ ਕਰੋ</translation> <translation id="7380622428988553498">ਡੀਵਾਈਸ ਨਾਮ ਵਿੱਚ ਅਵੈਧ ਅੱਖਰ-ਚਿੰਨ੍ਹ ਹਨ</translation> @@ -5911,6 +5922,7 @@ <translation id="7959074893852789871">ਫਾਈਲ ਵਿੱਚ ਮਲਟੀਪਲ ਸਰਟੀਫਿਕੇਟਸ ਸਨ, ਜਿਹਨਾਂ ਵਿੱਚੋਂ ਕੁਝ ਆਯਾਤ ਨਹੀਂ ਕੀਤੇ ਗਏ ਸਨ:</translation> <translation id="7961015016161918242">ਕਦੇ ਨਹੀਂ</translation> <translation id="7963001036288347286">ਟੱਚਪੈਡ ਐਕਸੈੱਲਰੇਸ਼ਨ</translation> +<translation id="7963608432878156675">ਇਹ ਨਾਮ ਬਲੂਟੁੱਥ ਅਤੇ ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨਾਂ ਲਈ ਹੋਰ ਡੀਵਾਈਸਾਂ ਨੂੰ ਦਿਸੇਗਾ</translation> <translation id="7963826112438303517">ਤੁਹਾਡੀ 'ਅਸਿਸਟੈਂਟ' ਇਹਨਾਂ ਰਿਕਾਰਡਿੰਗਾਂ ਅਤੇ ਤੁਹਾਡੀਆਂ ਬੋਲੀਆਂ ਗਈਆਂ ਬੇਨਤੀਆਂ ਦੀ ਵਰਤੋਂ ਤੁਹਾਡੀ ਅਵਾਜ਼ ਦਾ ਮਾਡਲ ਬਣਾਉਣ ਅਤੇ ਅੱਪਡੇਟ ਕਰਨ ਲਈ ਕਰਦੀ ਹੈ, ਜਿਸਨੂੰ ਸਿਰਫ਼ ਉਹਨਾਂ ਡੀਵਾਈਸਾਂ 'ਤੇ ਸਟੋਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜਿੱਥੇ ਤੁਸੀਂ Voice Match ਨੂੰ ਚਾਲੂ ਕੀਤਾ ਹੈ। 'ਅਸਿਸਟੈਂਟ' ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਅਵਾਜ਼ੀ ਸਰਗਰਮੀ ਨੂੰ ਮਿਟਾਓ ਜਾਂ ਮੁੜ-ਸਿਖਾਓ।</translation> <translation id="7966241909927244760">ਚਿੱਤਰ ਪਤਾ ਕਾ&ਪੀ ਕਰੋ</translation> <translation id="7966571622054096916">{COUNT,plural, =1{ਬੁੱਕਮਾਰਕ ਸੂਚੀ ਵਿੱਚ 1 ਆਈਟਮ}one{ਬੁੱਕਮਾਰਕ ਸੂਚੀ ਵਿੱਚ {COUNT} ਆਈਟਮ}other{ਬੁੱਕਮਾਰਕ ਸੂਚੀ ਵਿੱਚ {COUNT} ਆਈਟਮਾਂ}}</translation> @@ -6371,6 +6383,7 @@ <translation id="850875081535031620">ਕੋਈ ਹਾਨੀਕਾਰਕ ਸਾਫਟਵੇਅਰ ਨਹੀਂ ਮਿਲਿਆ</translation> <translation id="8509177919508253835">ਸੁਰੱਖਿਆ ਕੁੰਜੀਆਂ ਨੂੰ ਰੀਸੈੱਟ ਕਰਕੇ ਪਿੰਨ ਬਣਾਓ</translation> <translation id="8509646642152301857">ਸ਼ਬਦ-ਜੋੜ ਜਾਂਚ ਸ਼ਬਦਕੋਸ਼ ਡਾਊਨਲੋਡ ਅਸਫਲ ਰਿਹਾ।</translation> +<translation id="8512396579636492893">{COUNT,plural, =0{ਕੋਈ ਕਮਜ਼ੋਰ ਪਾਸਵਰਡ ਨਹੀਂ ਮਿਲਿਆ}=1{{COUNT} ਕਮਜ਼ੋਰ ਪਾਸਵਰਡ ਮਿਲਿਆ}other{{COUNT} ਕਮਜ਼ੋਰ ਪਾਸਵਰਡ ਮਿਲੇ}}</translation> <translation id="8512476990829870887">ਪ੍ਰਕਿਰਿਆ ਖ਼ਤਮ ਕਰੋ</translation> <translation id="851263357009351303"><ph name="HOST" /> ਨੂੰ ਹਮੇਸ਼ਾਂ ਚਿੱਤਰ ਦਿਖਾਉਣ ਦੀ ਆਗਿਆ ਦਿਓ</translation> <translation id="8513108775083588393">ਸਵੈ-ਘੁੰਮਾਓ</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb index 0c04982..b9c3915 100644 --- a/chrome/app/resources/generated_resources_pl.xtb +++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">Twoje pliki z Dokumentów, Arkuszy, Prezentacji i Rysunków są teraz synchronizowane. Otwórz aplikację Dysk Google, aby używać ich online lub offline.</translation> <translation id="1012876632442809908">Urządzenie USB-C (przedni port)</translation> <translation id="1013707859758800957">Wtyczka spoza piaskownicy otrzymała zezwolenie na uruchomienie na tej stronie.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Edytuj nazwę folderu</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{Ostatni dzień na zaktualizowanie urządzenia <ph name="DEVICE_TYPE" />}few{Zaktualizuj urządzenie <ph name="DEVICE_TYPE" /> w ciągu {NUM_DAYS} dni}many{Zaktualizuj urządzenie <ph name="DEVICE_TYPE" /> w ciągu {NUM_DAYS} dni}other{Zaktualizuj urządzenie <ph name="DEVICE_TYPE" /> w ciągu {NUM_DAYS} dnia}}</translation> <translation id="1016566241875885511">Dodatkowe informacje (opcjonalnie)</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb index 1e94953..cc04430b 100644 --- a/chrome/app/resources/generated_resources_pt-BR.xtb +++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">Seus arquivos do Google Docs, Planilhas, Apresentações e Desenhos estão sendo sincronizados. Abra o aplicativo Google Drive para acessá-los on-line ou off-line.</translation> <translation id="1012876632442809908">Dispositivo USB-C (porta frontal)</translation> <translation id="1013707859758800957">Foi permitida a execução de um plug-in sem sandbox nesta página.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Editar nome da pasta</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{Último dia para atualizar o <ph name="DEVICE_TYPE" />}one{Atualize o <ph name="DEVICE_TYPE" /> em até {NUM_DAYS} dia}other{Atualize o <ph name="DEVICE_TYPE" /> em até {NUM_DAYS} dias}}</translation> <translation id="1016566241875885511">Informações adicionais (opcional)</translation> @@ -3786,7 +3787,7 @@ <translation id="5449588825071916739">Adicionar todas as guias aos favoritos</translation> <translation id="5449716055534515760">Fechar jan&ela</translation> <translation id="5452974209916053028">Sessão anônima atual: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" />, <ph name="RECENT_PERMISSIONS_CHANGE_1" />, <ph name="RECENT_PERMISSIONS_CHANGE_2" /></translation> -<translation id="5454005855577728171">Mover balão de legenda para <ph name="POSITION_ON_SCREEN_FROM_LEFT" />% na horizontal, <ph name="POSITION_ON_SCREEN_FROM_TOP" />% na vertical</translation> +<translation id="5454005855577728171">O balão de legenda foi movido <ph name="POSITION_ON_SCREEN_FROM_LEFT" />% na horizontal e <ph name="POSITION_ON_SCREEN_FROM_TOP" />% na vertical</translation> <translation id="5454166040603940656">com <ph name="PROVIDER" /></translation> <translation id="5457113250005438886">Inválidos</translation> <translation id="5457459357461771897">Ler e excluir fotos, músicas e outras mídias do seu computador</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb index 4b2ba5c..ed7e93d 100644 --- a/chrome/app/resources/generated_resources_pt-PT.xtb +++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">Os seus ficheiros de Docs, Folhas, Slides e Desenhos estão a ser sincronizados. Abra a app Google Drive para aceder aos ficheiros online ou offline.</translation> <translation id="1012876632442809908">Dispositivo USB-C (porta frontal)</translation> <translation id="1013707859758800957">A execução de um plug-in sem isolamento de processos foi permitida nesta página.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Editar nome da pasta</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{Último dia para atualizar o <ph name="DEVICE_TYPE" />}other{Atualize o <ph name="DEVICE_TYPE" /> dentro de {NUM_DAYS} dias}}</translation> <translation id="1016566241875885511">Informações adicionais (opcional)</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb index 66b02fe..913dfe5 100644 --- a/chrome/app/resources/generated_resources_ro.xtb +++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">Se sincronizează fișierele din Documente Google, Foi de calcul, Prezentări și Desene. Deschideți aplicația Google Drive pentru a le accesa online sau offline.</translation> <translation id="1012876632442809908">Dispozitiv USB-C (portul din față)</translation> <translation id="1013707859758800957">Pe această pagină a fost permisă rularea unui plugin scos din mediul de testare.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Editează numele dosarului</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{Ultima zi în care poți actualiza acest <ph name="DEVICE_TYPE" />}few{Actualizează acest <ph name="DEVICE_TYPE" /> în cel mult {NUM_DAYS} zile}other{Actualizează acest <ph name="DEVICE_TYPE" /> în cel mult {NUM_DAYS} de zile}}</translation> <translation id="1016566241875885511">Informații suplimentare (opțional)</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb index 57207c8..877ffd1 100644 --- a/chrome/app/resources/generated_resources_sl.xtb +++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -3108,7 +3108,7 @@ <translation id="4608500690299898628">&Iskanje ...</translation> <translation id="4608520674724523647">Slika uspešne včlanitve</translation> <translation id="4608703838363792434">V datoteki <ph name="FILE_NAME" /> je občutljiva vsebina</translation> -<translation id="4609987916561367134">Dovoljena je uporaba Javascripta</translation> +<translation id="4609987916561367134">Dovoljena je uporaba JavaScripta</translation> <translation id="4610162781778310380">Pri vtičniku <ph name="PLUGIN_NAME" /> je prišlo do napake</translation> <translation id="4610637590575890427">Ali ste nameravali obiskati <ph name="SITE" />?</translation> <translation id="4611114513649582138">Podatkovna povezava je na voljo</translation> @@ -5729,7 +5729,7 @@ <translation id="7750228210027921155">Slika v sliki</translation> <translation id="7751260505918304024">Prikaži vse</translation> <translation id="7753735457098489144">Namestitev ni uspela zaradi pomanjkanja prostora za shranjevanje. Če želite sprostiti prostor, izbrišite datoteke iz shrambe v napravi.</translation> -<translation id="7754347746598978109">Ni dovoljena uporaba Javascripta</translation> +<translation id="7754347746598978109">Ni dovoljena uporaba JavaScripta</translation> <translation id="7754704193130578113">Pred prenosom vprašaj, kam želim shraniti vsako datoteko</translation> <translation id="7755287808199759310">Starš ga lahko odblokira</translation> <translation id="7757592200364144203">Spremeni ime naprave</translation> @@ -6252,7 +6252,7 @@ <translation id="8322814362483282060">Tej strani je onemogočen dostop do mikrofona.</translation> <translation id="8323167517179506834">Vnesite URL</translation> <translation id="8324784016256120271">Spletna mesta lahko uporabljajo piškotke za ogled dejavnosti brskanja na različnih spletnih mestih, na primer za osebno prilagajanje oglasov</translation> -<translation id="8325413836429495820">Ni dovoljena uporaba odložišča</translation> +<translation id="8325413836429495820">Ni dovoljen ogled odložišča</translation> <translation id="8326478304147373412">PKCS #7, veriga potrdil</translation> <translation id="8327039559959785305">Napaka pri vpenjanju datotek za Linux. Poskusite znova.</translation> <translation id="8327676037044516220">Nastavitve dovoljenj in vsebine</translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb index 98cca85f..af9a800b 100644 --- a/chrome/app/resources/generated_resources_sr-Latn.xtb +++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">Datoteke iz Dokumenata, Tabela, Prezentacija i Crteža se sinhronizuju. Otvorite aplikaciju Google disk da biste im pristupili onlajn ili oflajn.</translation> <translation id="1012876632442809908">Uređaj sa USB priključkom tipa C (prednji port)</translation> <translation id="1013707859758800957">Dozvoljeno je pokretanje dodatne komponente koja je izvan zaštićenog okruženja na ovoj stranici.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Izmenite naziv direktorijuma</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{Poslednji dan za ažuriranje uređaja <ph name="DEVICE_TYPE" />}one{Ažurirajte <ph name="DEVICE_TYPE" /> u roku od {NUM_DAYS} dana}few{Ažurirajte <ph name="DEVICE_TYPE" /> u roku od {NUM_DAYS} dana}other{Ažurirajte <ph name="DEVICE_TYPE" /> u roku od {NUM_DAYS} dana}}</translation> <translation id="1016566241875885511">Dodatne informacije (opcionalno)</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb index 94a71189..8be8c95 100644 --- a/chrome/app/resources/generated_resources_sr.xtb +++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">Датотеке из Докумената, Табела, Презентација и Цртежа се синхронизују. Отворите апликацију Google диск да бисте им приступили онлајн или офлајн.</translation> <translation id="1012876632442809908">Уређај са USB прикључком типа C (предњи порт)</translation> <translation id="1013707859758800957">Дозвољено је покретање додатне компоненте која је изван заштићеног окружења на овој страници.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Измените назив директоријума</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{Последњи дан за ажурирање уређаја <ph name="DEVICE_TYPE" />}one{Ажурирајте <ph name="DEVICE_TYPE" /> у року од {NUM_DAYS} дана}few{Ажурирајте <ph name="DEVICE_TYPE" /> у року од {NUM_DAYS} дана}other{Ажурирајте <ph name="DEVICE_TYPE" /> у року од {NUM_DAYS} дана}}</translation> <translation id="1016566241875885511">Додатне информације (опционално)</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb index a77c4d45..d55380f8a 100644 --- a/chrome/app/resources/generated_resources_sv.xtb +++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">Dina dokument, kalkylark, bildspelsbilder och ritningar synkroniseras. Öppna appen Google Drive om du vill öppna dem online eller offline.</translation> <translation id="1012876632442809908">USB-C-enhet (främre port)</translation> <translation id="1013707859758800957">Ett pluginprogram utanför sandlådan har getts behörighet att köras på den här sidan.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Redigera mappnamn</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{I dag är sista dagen för att uppdatera <ph name="DEVICE_TYPE" />}other{Uppdatera <ph name="DEVICE_TYPE" /> inom {NUM_DAYS} dagar}}</translation> <translation id="1016566241875885511">Mer information (valfritt)</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb index cd943ac..58d0dba9 100644 --- a/chrome/app/resources/generated_resources_sw.xtb +++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -471,7 +471,7 @@ <translation id="1530838837447122178">Fungua mipangilio ya kipanya na padi ya kugusa</translation> <translation id="1531004739673299060">Dirisha la Programu</translation> <translation id="1531275250079031713">Onyesha kidirisha cha 'Weka Wi-Fi mpya'</translation> -<translation id="1535228823998016251">Kwa sauti</translation> +<translation id="1535228823998016251">Ya juu</translation> <translation id="1536754031901697553">Inatenganisha...</translation> <translation id="1537254971476575106">Kikuzaji cha skrini nzima</translation> <translation id="15373452373711364">Kishale kikubwa cha kipanya</translation> @@ -2664,7 +2664,7 @@ <translation id="4058793769387728514">Kagua Andiko Sasa</translation> <translation id="406070391919917862">Programu za Mandharinyuma</translation> <translation id="4061374428807229313">Ili ushiriki, bofya kulia kwenye folda katika programu ya Faili, kisha uchague "Shiriki na Parallels Desktop".</translation> -<translation id="406213378265872299">Vitendo ulivyoweka mapendeleo</translation> +<translation id="406213378265872299">Vitendo ulivyobadilisha kukufaa</translation> <translation id="4065876735068446555">Mtandao unaotumia (<ph name="NETWORK_ID" />) unaweza kukuhitaji utembelee ukurasa wake wa kuingia katika akaunti.</translation> <translation id="4066207411788646768">Tafadhali angalia muunganisho wako ili uone printa zinazopatikana katika mtandao wako</translation> <translation id="4068776064906523561">Alama za vidole zilizohifadhiwa</translation> @@ -2940,7 +2940,7 @@ <translation id="4421932782753506458">Kibonge</translation> <translation id="4423376891418188461">Rejesha Mipangilio</translation> <translation id="442397852638519243"><ph name="USER_NAME" />, msimamizi wako anakuhitaji ubadilishe nenosiri lako.</translation> -<translation id="4430019312045809116">Kiwango</translation> +<translation id="4430019312045809116">Kiwango cha sauti</translation> <translation id="4430369329743628066">Alamisho imeongezwa</translation> <translation id="4432621511648257259">Nenosiri si sahihi</translation> <translation id="4434045419905280838">Madirisha ibukizi/kuelekeza kwingine</translation> @@ -5029,7 +5029,7 @@ <translation id="6922745772873733498">Weka PIN ili uchapishe</translation> <translation id="6923132443355966645">Sogeza / Bofya</translation> <translation id="6923633482430812883">Hitilafu imetokea wakati wa kupachika faili ya kushiriki. Tafadhali hakikisha kuwa seva ya faili ambako unaunganisha inatumia toleo la SMBv2 au jipya zaidi.</translation> -<translation id="6929126689972602640">Vidhibiti vya wazazi haviwezi kutumika kwenye akaunti za shuleni. Ili uongeze akaunti ya shuleni itakayotumika kufikia Google Darasani na tovuti zingine kwa ajili ya kufanya kazi ya shule nyumbani, ingia kwa kutumia akaunti ya kibinafsi ya mtoto kwanza. Unaweza kuongeza akaunti ya shuleni baadaye wakati wa kuweka mipangilio.</translation> +<translation id="6929126689972602640">Vidhibiti vya wazazi haviwezi kutumika kwenye akaunti za shuleni. Ili uongeze akaunti ya shuleni itakayotumika kufikia Google Darasani na tovuti zingine kwa ajili ya kufanya kazi ya shule nyumbani, ingia kwa kutumia akaunti ya kibinafsi ya mtoto kwanza. Unaweza kuongeza akaunti ya shuleni baadaye katika mipangilio.</translation> <translation id="6929760895658557216">Okay Google</translation> <translation id="6930036377490597025">Ufunguo wa usalama wa nje au kitambuzi kilichojumuishwa kwenye kompyuta</translation> <translation id="6930161297841867798">{NUM_EXTENSIONS,plural, =1{Kiendelezi kimekataliwa}other{Viendelezi # vimekataliwa}}</translation> @@ -6208,7 +6208,7 @@ <translation id="826905130698769948">Cheti cha kiteja si sahihi</translation> <translation id="8270242299912238708">Hati za PDF</translation> <translation id="827097179112817503">Onyesha kitufe cha mwanzo</translation> -<translation id="8271379370373330993">Wazazi, hatua chache zinazofuata ni zako. Ukishaweka mipangilio ya akaunti, unaweza kumrudishia mtoto <ph name="DEVICE_TYPE" />.</translation> +<translation id="8271379370373330993">Mzazi, hatua chache zinazofuata ni zako. Ukishaweka mipangilio ya akaunti, unaweza kumrudishia mtoto <ph name="DEVICE_TYPE" />.</translation> <translation id="8272443605911821513">Dhibiti viendelezi vyako kwa kubofya Viendelezi katika menyu ya "Zana zaidi".</translation> <translation id="8274332263553132018">Tuma faili</translation> <translation id="8274924778568117936">Usizime wala kufunga kifaa chako cha <ph name="DEVICE_TYPE" /> hadi sasisho likamilike. Kifaa chako cha <ph name="DEVICE_TYPE" /> kitazimika na kuwaka baada ya sasisho kukamilika.</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb index 095f9841..8419edfc 100644 --- a/chrome/app/resources/generated_resources_ta.xtb +++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -756,7 +756,7 @@ <translation id="1841705068325380214"><ph name="EXTENSION_NAME" /> முடக்கப்பட்டுள்ளது</translation> <translation id="184273675144259287">Linux ஆப்ஸ் & கோப்புகளை முந்தைய காப்புப் பிரதிகள் மூலம் மாற்றியமைக்கவும்</translation> <translation id="1842766183094193446">டெமோ பயன்முறையை இயக்க விரும்புகிறீர்களா?</translation> -<translation id="1845727111305721124">ஒலியைப் பிளே செய்ய அனுமதிக்கப்பட்டுள்ள தளங்கள்</translation> +<translation id="1845727111305721124">ஒலியை இயக்க அனுமதிக்கப்பட்டுள்ள தளங்கள்</translation> <translation id="1846308012215045257"><ph name="PLUGIN_NAME" />ஐ இயக்க, கண்ட்ரோலைப் பிடித்து, கிளிக் செய்யவும்</translation> <translation id="1849186935225320012">இந்தப் பக்கத்திற்கு MIDI சாதனங்களுக்கான முழுக் கட்டுப்பாடு உள்ளது.</translation> <translation id="1850508293116537636">&வலஞ்சுழியாகச் சுற்று</translation> @@ -781,7 +781,7 @@ <translation id="187145082678092583">சில ஆப்ஸ்</translation> <translation id="1871534214638631766">உள்ளடக்கத்தில் வலது கிளிக் செய்யும்போதோ நீண்ட நேரம் அழுத்தும்போதோ தொடர்புடைய தகவலைக் காட்டும்</translation> <translation id="1871615898038944731">உங்கள் <ph name="DEVICE_TYPE" /> புதுப்பித்த நிலையில் உள்ளது</translation> -<translation id="1874248162548993294">எந்த விளம்பரங்களையும் காட்ட அனுமதிக்கப்பட்டுள்ள தளங்கள்</translation> +<translation id="1874248162548993294">விளம்பரங்கள் அனைத்தையும் காட்ட அனுமதிக்கப்பட்டுள்ள தளங்கள்</translation> <translation id="1874972853365565008">{NUM_TABS,plural, =1{தாவலை மற்றொரு சாளரத்திற்கு நகர்த்து}other{தாவல்களை மற்றொரு சாளரத்திற்கு நகர்த்து}}</translation> <translation id="1875386316419689002">HID சாதனத்துடன் இந்தத் தாவல் இணைக்கப்பட்டுள்ளது.</translation> <translation id="1875387611427697908"><ph name="CHROME_WEB_STORE" /> இலிருந்து மட்டுமே இதைச் சேர்க்க முடியும்</translation> @@ -870,7 +870,7 @@ <translation id="1976307821760494606">ADB பிழைதிருத்தத்தை <ph name="DOMAIN" /> முடக்கியுள்ளது. இதனால் <ph name="DEVICE_TYPE" /> சாதனம் 24 மணிநேரத்தில் மீட்டமைக்கப்படும். உங்களுக்குத் தேவையான கோப்புகளைக் காப்புப் பிரதி எடுத்துக்கொள்ளவும்.</translation> <translation id="1977965994116744507"><ph name="DEVICE_TYPE" /> சாதனத்தைத் திறக்க, அதற்கு அருகில் உங்கள் மொபைலை எடுத்து வரவும்.</translation> <translation id="1978006917103730774">இனிவரும் மென்பொருள் மற்றும் பாதுகாப்பு தொடர்பான புதுப்பிப்புகள் தானாகவே நிறுவப்படும்.</translation> -<translation id="1978057560491495741">முகவரியை அகற்றுங்கள்</translation> +<translation id="1978057560491495741">முகவரியை அகற்றுதல்</translation> <translation id="1979095679518582070">இந்த அம்சத்தை முடக்குவதால் சிஸ்டம் புதுப்பிப்புகள், பாதுகாப்பு போன்ற அத்தியாவசிய சேவைகளைப் பெறத் தேவைப்படும் தகவலை அனுப்புவதற்கான இந்தச் சாதனத் திறனில் பாதிப்பு ஏற்படாது.</translation> <translation id="1979280758666859181"><ph name="PRODUCT_NAME" /> இன் பழைய பதிப்பிற்கு சேனலை மாற்றுகிறீர்கள். உங்கள் சாதனத்தில் நிறுவப்பட்ட பதிப்புடன் சேனல் பதிப்பு பொருந்தும்போது சேனலின் மாற்றமும் பயன்படுத்தப்படும்.</translation> <translation id="197989455406964291">என்க்ரிப்ஷன் வகையை KDC ஆதரிக்கவில்லை</translation> @@ -2500,7 +2500,7 @@ <translation id="3873423927483480833">பின்களைக் காட்டும்</translation> <translation id="3873915545594852654">ARC++ல் ஒரு சிக்கல் ஏற்பட்டது.</translation> <translation id="3874164307099183178">Google Assistantடை இயக்கு</translation> -<translation id="3877075909000773256"><ph name="USER_NAME" /> இன் சாதனத்திற்கான அருகிலுள்ளவற்றுடன் பகிர்தல் அமைப்புகள், <ph name="USER_EMAIL" /> என்ற கணக்கின் கீழ் பகிரப்படுகிறது.</translation> +<translation id="3877075909000773256"><ph name="USER_NAME" /> இன் சாதனத்திற்கான அருகிலுள்ளவற்றுடன் பகிர்தல் அமைப்புகள், <ph name="USER_EMAIL" /> ஆகப் பகிர்கிறது.</translation> <translation id="387771067039689031">எனது கம்ப்யூட்டரை அணுகுவதற்காக செருகுநிரலைப் பயன்படுத்த அனுமதி இல்லாத தளங்கள்</translation> <translation id="3879748587602334249">பதிவிறக்க நிர்வாகி</translation> <translation id="3881478300875776315">குறைவான வரிகளைக் காட்டும்</translation> @@ -4620,7 +4620,7 @@ <translation id="6425556984042222041">’உரையிலிருந்து பேச்சு’ வேக விகிதம்</translation> <translation id="6426200009596957090">ChromeVox அமைப்புகளைத் திற</translation> <translation id="642654727595919401"><ph name="DOMAIN" /> டொமைனைப் பயன்படுத்த, உங்கள் தரவைக் காப்புப் பிரதி எடுத்துவிட்டு இந்த <ph name="DEVICE_TYPE" /> சாதனத்தை 1 வாரத்திற்குள் திருப்பியளிக்க வேண்டும். <ph name="LINK_BEGIN" />விவரங்களைக் காட்டு<ph name="LINK_END" /></translation> -<translation id="642729974267661262">ஒலியைப் பிளே செய்ய அனுமதி இல்லாத தளங்கள்</translation> +<translation id="642729974267661262">ஒலியை இயக்க அனுமதி இல்லாத தளங்கள்</translation> <translation id="6428982734197629783">படத்தைச் செயல்படுத்துகிறது</translation> <translation id="6429384232893414837">புதுப்பிப்பதில் பிழை</translation> <translation id="6430814529589430811">Base64-குறியேற்றப்பட்ட ASCII, ஒற்றைச் சான்றிதழ்</translation> @@ -5025,7 +5025,7 @@ <translation id="6922745772873733498">அச்சிடுவதற்குப் பின்னை உள்ளிடவும்</translation> <translation id="6923132443355966645">நகர்த்து / கிளிக் செய்</translation> <translation id="6923633482430812883">பகிர்வை ஏற்றுவதில் பிழை. நீங்கள் இணைக்கின்ற கோப்புச் சேவையகம் SMBv2 அல்லது அதற்குப் பிந்தைய பதிப்பை ஆதரிக்கிறதா எனச் சரிபார்க்கவும்.</translation> -<translation id="6929126689972602640">பள்ளிக் கணக்குகளில் பெற்றோர் கட்டுப்பாடுகளைப் பயன்படுத்த இயலாது. வீட்டில் வீட்டுப்பாடங்களைச் செய்வதற்காக Google Classroom மற்றும் பிற இணையதளங்களை அணுக பள்ளிக் கணக்கைச் சேர்ப்பதற்குப் பிள்ளையின் தனிப்பட்ட கணக்கில் முதலில் உள்நுழையவும். அமைவு என்பதில் பள்ளிக் கணக்கைப் பிறகு சேர்த்துக் கொள்ளலாம்.</translation> +<translation id="6929126689972602640">பள்ளிக் கணக்குகளில் பெற்றோர் கட்டுப்பாடுகளைப் பயன்படுத்த இயலாது. வீட்டில் வீட்டுப்பாடங்களைச் செய்வதற்காக Google Classroom மற்றும் பிற இணையதளங்களை அணுக, பள்ளிக் கணக்கைச் சேர்ப்பதற்குப் பிள்ளையின் தனிப்பட்ட கணக்கில் முதலில் உள்நுழையவும். அமைவு என்பதில் பள்ளிக் கணக்கைப் பிறகு சேர்த்துக் கொள்ளலாம்.</translation> <translation id="6929760895658557216">Okay Google</translation> <translation id="6930036377490597025">இணைக்கக்கூடிய பாதுகாப்பு விசை அல்லது உள்ளமைந்த சென்சார்</translation> <translation id="6930161297841867798">{NUM_EXTENSIONS,plural, =1{ஒரு நீட்டிப்பு நிராகரிக்கப்பட்டுள்ளது}other{# நீட்டிப்புகள் நிராகரிக்கப்பட்டுள்ளன}}</translation> @@ -6342,7 +6342,7 @@ <translation id="8449036207308062757">சேமிப்பிடத்தை நிர்வகி</translation> <translation id="8452135315243592079">சிம் கார்டு இல்லை</translation> <translation id="8455026683977728932">ADB விளக்கப்படத்தை இயக்க முடியவில்லை</translation> -<translation id="8456398879271637452">உடனடி வசனம் காட்டப்படுகிறது, ஃபோகஸை மாற்ற Ctrl + Back/Ctrl + Forward ஆகிய விசைகளைச் சேர்த்து அழுத்தவும்</translation> +<translation id="8456398879271637452">உடனடி வசனம் காட்டப்படுகிறது, ஃபோகஸை மாற்ற, Ctrl + Back/Ctrl + Forward ஆகிய விசைகளைச் சேர்த்து அழுத்தவும்</translation> <translation id="845702320058262034">இணைக்க முடியவில்லை மொபைலின் புளூடூத் ஆன் ஆகியிருப்பதை உறுதிப்படுத்தவும்</translation> <translation id="8457451314607652708">புத்தகக்குறிகளை இறக்குமதி செய்</translation> <translation id="8458627787104127436">அனைத்தையும் (<ph name="URL_COUNT" />) புதிய சாளரத்தில் திற</translation> @@ -6862,7 +6862,7 @@ <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{இன்னும் ஒருமுறை முயலலாம்.}other{இன்னும் # முறை முயலலாம்.}}</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9040661932550800571"><ph name="ORIGIN" />க்கான கடவுச்சொல்லைப் புதுப்பிக்கவா?</translation> -<translation id="9041049756004505730">உடனடி வசனம் காட்டப்படுகிறது, ஃபோகஸை மாற்ற ⌘ + Option + மேல்நோக்கிய அம்புக்குறி/கீழ்நோக்கிய அம்புக்குறி ஆகிய விசைகளைச் சேர்த்து அழுத்தவும்</translation> +<translation id="9041049756004505730">உடனடி வசனம் காட்டப்படுகிறது, ஃபோகஸை மாற்ற, ⌘ + Option + மேல்நோக்கிய அம்புக்குறி/கீழ்நோக்கிய அம்புக்குறி ஆகிய விசைகளைச் சேர்த்து அழுத்தவும்</translation> <translation id="9041692268811217999">உங்கள் கம்ப்யூட்டரில் இருக்கும் அகக் கோப்புகளுக்கான அணுகலை நிர்வாகி முடக்கியுள்ளார்</translation> <translation id="904224458472510106">இந்தச் செயலைத் திரும்பப்பெற முடியாது</translation> <translation id="9042893549633094279">தனியுரிமை மற்றும் பாதுகாப்பு</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb index 3cf4d01..22ebd18 100644 --- a/chrome/app/resources/generated_resources_te.xtb +++ b/chrome/app/resources/generated_resources_te.xtb
@@ -558,7 +558,7 @@ <translation id="1627408615528139100">ఇప్పటికే డౌన్లోడ్ చేయబడింది</translation> <translation id="1628948239858170093">తెరవడానికి ముందు ఫైల్ను స్కాన్ చేయాలా?</translation> <translation id="1629314197035607094">పాస్వర్డ్ గడువు ముగిసింది</translation> -<translation id="163072119192489970">డేటాను పంపడాన్ని, అలాగే అందుకోవడాన్ని పూర్తి చేయడాని అనుమతించబడింది</translation> +<translation id="163072119192489970">డేటాను పంపడాన్ని, అలాగే అందుకోవడాన్ని పూర్తి చేయడానికి అనుమతించబడింది</translation> <translation id="1630768113285622200">రీస్టార్ట్ చేసి, కొనసాగించు</translation> <translation id="1632082166874334883">మీ Google ఖాతాలో పాస్వర్డ్ స్టోర్ చేయబడింది</translation> <translation id="1632803087685957583">మీ కీబోర్డ్ పునరావృత రేటు, పద సూచన మొదలైనవి సర్దుబాటు చేయడానికి మిమ్మల్ని అనుమతిస్తుంది</translation> @@ -756,7 +756,7 @@ <translation id="1841705068325380214"><ph name="EXTENSION_NAME" /> నిలిపివేయబడింది</translation> <translation id="184273675144259287">మీ Linux యాప్లు, ఫైల్లను మునుపు సేవ్ చేసిన బ్యాకప్తో భర్తీ చేయండి</translation> <translation id="1842766183094193446">మీరు ఖచ్చితంగా డెమో మోడ్ని ప్రారంభించాలనుకుంటున్నారా?</translation> -<translation id="1845727111305721124">శబ్దాన్ని ప్లే చేయడానికి అనుమతించడింది</translation> +<translation id="1845727111305721124">శబ్దాన్ని ప్లే చేయడానికి అనుమతించబడింది</translation> <translation id="1846308012215045257"><ph name="PLUGIN_NAME" />ను అమలు చేయడానికి కంట్రోల్ నొక్కి, క్లిక్ చేయండి</translation> <translation id="1849186935225320012">ఈ పేజీ MIDI పరికరాలకు పూర్తి నియంత్రణను కలిగి ఉంది.</translation> <translation id="1850508293116537636">&సవ్యదిశలో తిప్పు</translation> @@ -1379,7 +1379,7 @@ <translation id="2571655996835834626">కుక్కీలు, JavaScript, ప్లగ్ఇన్లు, భౌగోళిక స్థానం, మైక్రోఫోన్, కెమెరా మొదలైన ఫీచర్లకు వెబ్సైట్ల యాక్సెస్ను నియంత్రించే మీ సెట్టింగ్లను మార్చండి.</translation> <translation id="2572032849266859634"><ph name="VOLUME_NAME" />కి చదవడానికి మాత్రమే యాక్సెస్ మంజూరు చేయబడింది.</translation> <translation id="2575247648642144396">ప్రస్తుత పేజీలో ఎక్స్టెన్షన్ను అమలు చేయగలిగినప్పుడు ఈ చిహ్నం కనిపిస్తుంది. చిహ్నంపై క్లిక్ చేయడం ద్వారా లేదా <ph name="EXTENSION_SHORTCUT" />ను నొక్కడం ద్వారా ఈ ఎక్స్టెన్షన్ను ఉపయోగించండి.</translation> -<translation id="2575441894380764255">అనుచితమైన లేదా తప్పుదారి పట్టించే యాడ్లను చూపించడానికి అనుమతించబడలేదు</translation> +<translation id="2575441894380764255">అనుచితమైన లేదా తప్పుదారి పట్టించే యాడ్లను చూపించడానికి అనుమతి లేదు.</translation> <translation id="257779572837908839">సమావేశాల కోసం Chromebox వలె సెటప్ చేయండి</translation> <translation id="2579232805407578790">సర్వర్తో కనెక్ట్ చేయడం సాధ్యపడలేదు. దయచేసి మీ నెట్వర్క్ కనెక్షన్ను చెక్ చేసి, మళ్లీ ట్రై చేయండి. సమస్య కొనసాగినట్లయితే, మీ Chromebookను రీస్టార్ట్ చేయండి. ఎర్రర్ కోడ్: <ph name="ERROR_CODE" />.</translation> <translation id="2580889980133367162">బహుళ ఫైల్లను డౌన్లోడ్ చేయడానికి <ph name="HOST" />ను ఎల్లప్పుడూ అనుమతించు</translation> @@ -2667,7 +2667,7 @@ <translation id="4058793769387728514">పత్రాన్ని ఇప్పుడు తనిఖీ చేయి</translation> <translation id="406070391919917862">నేపథ్య అనువర్తనాలు</translation> <translation id="4061374428807229313">షేర్ చేయడానికి, Files యాప్లోని ఫోల్డర్పై కుడి క్లిక్ చేయండి, తర్వాత "Parallels desktopతో షేర్ చేయి"ని ఎంచుకోండి.</translation> -<translation id="406213378265872299">అనుకూలీకరించబడిన ప్రవర్తనలు</translation> +<translation id="406213378265872299">అనుకూలంగా మార్చిన ప్రవర్తనలు</translation> <translation id="4065876735068446555">మీరు ఉపయోగిస్తున్న నెట్వర్క్ (<ph name="NETWORK_ID" />)కి మీరు దాని లాగిన్ పేజీని సందర్శించడం అవసరం కావచ్చు.</translation> <translation id="4066207411788646768">మీ నెట్వర్క్లో అందుబాటులో గల ప్రింటర్లను చూడడానికి మీ కనెక్షన్ను తనిఖీ చేయండి</translation> <translation id="4068776064906523561">సేవ్ చేయబడిన వేలిముద్రలు</translation> @@ -4892,7 +4892,7 @@ <translation id="676560328519657314">Google Payలో మీ పేమెంట్ ఆప్షన్లు</translation> <translation id="6767566652486411142">మరొక భాషను ఎంచుకోండి...</translation> <translation id="6767639283522617719">డొమైన్కు చేర్చడం సాధ్యపడలేదు. సంస్థాగత యూనిట్ యొక్క సెట్టింగ్లు సరిగ్గా ఉన్నాయని నిర్ధారించుకోండి.</translation> -<translation id="6768034047581882264">సురక్షితం కాని కంటెంట్ను చూపడానికి అనుమతించబడలేదు</translation> +<translation id="6768034047581882264">సురక్షితం కాని కంటెంట్ను చూపడానికి అనుమతి లేదు.</translation> <translation id="6769557323306147204">ఈ పరికరాన్ని అప్డేట్ చేయమని <ph name="ORGANIZATION_NAME" /> మీకు తెలియజేస్తోంది.</translation> <translation id="6769712124046837540">ప్రింటర్ని జోడిస్తోంది...</translation> <translation id="6770602306803890733">మీకు, వెబ్లోని ప్రతిఒక్కరికీ సెక్యూరిటీని మెరుగుపరుస్తుంది</translation> @@ -5718,7 +5718,7 @@ <translation id="7732111077498238432">విధానం ద్వారా నెట్వర్క్ నియంత్రించబడుతుంది</translation> <translation id="7737115349420013392">"<ph name="DEVICE_NAME" />"తో పెయిర్ చేస్తోంది ...</translation> <translation id="7737238973539693982">Linux (బీటా)ని తొలగించండి</translation> -<translation id="7737948071472253612">మీ కెమెరాను ఉపయోగించడానికి అనుమతించబడలేదు</translation> +<translation id="7737948071472253612">మీ కెమెరాను ఉపయోగించడానికి అనుమతి లేదు</translation> <translation id="7740996059027112821">ప్రామాణికం</translation> <translation id="7742706086992565332">మీరు ఎంత దగ్గరగా లేదా దూరంగా జూమ్ చేయాలనే దానిని కొన్ని నిర్దిష్ట వెబ్సైట్లలో మీరు సెట్ చేసుకోవచ్చు</translation> <translation id="774377079771918250">ఎక్కడ సేవ్ చేయాలో ఎంచుకోండి</translation> @@ -6207,7 +6207,7 @@ <translation id="826905130698769948">చెల్లని క్లయింట్ సర్టిఫికెట్</translation> <translation id="8270242299912238708">PDF పత్రాలు</translation> <translation id="827097179112817503">హోమ్ బటన్ను చూపు</translation> -<translation id="8271379370373330993">తల్లిదండ్రులారా, తర్వాత కొన్ని దశలు మీ కోసం. ఖాతాను సెటప్ చేసిన తర్వాత మీరు <ph name="DEVICE_TYPE" />ను చిన్నారికి తిరిగి ఇవ్వచ్చు.</translation> +<translation id="8271379370373330993">తల్లిదండ్రులారా, తర్వాత కొన్ని దశలు మీ కోసం. ఖాతాను సెటప్ చేసిన తర్వాత మీరు <ph name="DEVICE_TYPE" />ను చిన్నారికి తిరిగి ఇవ్వవచ్చు.</translation> <translation id="8272443605911821513">"మరిన్ని సాధనాలు" మెనూలోని ఎక్స్టెన్షన్లను క్లిక్ చేయడం ద్వారా మీ ఎక్స్టెన్షన్లను నిర్వహించండి.</translation> <translation id="8274332263553132018">ఫైల్ను ప్రసారం చేయండి</translation> <translation id="8274924778568117936">అప్డేట్ పూర్తయ్యే వరకు మీ <ph name="DEVICE_TYPE" />ని ఆఫ్ చేయవద్దు లేదా మూసివేయవద్దు. ఇనస్టలేషన్ పూర్తయిన తర్వాత మీ <ph name="DEVICE_TYPE" /> పునఃప్రారంభమవుతుంది.</translation> @@ -6232,7 +6232,7 @@ <translation id="8300011035382349091">ఈ ట్యాబ్కు సేవ్ చేసిన బుక్మార్క్ను సవరించండి</translation> <translation id="8300374739238450534">మిడ్నైట్ బ్లూ</translation> <translation id="8300849813060516376">OTASP విఫలమైంది</translation> -<translation id="8304383784961451596">మీరు ఈ పరికరాన్ని ఉపయోగించడానికి అనుమతించబడలేదు. సైన్ ఇన్ అనుమతి కోసం దయచేసి అడ్మినిస్ట్రేటర్ను కాంటాక్ట్ చేయండి లేదా Family Link ద్వారా పర్యవేక్షించబడిన Google ఖాతాతో సైన్ ఇన్ చేయండి.</translation> +<translation id="8304383784961451596">ఈ పరికరాన్ని ఉపయోగించడానికి మీకు అనుమతిలేదు. సైన్ ఇన్ అనుమతి కోసం దయచేసి అడ్మినిస్ట్రేటర్ను కాంటాక్ట్ చేయండి లేదా Family Link ద్వారా పర్యవేక్షించబడే Google ఖాతాతో సైన్ ఇన్ చేయండి.</translation> <translation id="8308179586020895837"><ph name="HOST" /> మీ కెమెరాను యాక్సెస్ చేయాలనుకుంటే నాకు తెలియజేయి</translation> <translation id="830868413617744215">బీటా</translation> <translation id="8309458809024885768">ప్రమాణపత్రం ఇప్పటికే ఉంది</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb index a074233..272516f 100644 --- a/chrome/app/resources/generated_resources_th.xtb +++ b/chrome/app/resources/generated_resources_th.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">ไฟล์เอกสาร แผ่นงาน สไลด์ และภาพวาดกำลังซิงค์ เปิดแอป Google ไดรฟ์เพื่อเข้าถึงไฟล์แบบออนไลน์หรือออฟไลน์</translation> <translation id="1012876632442809908">อุปกรณ์ USB-C (พอร์ตด้านหน้า)</translation> <translation id="1013707859758800957">ปลั๊กอินที่ไม่ได้อยู่ในแซนด์บ็อกซ์ได้รับอนุญาตให้ทำงานในหน้าเว็บนี้</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">แก้ไขชื่อโฟลเดอร์</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{วันสุดท้ายของการอัปเดต <ph name="DEVICE_TYPE" />}other{อัปเดต <ph name="DEVICE_TYPE" /> ภายใน {NUM_DAYS} วัน}}</translation> <translation id="1016566241875885511">ข้อมูลเพิ่มเติม (ไม่บังคับ)</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb index d9b739d..6f427b2 100644 --- a/chrome/app/resources/generated_resources_uk.xtb +++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">Ваші файли Документів, Таблиць, Презентацій і Малюнків синхронізуються. Відкрийте програму Диск Google, щоб отримати до них доступ онлайн чи офлайн.</translation> <translation id="1012876632442809908">Пристрій із портом USB типу C (на передній панелі)</translation> <translation id="1013707859758800957">На цій сторінці дозволено запуск плагіна з неізольованим програмним середовищем.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Редагувати назву папки</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{Останній день, щоб оновити пристрій <ph name="DEVICE_TYPE" />}one{Оновіть пристрій <ph name="DEVICE_TYPE" /> упродовж {NUM_DAYS} дня}few{Оновіть пристрій <ph name="DEVICE_TYPE" /> упродовж {NUM_DAYS} днів}many{Оновіть пристрій <ph name="DEVICE_TYPE" /> упродовж {NUM_DAYS} днів}other{Оновіть пристрій <ph name="DEVICE_TYPE" /> упродовж {NUM_DAYS} дня}}</translation> <translation id="1016566241875885511">Додаткова інформація (необов’язково)</translation> @@ -6913,7 +6914,7 @@ <translation id="9088446193279799727">Не вдалося налаштувати Linux. Підключіться до Інтернету й повторіть спробу.</translation> <translation id="9088917181875854783">Підтвердьте, що цей ключ відображається на пристрої "<ph name="DEVICE_NAME" />":</translation> <translation id="9089416786594320554">Методи введення</translation> -<translation id="909108997331068008">У профілі користувача <ph name="EXISTING_USER" /> уже здійснено вхід в обліковий запис <ph name="NEW_USER" /></translation> +<translation id="909108997331068008">Користувач <ph name="EXISTING_USER" /> уже ввійшов в обліковий запис <ph name="NEW_USER" /></translation> <translation id="9093429538970210897">Радимо створити резервну копію файлів на випадок, якщо не вдасться завершити оновлення. Коли ви почнете оновлення, Linux (бета-версія) буде вимкнено. Перш ніж продовжувати, збережіть відкриті файли.</translation> <translation id="9094033019050270033">Оновити пароль</translation> <translation id="9094038138851891550">Ім'я користувача не дійсне</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb index 36a0409..82e9fa5 100644 --- a/chrome/app/resources/generated_resources_ur.xtb +++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -3780,7 +3780,7 @@ <translation id="5449588825071916739">سبھی ٹیبز کا بُک مارک بنائیں</translation> <translation id="5449716055534515760">&ونڈو بند کردیں</translation> <translation id="5452974209916053028">موجودہ پوشیدگی سیشن: <ph name="RECENT_PERMISSIONS_CHANGE_SENTENCE_START" />، <ph name="RECENT_PERMISSIONS_CHANGE_1" />، <ph name="RECENT_PERMISSIONS_CHANGE_2" /></translation> -<translation id="5454005855577728171">کیپشن بلبلے کو %<ph name="POSITION_ON_SCREEN_FROM_LEFT" /> اوپر، %<ph name="POSITION_ON_SCREEN_FROM_TOP" /> نیچے کی جانب منتقل کیا گیا</translation> +<translation id="5454005855577728171">کیپشن بلبلے کو %<ph name="POSITION_ON_SCREEN_FROM_LEFT" /> بائیں، %<ph name="POSITION_ON_SCREEN_FROM_TOP" /> اوپر سے نیچے کی جانب منتقل کیا گیا</translation> <translation id="5454166040603940656"><ph name="PROVIDER" /> کے ساتھ</translation> <translation id="5457113250005438886">غلط</translation> <translation id="5457459357461771897">اپنے کمپیوٹر سے تصاویر، موسیقی اور دیگر میڈیا پڑھیں اور حذف کریں</translation> @@ -6342,7 +6342,7 @@ <translation id="8449036207308062757">اسٹوریج کا نظم کریں</translation> <translation id="8452135315243592079">غائب SIM کارڈ</translation> <translation id="8455026683977728932">ADB کا نمونہ فعال کرنے میں ناکام</translation> -<translation id="8456398879271637452">لائیو کیپشن مرئی ہے، فوکس کو مدور کرنے کے لئے Ctrl + Back یاCtrl + Forward دبائیں</translation> +<translation id="8456398879271637452">لائیو کیپشن نمایاں ہے، بہترین فوکس کے لئے Ctrl + Back یا Ctrl + Forward دبائیں</translation> <translation id="845702320058262034">منسلک نہیں ہو سکتا۔ یقینی بنائیں کہ آپ کے فون کا بلوٹوتھ آن ہے۔</translation> <translation id="8457451314607652708">بُک مارکس درآمد کریں</translation> <translation id="8458627787104127436">سبھی (<ph name="URL_COUNT" />) کو نئی ونڈو میں کھولیں</translation> @@ -6862,7 +6862,7 @@ <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{آپ کے پاس ایک کوشش باقی ہے۔}other{آپ کے پاس # کوششیں باقی ہیں۔}}</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9040661932550800571"><ph name="ORIGIN" /> کے لیے پاس ورڈ کو اپ ڈیٹ کریں؟</translation> -<translation id="9041049756004505730">لائیو کیپشن مرئی ہے، فوکس کو مدور کرنے کے لئے ⌘ + اختیار + اوپر تیر کا نشان یا نیچے تیر کا نشان دبائیں</translation> +<translation id="9041049756004505730">لائیو کیپشن نمایاں ہے، بہترین فوکس کے لیے ⌘ + Option + اوپر تیر کا نشان یا نیچے تیر کا نشان دبائیں</translation> <translation id="9041692268811217999">آپ کے منتظم نے آپ کی مشین پر مقامی فائلوں تک رسائی کو غیر فعال کر دیا ہے</translation> <translation id="904224458472510106">اس عمل کو کالعدم نہیں کیا جا سکتا</translation> <translation id="9042893549633094279">رازداری اور سیکیورٹی</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb index fa22a2d..766cafa 100644 --- a/chrome/app/resources/generated_resources_uz.xtb +++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">Hujjatlar, Jadvallar, Taqdimotlar va Chizmalardagi fayllaringiz sinxronlanmoqda. Ulardan onlayn va oflayn rejimda foydalanish uchun “Google Disk” ilovasini ishga tushiring.</translation> <translation id="1012876632442809908">USB-C qurilma (old port)</translation> <translation id="1013707859758800957">Bu sahifada sinov muhitida bo‘lmagan plagin ishga tushirildi.</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">Jild nomini o‘zgartirish</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{<ph name="DEVICE_TYPE" /> bugunoq yangilanishi kerak}other{<ph name="DEVICE_TYPE" /> {NUM_DAYS} kunda yangilanishi kerak}}</translation> <translation id="1016566241875885511">Qo‘shimcha ma’lumot (ixtiyoriy)</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb index 71fed5187..8e22da5 100644 --- a/chrome/app/resources/generated_resources_vi.xtb +++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -277,7 +277,7 @@ <translation id="1313705515580255288">Dấu trang, lịch sử và các cài đặt khác sẽ được đồng bộ hóa với tài khoản Google của bạn.</translation> <translation id="1314565355471455267">Android VPN</translation> <translation id="131461803491198646">Mạng chủ, không chuyển vùng</translation> -<translation id="1315056510003830387">Không được phép sử dụng đèn Flash</translation> +<translation id="1315056510003830387">Không được phép sử dụng Flash</translation> <translation id="1316136264406804862">Đang tìm kiếm...</translation> <translation id="1316495628809031177">Quá trình đồng bộ hóa hiện tạm dừng</translation> <translation id="1317637799698924700">Đế sạc sẽ hoạt động ở chế độ tương thích với USB Type-C.</translation> @@ -393,7 +393,7 @@ <translation id="1436784010935106834">Đã xóa</translation> <translation id="1437986450143295708">Mô tả chi tiết về vấn đề</translation> <translation id="144283815522798837">Đã chọn <ph name="NUMBER_OF_ITEMS_SELECTED" /></translation> -<translation id="1442851588227551435">Đặt phiếu Kerberos đang hoạt động</translation> +<translation id="1442851588227551435">Đặt vé Kerberos đang hoạt động</translation> <translation id="1444628761356461360">Cài đặt này do chủ sở hữu thiết bị, <ph name="OWNER_EMAIL" /> quản lý.</translation> <translation id="144518587530125858">Không thể tải '<ph name="IMAGE_PATH" />' cho chủ đề.</translation> <translation id="1451375123200651445">Trang web, Tệp đơn</translation> @@ -957,7 +957,7 @@ <translation id="2090165459409185032">Để khôi phục thông tin tài khoản của bạn, hãy truy cập: google.com/accounts/recovery</translation> <translation id="2090876986345970080">Cài đặt bảo mật hệ thống</translation> <translation id="2091887806945687916">Âm thanh</translation> -<translation id="209539936453343974">Để thiết lập quyền kiểm soát của cha mẹ, trẻ phải có Tài khoản Google do cha/mẹ quản lý. Với <ph name="DEVICE_TYPE_PLURAL" />, cha mẹ có thể dùng ứng dụng Family Link để đặt giới hạn thời gian sử dụng thiết bị, phê duyệt hoặc chặn các trang web và làm nhiều việc khác. Nếu trẻ cần làm bài tập trên các trang web như Google Lớp học, bạn có thể thêm tài khoản trường học vào lúc khác.</translation> +<translation id="209539936453343974">Để thiết lập các quyền kiểm soát của cha mẹ, trẻ phải có Tài khoản Google do cha/mẹ quản lý. Với <ph name="DEVICE_TYPE_PLURAL" />, cha mẹ có thể dùng ứng dụng Family Link để đặt giới hạn thời gian sử dụng thiết bị, phê duyệt hoặc chặn các trang web và làm nhiều việc khác. Nếu trẻ cần làm bài tập trên các trang web như Google Lớp học, bạn có thể thêm tài khoản trường học sau này.</translation> <translation id="2096715839409389970">Xóa cookie của bên thứ ba</translation> <translation id="2097372108957554726">Bạn cần đăng nhập Chrome để đăng ký thiết bị mới</translation> <translation id="2098805196501063469">Kiểm tra các mật khẩu còn lại</translation> @@ -1385,7 +1385,7 @@ <translation id="2580889980133367162">Luôn cho phép <ph name="HOST" /> tải xuống nhiều tệp</translation> <translation id="258095186877893873">Lâu</translation> <translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (Nền tảng <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation> -<translation id="2584109212074498965">Không tìm thấy phiếu Kerberos. Hãy thử lại hoặc liên hệ với quản trị viên thiết bị của tổ chức bạn. (Mã lỗi <ph name="ERROR_CODE" />).</translation> +<translation id="2584109212074498965">Không tìm thấy vé Kerberos. Hãy thử lại hoặc liên hệ với quản trị viên thiết bị của tổ chức bạn. (Mã lỗi <ph name="ERROR_CODE" />).</translation> <translation id="2585724835339714757">Thẻ này đang chia sẻ màn hình của bạn.</translation> <translation id="2586561813241011046">Không cài đặt được <ph name="APP_NAME" />. Hãy thử lại hoặc liên hệ với quản trị viên. Mã lỗi: <ph name="ERROR_CODE" />.</translation> <translation id="2586657967955657006">Khay nhớ tạm</translation> @@ -1646,7 +1646,7 @@ <translation id="2880660355386638022">Vị trí cửa sổ</translation> <translation id="2881076733170862447">Khi bạn nhấp vào tiện ích</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> sẽ khởi động lại và đặt lại trong giây lát</translation> -<translation id="288387288628762616">Được phép sử dụng đèn Flash</translation> +<translation id="288387288628762616">Được phép sử dụng Flash</translation> <translation id="2885378588091291677">Trình quản lý tác vụ</translation> <translation id="2885729872133513017">Đã xảy ra lỗi khi giải mã phản hồi của máy chủ.</translation> <translation id="2886771036282400576">• <ph name="PERMISSION" /></translation> @@ -1689,7 +1689,7 @@ <translation id="2932883381142163287">Báo cáo lạm dụng</translation> <translation id="2933632078076743449">Lần cập nhật gần đây nhất</translation> <translation id="2934999512438267372">Đã cho phép toàn quyền kiểm soát các thiết bị MIDI</translation> -<translation id="2935654492420446828">Thêm một tài khoản trường học vào lúc khác</translation> +<translation id="2935654492420446828">Thêm một tài khoản trường học sau này</translation> <translation id="2936851848721175671">Sao lưu và khôi phục</translation> <translation id="2938225289965773019">Mở liên kết <ph name="PROTOCOL" /></translation> <translation id="2938845886082362843">Xem và xóa dữ liệu đăng nhập lưu trữ trên khóa bảo mật của bạn</translation> @@ -1930,7 +1930,7 @@ <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - Lỗi mạng</translation> <translation id="3248902735035392926">Vấn đề an toàn rất quan trọng. Hãy dành giây lát để <ph name="BEGIN_LINK" />kiểm tra các tiện ích của bạn ngay bây giờ<ph name="END_LINK" /></translation> <translation id="3251759466064201842"><Không Thuộc Chứng chỉ></translation> -<translation id="325238099842880997">Đặt ra các quy tắc cơ bản về việc sử dụng thiết bị kỹ thuật số để định hướng hoạt động vui chơi, khám phá và làm bài tập ở nhà của trẻ</translation> +<translation id="325238099842880997">Đặt các quy tắc cơ bản về việc sử dụng thiết bị kỹ thuật số để giúp trẻ vui chơi, khám phá và làm bài tập ở nhà</translation> <translation id="3253225298092156258">Chưa có</translation> <translation id="3253448572569133955">Tài khoản không xác định</translation> <translation id="3254084468305910013">{COUNT,plural, =0{Không phát hiện thấy vấn đề bảo mật}=1{Phát hiện thấy {COUNT} vấn đề bảo mật}other{Phát hiện thấy {COUNT} vấn đề bảo mật}}</translation> @@ -2667,7 +2667,7 @@ <translation id="4058793769387728514">Kiểm tra Tài liệu Ngay bây giờ</translation> <translation id="406070391919917862">Ứng dụng nền</translation> <translation id="4061374428807229313">Để chia sẻ, hãy nhấp chuột phải vào một thư mục trong ứng dụng Files rồi chọn "Chia sẻ với ứng dụng Parallels Desktop".</translation> -<translation id="406213378265872299">Chế độ hoạt động tùy chỉnh</translation> +<translation id="406213378265872299">Chế độ tùy chỉnh</translation> <translation id="4065876735068446555">Mạng bạn đang sử dụng (<ph name="NETWORK_ID" />) có thể yêu cầu bạn truy cập vào trang đăng nhập của mạng đó.</translation> <translation id="4066207411788646768">Vui lòng kiểm tra kết nối của bạn để xem các máy in hiện có trong mạng</translation> <translation id="4068776064906523561">Vân tay đã lưu</translation> @@ -3484,7 +3484,7 @@ <translation id="5078638979202084724">Đánh dấu trang tất cả các thẻ</translation> <translation id="5078796286268621944">Mã PIN không chính xác</translation> <translation id="5079950360618752063">Sử dụng mật khẩu đề xuất</translation> -<translation id="508059534790499809">Làm mới phiếu Kerberos</translation> +<translation id="508059534790499809">Làm mới vé Kerberos</translation> <translation id="5084230410268011727">Cho phép các trang web sử dụng cảm biến chuyển động và ánh sáng</translation> <translation id="5084328598860513926">Quy trình cấp phép bị gián đoạn. Vui lòng thử lại hoặc liên hệ với quản trị viên hay chủ sở hữu thiết bị. Mã lỗi: <ph name="ERROR_CODE" />.</translation> <translation id="5085162214018721575">Đang kiểm tra bản cập nhật</translation> @@ -3837,7 +3837,7 @@ <translation id="5500709606820808700">Tính năng kiểm tra an toàn đã chạy hôm nay</translation> <translation id="5501809658163361512">{COUNT,plural, =1{Không nhận được <ph name="ATTACHMENTS" /> từ thiết bị <ph name="DEVICE_NAME" />}other{Không nhận được <ph name="ATTACHMENTS" /> từ thiết bị <ph name="DEVICE_NAME" />}}</translation> <translation id="5502500733115278303">Đã nhập từ Firefox</translation> -<translation id="5502915260472117187">Trẻ</translation> +<translation id="5502915260472117187">Một trẻ</translation> <translation id="5503982651688210506">Tiếp tục cho phép <ph name="HOST" /> dùng và di chuyển máy ảnh, cũng như sử dụng micrô</translation> <translation id="5505264765875738116">Các trang web không thể xin phép gửi thông báo</translation> <translation id="5505307013568720083">Hết mực</translation> @@ -4871,7 +4871,7 @@ <translation id="6735304988756581115">Hiển thị cookie và các dữ liệu khác của trang web...</translation> <translation id="6736243959894955139">Địa chỉ</translation> <translation id="6736329909263487977"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />]</translation> -<translation id="6737663862851963468">Xóa phiếu Kerberos</translation> +<translation id="6737663862851963468">Xóa vé Kerberos</translation> <translation id="6739923123728562974">Hiển thị lối tắt trên màn hình</translation> <translation id="6740234557573873150">Đã tạm dừng <ph name="FILE_NAME" /></translation> <translation id="6741063444351041466"><ph name="BEGIN_LINK" />Quản trị viên của bạn<ph name="END_LINK" /> đã tắt tính năng Duyệt web an toàn</translation> @@ -5034,7 +5034,7 @@ <translation id="6922745772873733498">Nhập một mã pin để in</translation> <translation id="6923132443355966645">Cuộn / Nhấp</translation> <translation id="6923633482430812883">Lỗi kết nối mục chia sẻ. Vui lòng kiểm tra để đảm bảo rằng máy chủ tệp mà bạn đang kết nối hỗ trợ SMBv2 trở lên.</translation> -<translation id="6929126689972602640">Tài khoản trường học không hỗ trợ quyền kiểm soát của cha mẹ. Nếu bạn muốn thêm một tài khoản trường học nhằm truy cập vào Google Lớp học và các trang web khác để làm bài tập ở nhà, trước tiên, hãy đăng nhập bằng tài khoản cá nhân của trẻ. Bạn có thể thêm tài khoản trường học vào lúc khác trong phần cài đặt.</translation> +<translation id="6929126689972602640">Tài khoản trường học không hỗ trợ các quyền kiểm soát của cha mẹ. Nếu bạn muốn thêm một tài khoản trường học để truy cập vào Google Lớp học và các trang web khác để làm bài tập ở nhà, trước tiên, hãy đăng nhập bằng tài khoản cá nhân của trẻ. Bạn có thể thêm tài khoản trường học sau này trong phần cài đặt.</translation> <translation id="6929760895658557216">Ok Google</translation> <translation id="6930036377490597025">Khóa bảo mật bên ngoài hoặc cảm biến tích hợp</translation> <translation id="6930161297841867798">{NUM_EXTENSIONS,plural, =1{1 tiện ích đã bị từ chối}other{# tiện ích đã bị từ chối}}</translation> @@ -5599,7 +5599,7 @@ <translation id="7607002721634913082">Đã tạm dừng</translation> <translation id="7608810328871051088">Các tùy chọn Android</translation> <translation id="7609148976235050828">Vui lòng kết nối với Internet và thử lại.</translation> -<translation id="7612655942094160088">Bật các tính năng trên điện thoại đã kết nối.</translation> +<translation id="7612655942094160088">Các tính năng trên điện thoại đã kết nối bật.</translation> <translation id="7614260613810441905">Hỏi khi một trang web muốn chỉnh sửa các tệp hoặc thư mục trên thiết bị (khuyên dùng)</translation> <translation id="761530003705945209">Sao lưu vào Google Drive. Dễ dàng khôi phục dữ liệu hoặc chuyển đổi thiết bị bất cứ lúc nào. Nội dung sao lưu của bạn bao gồm các dữ liệu ứng dụng. Các bản sao lưu được tải lên Google và mã hóa bằng mật khẩu Tài khoản Google của bạn.</translation> <translation id="7615365294369022248">Đã xảy ra lỗi khi thêm một tài khoản</translation> @@ -6236,7 +6236,7 @@ <translation id="8300011035382349091">Chỉnh sửa dấu trang cho thẻ này</translation> <translation id="8300374739238450534">Xanh đậm</translation> <translation id="8300849813060516376">OTASP không thành công</translation> -<translation id="8304383784961451596">Bạn không được phép sử dụng thiết bị này. Vui lòng liên hệ với quản trị viên để có quyền đăng nhập hoặc đăng nhập thông qua một Tài khoản Google được giám sát bằng Family Link.</translation> +<translation id="8304383784961451596">Bạn không được phép sử dụng thiết bị này. Vui lòng liên hệ với quản trị viên để có quyền đăng nhập hoặc dùng một Tài khoản Google được giám sát bằng Family Link để đăng nhập.</translation> <translation id="8308179586020895837">Hỏi nếu <ph name="HOST" /> muốn truy cập máy ảnh của bạn</translation> <translation id="830868413617744215">Beta</translation> <translation id="8309458809024885768">Chứng chỉ đã tồn tại</translation> @@ -6447,7 +6447,7 @@ <translation id="8565650234829130278">Đã cố gắng hạ cấp ứng dụng.</translation> <translation id="8569682776816196752">Không tìm thấy điểm đến nào</translation> <translation id="8571213806525832805">4 tuần qua</translation> -<translation id="8571687764447439720">Thêm phiếu Kerberos</translation> +<translation id="8571687764447439720">Thêm vé Kerberos</translation> <translation id="8574990355410201600">Luôn cho phép phát âm thanh trên <ph name="HOST" /></translation> <translation id="8575286410928791436">Giữ phím <ph name="KEY_EQUIVALENT" /> để thoát</translation> <translation id="8576249514688522074">Chưa khởi chạy</translation> @@ -6472,7 +6472,7 @@ <translation id="8601206103050338563">Xác thực Ứng dụng khách TLS WWW</translation> <translation id="8602851771975208551">Một chương trình khác trên máy tính của bạn đã thêm một ứng dụng có thể thay đổi cách Chrome hoạt động.</translation> <translation id="8605428685123651449">Bộ nhớ SQLite</translation> -<translation id="8608618451198398104">Thêm phiếu Kerberos</translation> +<translation id="8608618451198398104">Thêm vé Kerberos</translation> <translation id="860909219589324847">Không bao giờ dùng dữ liệu di động để truyền tải</translation> <translation id="8609465669617005112">Di chuyển lên</translation> <translation id="8610103157987623234">Định dạng không chính xác. Hãy thử lại</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb index e897f0b8..89b6cf7 100644 --- a/chrome/app/resources/generated_resources_zh-HK.xtb +++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -17,6 +17,7 @@ <translation id="1012794136286421601">系統正在同步處理您的文件、試算表、簡報和繪圖檔案。開啟「Google 雲端硬碟」應用程式即可上網或離線存取您的檔案。</translation> <translation id="1012876632442809908">USB-C 裝置 (前方連接埠)</translation> <translation id="1013707859758800957">已允許無沙箱防護的外掛程式在此網頁上執行。</translation> +<translation id="1015041505466489552">TrackPoint</translation> <translation id="1015318665228971643">修改資料夾名稱</translation> <translation id="1015578595646638936">{NUM_DAYS,plural, =1{今天是更新 <ph name="DEVICE_TYPE" /> 的最後一天}other{請在 {NUM_DAYS} 天內更新 <ph name="DEVICE_TYPE" />}}</translation> <translation id="1016566241875885511">其他資料 (選填)</translation> @@ -928,7 +929,7 @@ <translation id="204914487372604757">建立捷徑</translation> <translation id="2050339315714019657">直向</translation> <translation id="2053312383184521053">閒置狀態數據</translation> -<translation id="2054665754582400095">你的使用狀態</translation> +<translation id="2054665754582400095">您的狀態</translation> <translation id="2055585478631012616">您將會從這些網站 (包括已開啟的分頁) 登出</translation> <translation id="205560151218727633">「Google 助理」標誌</translation> <translation id="2058456167109518507">偵測到的裝置</translation> @@ -1215,7 +1216,7 @@ <translation id="2387052489799050037">前往主畫面</translation> <translation id="2387458720915042159">Proxy 連接類型</translation> <translation id="2390347491606624519">無法連線至 Proxy,請重新登入</translation> -<translation id="2390782873446084770">Wi-Fi 同步處理</translation> +<translation id="2390782873446084770">Wi-Fi Sync</translation> <translation id="2391082728065870591">傳送意見反映報告</translation> <translation id="2391419135980381625">標準字型</translation> <translation id="2392163307141705938">您已達到家長為 <ph name="IDS_SHORT_PRODUCT_NAME" /> 設定的使用時間限制。</translation> @@ -3232,7 +3233,7 @@ <translation id="4761104368405085019">使用您的麥克風</translation> <translation id="4762718786438001384">裝置磁碟的儲存空間嚴重不足</translation> <translation id="4763408175235639573">系統在您瀏覽此網頁時已設定下列 Cookie</translation> -<translation id="4764368918650455114">請確認兩部裝置都已解鎖且彼此相鄰,並已開啟藍牙功能。如果要與 Chromebook 分享內容,請確認該 Chromebook 已開啟鄰近分享功能 (按一下電腦右下角顯示的時間欄位就能開啟狀態區,接著可以從中選取鄰近分享)。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation> +<translation id="4764368918650455114">請確保兩部裝置都已解鎖並放在一起,且已開啟藍牙功能。如果您要 Chromebook 分享檔案,請確認該 Chromebook 已開啟「咫尺共享」 (請透過選取時間開啟狀態區,然後選取「咫尺共享」)。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation> <translation id="4765582662863429759">允許「Android 訊息」由您的手機轉送短訊至 Chromebook</translation> <translation id="476598255842811483">除非您在裝置上開啟「咫尺共享」,否則沒有人可與您分享內容</translation> <translation id="4768332406694066911">您具備下列組織的識別憑證</translation> @@ -3395,7 +3396,7 @@ <translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> - <ph name="PROFILE_NAME" /></translation> <translation id="496185450405387901">您的管理員已安裝此應用程式。</translation> <translation id="4964455510556214366">排列方式</translation> -<translation id="496446150016900060">將 Wi-Fi 網路同步至你的手機</translation> +<translation id="496446150016900060">將 Wi-Fi 網絡同步至您的手機</translation> <translation id="4965808351167763748">您確定要設定此裝置以執行 Hangouts Meet 嗎?</translation> <translation id="496888482094675990">「檔案」應用程式可供快速存取您存放在「Google 雲端硬碟」、外部儲存空間或 Chrome 作業系統裝置中的檔案。</translation> <translation id="4971412780836297815">完成後開啟</translation> @@ -3702,7 +3703,7 @@ <translation id="5341980496415249280">正在封裝,請稍候…</translation> <translation id="5342091991439452114">PIN 必須至少有 <ph name="MINIMUM" /> 位數字</translation> <translation id="5344036115151554031">正在還原 Linux</translation> -<translation id="5345916423802287046">當你登入時啟動應用程式</translation> +<translation id="5345916423802287046">當您登入時啟動應用程式</translation> <translation id="5350293332385664455">關閉「Google 助理」</translation> <translation id="535123479159372765">從其他裝置複製的文字</translation> <translation id="5352033265844765294">時間戳記</translation> @@ -4012,7 +4013,7 @@ <translation id="5704875434923668958">同步至</translation> <translation id="5705005699929844214">一律顯示無障礙功能選項</translation> <translation id="5705882733397021510">返回</translation> -<translation id="5707117624115653804">針對支援這項設定的應用程式和網站,自訂字幕大小和風格</translation> +<translation id="5707117624115653804">為支援此設定的應用程式和網站自訂字幕大小和樣式</translation> <translation id="5707185214361380026">無法載入下列來源的擴充功能:</translation> <translation id="5708171344853220004">Microsoft 主要名稱</translation> <translation id="5709557627224531708">將 Chrome 設為預設瀏覽器</translation> @@ -4176,7 +4177,7 @@ <translation id="5904614460720589786">設定發生問題,因此無法設定 <ph name="APP_NAME" />。請聯絡您的管理員。錯誤代碼:<ph name="ERROR_CODE" />。</translation> <translation id="5906655207909574370">即將更新至最新版本!重新啟動您的裝置即可完成更新程序。</translation> <translation id="5906732635754427568">系統會從裝置中移除與此應用程式相關的資料。</translation> -<translation id="5908474332780919512">當你登入時啟動應用程式</translation> +<translation id="5908474332780919512">當您登入時啟動應用程式</translation> <translation id="5908695239556627796">滑鼠捲動速度</translation> <translation id="5908769186679515905">禁止網站執行 Flash</translation> <translation id="5910363049092958439">另存圖片為(&V)…</translation> @@ -4716,7 +4717,7 @@ <translation id="6532527800157340614">無法擷取您的存取憑證,因此無法登入。請檢查您的網絡連線,然後再試一次。</translation> <translation id="6532663472409656417">已註冊企業</translation> <translation id="6535331821390304775">永遠允許 <ph name="ORIGIN" /> 使用相關聯的應用程式開啟這類連結</translation> -<translation id="6537613839935722475">名稱可以包含字母、數字和連字號 (-)</translation> +<translation id="6537613839935722475">名稱可以使用字母、數字和連字號 (-)</translation> <translation id="6538635548667167211">目前嘅數據用量設定係「用流動數據」</translation> <translation id="654039047105555694"><ph name="BEGIN_BOLD" />注意:<ph name="END_BOLD" />除非您瞭解這項功能的用途或是收到相關指示,否則請不要啟用這項功能,因為收集數據可能會導致系統效能降低。</translation> <translation id="6541638731489116978">此網站被禁止存取您的動作感應器。</translation> @@ -4805,7 +4806,7 @@ <translation id="6650234781371031356">您已將 <ph name="WEBSITE" /> 的密碼儲存在此裝置和 Google 帳戶中。您要刪除哪一個密碼?</translation> <translation id="665061930738760572">在新視窗中開啟(&N)</translation> <translation id="6651237644330755633">信任這個用來識別網站的憑證</translation> -<translation id="6651495917527016072">將 Wi-Fi 網路同步至你的手機。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation> +<translation id="6651495917527016072">將 Wi-Fi 網絡同步至您的手機。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation> <translation id="665355505818177700">只有 x86_64 平台支援 Chrome <ph name="MS_AD_NAME" /> 整合,採用 ARM 或 x86 平台的 Chromebook 不支援此功能。</translation> <translation id="6654509035557065241">偏好網絡</translation> <translation id="6655190889273724601">開發人員模式</translation> @@ -5409,7 +5410,7 @@ <translation id="7375235221357833624">{0,plural, =1{請在 1 小時內更新裝置}other{請在 # 小時內更新裝置}}</translation> <translation id="7376553024552204454">移動滑鼠時突顯滑鼠游標</translation> <translation id="7377451353532943397">繼續封鎖感應器存取權</translation> -<translation id="7378611153938412599">低強度密碼很容易讓有心人士猜中,請務必建立高強度密碼。<ph name="BEGIN_LINK" />查看更多安全性提示。<ph name="END_LINK" /></translation> +<translation id="7378611153938412599">安全性弱的密碼很容易被猜到。請務必設定安全性強的密碼。<ph name="BEGIN_LINK" />查看更多安全提示。<ph name="END_LINK" /></translation> <translation id="73786666777299047">開啟 Chrome 網上應用程式商店</translation> <translation id="7378812711085314936">獲取數據連線</translation> <translation id="7380622428988553498">裝置名稱包含無效字元</translation> @@ -5934,7 +5935,7 @@ <translation id="7959074893852789871">檔案含有多個憑證,但某些無法匯入:</translation> <translation id="7961015016161918242">從來沒有</translation> <translation id="7963001036288347286">觸控板加速</translation> -<translation id="7963608432878156675">這個名稱會向其他使用藍牙和網路連線的裝置顯示</translation> +<translation id="7963608432878156675">此名稱會向其他裝置的藍牙及網絡連線顯示。</translation> <translation id="7963826112438303517">「Google 助理」會使用這些錄音檔案和您的語音要求來建立及更新您的語音模型;語音模型只會儲存在已啟用 Voice Match 的裝置上。您可在「Google 助理」設定中查看或重新調校語音活動。</translation> <translation id="7966241909927244760">複製圖片位址(&O)</translation> <translation id="7966571622054096916">{COUNT,plural, =1{書籤清單入面有 1 個項目}other{書籤清單入面有 {COUNT} 個項目}}</translation> @@ -6398,7 +6399,7 @@ <translation id="850875081535031620">未發現任何有害軟件</translation> <translation id="8509177919508253835">重設安全密鑰並建立 PIN</translation> <translation id="8509646642152301857">拼字檢查字典下載失敗。</translation> -<translation id="8512396579636492893">{COUNT,plural, =0{未發現任何低強度密碼}=1{發現 {COUNT} 組低強度密碼}other{發現 {COUNT} 組低強度密碼}}</translation> +<translation id="8512396579636492893">{COUNT,plural, =0{找不到安全性弱的密碼}=1{找到 {COUNT} 個安全性弱的密碼}other{找到 {COUNT} 個安全性弱的密碼}}</translation> <translation id="8512476990829870887">結束處理程序</translation> <translation id="851263357009351303">永遠允許 <ph name="HOST" /> 顯示圖片</translation> <translation id="8513108775083588393">自動旋轉</translation> @@ -6872,7 +6873,7 @@ <translation id="9039014462651733343">{NUM_ATTEMPTS,plural, =1{您還可再試 1 次。}other{您還可再試 # 次。}}</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9040661932550800571">要更新 <ph name="ORIGIN" /> 的密碼嗎?</translation> -<translation id="9041049756004505730">顯示咗即時字幕,㩒 ⌘ + Option + 向上掣或者向下掣就可以循環轉換對焦</translation> +<translation id="9041049756004505730">顯示咗即時字幕,㩒 ⌘ + Option + 向上掣或者向下掣就可以循環轉換焦點</translation> <translation id="9041692268811217999">管理員已停用電腦的本機檔案存取權</translation> <translation id="904224458472510106">此操作無法復原</translation> <translation id="9042893549633094279">私隱權和安全性</translation>
diff --git a/chrome/app/resources/google_chrome_strings_am.xtb b/chrome/app/resources/google_chrome_strings_am.xtb index 22c8574..18342e2 100644 --- a/chrome/app/resources/google_chrome_strings_am.xtb +++ b/chrome/app/resources/google_chrome_strings_am.xtb
@@ -82,6 +82,7 @@ <translation id="2926676257163822632">ደካማ የይለፍ ቃላት ለመገመት ቀላል ናቸው። Chrome <ph name="BEGIN_LINK" /> ለእርስዎ ጠንካራ የይለፍ ቃላትን እንዲፈጥር እና እንዲያስታውስ<ph name="END_LINK" /> ይፍቀዱ።</translation> <translation id="2929907241665500097">Chrome አልተዘመነም፣ የሆነ ስክህተት ተከስቷል። <ph name="BEGIN_LINK" />የChrome ዝማኔ ችግሮችን እና ያልተሳኩ ዝማኔዎችን ያስተካክሉ።<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - በአውታረ መረብ ወደ መለያ መግባት - Chrome</translation> +<translation id="298099161970687941">Chrome ሲከፍት ጠይቅ</translation> <translation id="3037838751736561277">Google Chrome በጀርባ ሁኔታ ላይ ነው።</translation> <translation id="3059710691562604940">የጥንቃቄ አሰሳ ጠፍቷል። Chrome እንዲያበሩት ይመክራል።</translation> <translation id="3065168410429928842">የChrome ትር</translation>
diff --git a/chrome/app/resources/google_chrome_strings_az.xtb b/chrome/app/resources/google_chrome_strings_az.xtb index 77a1113..b347784 100644 --- a/chrome/app/resources/google_chrome_strings_az.xtb +++ b/chrome/app/resources/google_chrome_strings_az.xtb
@@ -80,6 +80,7 @@ <translation id="2926676257163822632">Zəif parolları tapmaq asandır. Chrome'un <ph name="BEGIN_LINK" />sizin üçün güclü parollar yaratmasına və yadda saxlamasına<ph name="END_LINK" /> imkan verin.</translation> <translation id="2929907241665500097">Chrome güncəllənmədi, xəta baş verdi. <ph name="BEGIN_LINK" />Chrome'un güncəllənmə problemlərini və alınmayan güncəllənmələri həll edin.<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - Şəbəkəyə Giriş - Chrome</translation> +<translation id="298099161970687941">Chrome açıldığı zaman soruşulsun</translation> <translation id="3037838751736561277">Google Chrome arxa fon rejimindədir.</translation> <translation id="3059710691562604940">Təhlükəsiz Baxış deaktivdir. Chrome onu aktiv etməyi tövsiyə edir.</translation> <translation id="3065168410429928842">Chrome Paneli</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ca.xtb b/chrome/app/resources/google_chrome_strings_ca.xtb index dd45632..7949c9f 100644 --- a/chrome/app/resources/google_chrome_strings_ca.xtb +++ b/chrome/app/resources/google_chrome_strings_ca.xtb
@@ -78,6 +78,7 @@ <translation id="2926676257163822632">Les contrasenyes poc segures són fàcils d'endevinar. Deixa que Chrome <ph name="BEGIN_LINK" />creï i recordi contrasenyes segures en nom teu<ph name="END_LINK" />.</translation> <translation id="2929907241665500097">No s'ha actualitzat Chrome. S'ha produït un error. <ph name="BEGIN_LINK" />Soluciona els problemes i errors d'actualització de Chrome<ph name="END_LINK" />.</translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - Inici de sessió a la xarxa - Chrome</translation> +<translation id="298099161970687941">Pregunta'm quan Chrome s'obri</translation> <translation id="3037838751736561277">Google Chrome està en mode de segon pla.</translation> <translation id="3059710691562604940">Navegació segura està desactivada. Chrome recomana activar-la.</translation> <translation id="3065168410429928842">Pestanya de Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_cs.xtb b/chrome/app/resources/google_chrome_strings_cs.xtb index cb75aa15..d4fb12e 100644 --- a/chrome/app/resources/google_chrome_strings_cs.xtb +++ b/chrome/app/resources/google_chrome_strings_cs.xtb
@@ -82,6 +82,7 @@ <translation id="2926676257163822632">Slabá hesla lze snadno uhodnout. Chrome vám může <ph name="BEGIN_LINK" />vytvářet a ukládat silná hesla<ph name="END_LINK" />.</translation> <translation id="2929907241665500097">Prohlížeč Chrome se neaktualizoval, něco se pokazilo. <ph name="BEGIN_LINK" />Vyřešte problémy se stahováním aktualizací Chromu a neúspěšnými aktualizacemi.<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> – přihlášení k síti – Chrome</translation> +<translation id="298099161970687941">Při otevření Chromu se zeptat</translation> <translation id="3037838751736561277">Google Chrome je v režimu na pozadí.</translation> <translation id="3059710691562604940">Bezpečné prohlížení je vypnuté. Chrome ho doporučuje zapnout.</translation> <translation id="3065168410429928842">Karta prohlížeče Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_da.xtb b/chrome/app/resources/google_chrome_strings_da.xtb index 08495ca..e0f2eeb 100644 --- a/chrome/app/resources/google_chrome_strings_da.xtb +++ b/chrome/app/resources/google_chrome_strings_da.xtb
@@ -78,6 +78,7 @@ <translation id="2926676257163822632">Svage adgangskoder er nemme at gætte. Få Chrome <ph name="BEGIN_LINK" />til at oprette og huske stærke adgangskoder for dig<ph name="END_LINK" />.</translation> <translation id="2929907241665500097">Chrome blev ikke opdateret, da der opstod en fejl. <ph name="BEGIN_LINK" />Løs problemer med opdatering af Chrome og mislykkede opdateringer.<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> – Login på netværk – Chrome</translation> +<translation id="298099161970687941">Spørg, når Chrome åbnes</translation> <translation id="3037838751736561277">Google Chrome kører i baggrunden.</translation> <translation id="3059710691562604940">Beskyttet browsing er deaktiveret. Chrome anbefaler, at du aktiverer funktionen.</translation> <translation id="3065168410429928842">Fanen Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_el.xtb b/chrome/app/resources/google_chrome_strings_el.xtb index a0d7de9..a7aba39 100644 --- a/chrome/app/resources/google_chrome_strings_el.xtb +++ b/chrome/app/resources/google_chrome_strings_el.xtb
@@ -80,6 +80,7 @@ <translation id="2926676257163822632">Είναι εύκολο να μαντέψει κανείς τους ασθενείς κωδικούς πρόσβασης. Επιτρέψτε στο Chrome να <ph name="BEGIN_LINK" />δημιουργεί και να απομνημονεύει ισχυρούς κωδικούς πρόσβασης για εσάς<ph name="END_LINK" />.</translation> <translation id="2929907241665500097">Δεν έγινε ενημέρωση του Chrome, παρουσιάστηκε κάποιο σφάλμα. <ph name="BEGIN_LINK" />Επιδιορθώστε τα προβλήματα ενημέρωσης και αποτυχημένων ενημερώσεων του Chrome.<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - Σύνδεση δικτύου - Chrome</translation> +<translation id="298099161970687941">Να γίνεται ερώτηση όταν ανοίγει το Chrome.</translation> <translation id="3037838751736561277">Το Google Chrome εκτελείται στο παρασκήνιο.</translation> <translation id="3059710691562604940">Η Ασφαλής περιήγηση είναι απενεργοποιημένη. Το Chrome συνιστά να την ενεργοποιήσετε.</translation> <translation id="3065168410429928842">Καρτέλα Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_es.xtb b/chrome/app/resources/google_chrome_strings_es.xtb index 374cc123..245e7e7 100644 --- a/chrome/app/resources/google_chrome_strings_es.xtb +++ b/chrome/app/resources/google_chrome_strings_es.xtb
@@ -82,6 +82,7 @@ <translation id="2926676257163822632">Las contraseñas poco seguras son fáciles de adivinar. Permite que Chrome <ph name="BEGIN_LINK" />cree y recuerde contraseñas seguras por ti<ph name="END_LINK" />.</translation> <translation id="2929907241665500097">Chrome no se ha actualizado, algo no va bien. <ph name="BEGIN_LINK" />Soluciona los problemas y errores de actualización de Chrome<ph name="END_LINK" />.</translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" />, inicio de sesión en la red, Chrome</translation> +<translation id="298099161970687941">Preguntar al abrir Chrome</translation> <translation id="3037838751736561277">Google Chrome está en modo de segundo plano.</translation> <translation id="3059710691562604940">La función Navegación segura está desactivada. Chrome recomienda activarla.</translation> <translation id="3065168410429928842">Pestaña de Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fr.xtb b/chrome/app/resources/google_chrome_strings_fr.xtb index 10795514..a373d507 100644 --- a/chrome/app/resources/google_chrome_strings_fr.xtb +++ b/chrome/app/resources/google_chrome_strings_fr.xtb
@@ -78,6 +78,7 @@ <translation id="2871893339301912279">Vous êtes connecté à Google Chrome.</translation> <translation id="2885378588091291677">Gestionnaire de tâches</translation> <translation id="2888126860611144412">À propos de Chrome</translation> +<translation id="2926676257163822632">Les mots de passe peu sécurisés sont faciles à deviner. Laissez Chrome <ph name="BEGIN_LINK" />créer et mémoriser des mots de passe sécurisés à votre place<ph name="END_LINK" />.</translation> <translation id="2929907241665500097">Échec de la mise à jour de Chrome en raison d'une erreur. <ph name="BEGIN_LINK" />Découvrez comment résoudre ce type de problème.<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - Connexion au réseau - Chrome</translation> <translation id="3037838751736561277">Google Chrome est exécuté en mode arrière-plan.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_gl.xtb b/chrome/app/resources/google_chrome_strings_gl.xtb index 3b1149f..5eb2c2c8 100644 --- a/chrome/app/resources/google_chrome_strings_gl.xtb +++ b/chrome/app/resources/google_chrome_strings_gl.xtb
@@ -79,8 +79,10 @@ <translation id="2871893339301912279">Iniciaches sesión en Chrome.</translation> <translation id="2885378588091291677">Xestor de tarefas</translation> <translation id="2888126860611144412">Acerca de Chrome</translation> +<translation id="2926676257163822632">Os contrasinais pouco seguros son fáciles de adiviñar. Permite que Chrome <ph name="BEGIN_LINK" />cree e lembre contrasinais seguros por ti<ph name="END_LINK" />.</translation> <translation id="2929907241665500097">Chrome non se actualizou, xa que se produciu un erro. <ph name="BEGIN_LINK" />Soluciona os problemas de actualización de Chrome e as actualizacións que non se puidesen realizar<ph name="END_LINK" />.</translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> (inicio de sesión de rede, Chrome)</translation> +<translation id="298099161970687941">Preguntar ao abrir Chrome</translation> <translation id="3037838751736561277">Google Chrome está no modo de segundo plano.</translation> <translation id="3059710691562604940">A opción Navegación segura está desactivada. Chrome recomenda activala.</translation> <translation id="3065168410429928842">Pestana de Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_gu.xtb b/chrome/app/resources/google_chrome_strings_gu.xtb index 007f56bf..61da003c 100644 --- a/chrome/app/resources/google_chrome_strings_gu.xtb +++ b/chrome/app/resources/google_chrome_strings_gu.xtb
@@ -79,6 +79,7 @@ <translation id="2871893339301912279">તમે હમણાં Chrome માં સાઇન ઇન છો!</translation> <translation id="2885378588091291677">કાર્ય વ્યવસ્થાપક</translation> <translation id="2888126860611144412">Chrome વિશે</translation> +<translation id="2926676257163822632">નબળા પાસવર્ડનું અનુમાન કરવું સરળ હોય છે. Chromeને <ph name="BEGIN_LINK" />તમારા માટે સશક્ત પાસવર્ડ બનાવવા અને યાદ રાખવા<ph name="END_LINK" />ની મંજૂરી આપો.</translation> <translation id="2929907241665500097">કંઈક ખોટુ થયું હોવાને કારણે Chrome અપડેટ કરી શકાયું નથી. <ph name="BEGIN_LINK" />Chrome અપડેટ કરવામાં આવતી સમસ્યાઓ અને નિષ્ફળ થયેલા અપડેટ સુધારો.<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - નેટવર્ક સાઇન ઇન - Chrome</translation> <translation id="3037838751736561277">Google Chrome પૃષ્ઠભૂમિ મોડમાં છે.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hi.xtb b/chrome/app/resources/google_chrome_strings_hi.xtb index 8c1162c..0af73f3 100644 --- a/chrome/app/resources/google_chrome_strings_hi.xtb +++ b/chrome/app/resources/google_chrome_strings_hi.xtb
@@ -114,7 +114,7 @@ <translation id="4050175100176540509">महत्वपूर्ण सुरक्षा सुधार और नई सुविधाएं नवीनतम वर्शन में उपलब्ध हैं.</translation> <translation id="4053720452172726777">Google Chrome को पसंद के मुताबिक बनाएं और नियंत्रित करें</translation> <translation id="4110895483821904099">Chrome पर अपनी नई प्रोफ़ाइल सेट अप करें</translation> -<translation id="4127976662406264741">{NUM_MINS,plural, =1{Chrome को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: एक मिनट पहले की गई.}one{Chrome को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: {NUM_MINS} मिनट पहले की गई.}other{Chrome को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: {NUM_MINS} मिनट पहले की गई.}}</translation> +<translation id="4127976662406264741">{NUM_MINS,plural, =1{Chrome को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: 1 मिनट पहले की गई.}one{Chrome को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: {NUM_MINS} मिनट पहले की गई.}other{Chrome को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: {NUM_MINS} मिनट पहले की गई.}}</translation> <translation id="4143243756087420366">Chrome पर नाम और तस्वीर</translation> <translation id="4147555960264124640">आप प्रबंधित खाते से साइन इन कर रहे हैं और उसके एडमिन को अपनी Google Chrome प्रोफ़ाइल पर नियंत्रण दे रहे हैं. आपका Chrome डेटा, जैसे आपके ऐप्लिकेशन, बुकमार्क, इतिहास, पासवर्ड, और दूसरे सेटिंग <ph name="USER_NAME" /> से स्थायी रूप से जुड़ जाएंगे. आप Google खाता डैशबोर्ड से इस डेटा को मिटा सकेंगे, लेकिन आप किसी दूसरे खाते से इस डेटा को जोड़ नहीं सकेंगे. <ph name="LEARN_MORE" /></translation> <translation id="4149882025268051530">इंस्टॉलर, संग्रह को विस्तारित करने में विफल हुआ. कृपया Google Chrome फिर से डाउनलोड करें.</translation> @@ -164,7 +164,7 @@ <translation id="532046782124376502">चेतावनी: Google Chrome आपका ब्राउज़िंग इतिहास रिकॉर्ड करने से एक्सटेंशन को नहीं रोक सकता है. गुप्त मोड में इस एक्सटेंशन को बंद करने के लिए, इस विकल्प को चुना जाना हटाएं.</translation> <translation id="5386244825306882791">इससे यह भी नियंत्रित होता है कि जब आप Chrome को चालू करते हैं या ऑम्निबॉक्स से खोजते हैं तब कौन सा पेज दिखाया जाए.</translation> <translation id="5394833366792865639">Chrome का टैब शेयर करें</translation> -<translation id="5409605318138185493">{NUM_DAYS,plural, =1{Chrome को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: एक दिन पहले की गई.}one{Chrome को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: {NUM_DAYS} दिन पहले की गई.}other{Chrome को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: {NUM_DAYS} दिन पहले की गई.}}</translation> +<translation id="5409605318138185493">{NUM_DAYS,plural, =1{Chrome को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: 1 दिन पहले की गई.}one{Chrome को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: {NUM_DAYS} दिन पहले की गई.}other{Chrome को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: {NUM_DAYS} दिन पहले की गई.}}</translation> <translation id="5430073640787465221">आपकी पसंदीदा फ़ाइल खराब या अमान्य है. Google Chrome आपकी सेटिंग बहाल नहीं कर सकता.</translation> @@ -282,7 +282,7 @@ <translation id="9067395829937117663">Google Chrome के लिए Windows 7 या उसके बाद के वर्शन की आवश्यकता होती है.</translation> <translation id="911206726377975832">अपने ब्राउज़िंग डेटा भी मिटाएं?</translation> <translation id="9138603949443464873">अपने बदलाव लागू करने के लिए, Chrome को फिर से लॉन्च करें</translation> -<translation id="9155112650704618965">{NUM_HOURS,plural, =1{Chrome को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: एक घंटा पहले की गई.}one{Chrome को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: {NUM_HOURS} घंटे पहले की गई.}other{Chrome को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: {NUM_HOURS} घंटे पहले की गई.}}</translation> +<translation id="9155112650704618965">{NUM_HOURS,plural, =1{Chrome को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: 1 घंटे पहले की गई.}one{Chrome को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: {NUM_HOURS} घंटे पहले की गई.}other{Chrome को आपके कंप्यूटर पर, नुकसान पहुंचाने वाला कोई ऐसा सॉफ़्टवेयर नहीं मिला जिसके बारे में पहले से जानकारी हो. पिछली जांच: {NUM_HOURS} घंटे पहले की गई.}}</translation> <translation id="919706545465235479">सिंक शुरू करने के लिए Chrome अपडेट करें</translation> <translation id="989369509083708165">Google Chrome आपका डिफ़ॉल्ट ब्राउज़र है</translation> </translationbundle> \ No newline at end of file
diff --git a/chrome/app/resources/google_chrome_strings_hr.xtb b/chrome/app/resources/google_chrome_strings_hr.xtb index 2b867885..21daa76 100644 --- a/chrome/app/resources/google_chrome_strings_hr.xtb +++ b/chrome/app/resources/google_chrome_strings_hr.xtb
@@ -78,6 +78,7 @@ <translation id="2926676257163822632">Slabe zaporke lako je pogoditi. Neka Chrome <ph name="BEGIN_LINK" />izradi i zapamti snažne zaporke za vas<ph name="END_LINK" />.</translation> <translation id="2929907241665500097">Chrome se nije ažurirao zbog pogreške. <ph name="BEGIN_LINK" />Riješite probleme s ažuriranjem i neuspjela ažuriranja Chromea.<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> – Prijava na mrežu – Chrome</translation> +<translation id="298099161970687941">Pitaj kad se otvori Chrome</translation> <translation id="3037838751736561277">Google Chrome radi u pozadini.</translation> <translation id="3059710691562604940">Sigurno pregledavanje je isključeno. Chrome preporučuje da ga uključite.</translation> <translation id="3065168410429928842">Chromeova kartica</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hy.xtb b/chrome/app/resources/google_chrome_strings_hy.xtb index 35fb39c..f1028e9 100644 --- a/chrome/app/resources/google_chrome_strings_hy.xtb +++ b/chrome/app/resources/google_chrome_strings_hy.xtb
@@ -203,7 +203,7 @@ <translation id="6750954913813541382">Ուղղագրական սխալները շտկելու համար Chrome-ը Google-ին է ուղարկում դիտարկիչում ձեր մուտքագրած տեքստը</translation> <translation id="677276454032249905">Փակե՞լ Chrome-ը։</translation> <translation id="683440813066116847">Թույլատրել Google Chrome Canary-ում տվյալների մուտքային հոսքի փոխանցումը mDNS հաղորդակարգով:</translation> -<translation id="6861451385429799394"><ph name="BEGIN_LINK" />Ձեր ադմինիստրատորն<ph name="END_LINK" /> անջատել է Chrome-ի՝ վնասաբեր ծրագրերի ստուգման գործառույթը</translation> +<translation id="6861451385429799394"><ph name="BEGIN_LINK" />Ձեր ադմինիստրատորը<ph name="END_LINK" /> անջատել է Chrome-ի՝ վնասաբեր ծրագրերի ստուգման գործառույթը</translation> <translation id="6885412569789873916">Chrome Բետա հավելվածներ</translation> <translation id="6943584222992551122">Այս օգտատիրոջ այցելությունների պատմությունը կջնջվի սարքից։ Տվյալները վերականգնելու համար Chrome դիտարկիչում մուտք գործեք <ph name="USER_EMAIL" /> հաշվով։</translation> <translation id="6967962315388095737">Թույլատրել Google Chrome Բետայում մուտքային հոսքի փոխանցումը mDNS հաղորդակարգով:</translation>
diff --git a/chrome/app/resources/google_chrome_strings_is.xtb b/chrome/app/resources/google_chrome_strings_is.xtb index 1b6264d6..091df01 100644 --- a/chrome/app/resources/google_chrome_strings_is.xtb +++ b/chrome/app/resources/google_chrome_strings_is.xtb
@@ -82,6 +82,7 @@ <translation id="2926676257163822632">Léleg aðgangsorð eru þau sem auðvelt er að giska á. Leyfðu Chrome <ph name="BEGIN_LINK" />að búa til traust aðgangsorð fyrir þig og muna þau<ph name="END_LINK" />.</translation> <translation id="2929907241665500097">Chrome uppfærðist ekki, eitthvað fór úrskeiðis. <ph name="BEGIN_LINK" />Lagaðu uppfærsluvandamál Chrome og uppfærslur sem mistókust.<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> – innskráning á net – Chrome</translation> +<translation id="298099161970687941">Spyrja þegar Chrome opnast</translation> <translation id="3037838751736561277">Google Chrome er í bakgrunnsstillingu.</translation> <translation id="3059710691562604940">Slökkt er á öruggri vefskoðun. Chrome mælir með því að kveikt sé á henni.</translation> <translation id="3065168410429928842">Chrome flipi</translation>
diff --git a/chrome/app/resources/google_chrome_strings_it.xtb b/chrome/app/resources/google_chrome_strings_it.xtb index 32b6c65..d56c405 100644 --- a/chrome/app/resources/google_chrome_strings_it.xtb +++ b/chrome/app/resources/google_chrome_strings_it.xtb
@@ -78,6 +78,7 @@ <translation id="2926676257163822632">Le password inefficaci sono facili da indovinare. Consenti a Chrome di <ph name="BEGIN_LINK" />creare e memorizzare password efficaci per te<ph name="END_LINK" />.</translation> <translation id="2929907241665500097">Si è verificato un errore: Chrome non si è aggiornato. <ph name="BEGIN_LINK" />Risolvi i problemi di aggiornamento e gli aggiornamenti non riusciti di Chrome.<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - Accesso rete - Chrome</translation> +<translation id="298099161970687941">Chiedi all'apertura di Chrome</translation> <translation id="3037838751736561277">Google Chrome è in modalità background.</translation> <translation id="3059710691562604940">Navigazione sicura è disattivata. Chrome consiglia di attivarla.</translation> <translation id="3065168410429928842">Scheda Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_iw.xtb b/chrome/app/resources/google_chrome_strings_iw.xtb index 6d56b09..c34c9abe 100644 --- a/chrome/app/resources/google_chrome_strings_iw.xtb +++ b/chrome/app/resources/google_chrome_strings_iw.xtb
@@ -16,7 +16,7 @@ <translation id="1302523850133262269">המתן בזמן ש-Chrome מתקין את עדכוני המערכת האחרונים.</translation> <translation id="1355000804395496115">כדאי להשתמש בפרופילים שונים ב-Chrome כדי להפריד בין גלישה בעבודה וגלישה אישית, או בין אנשים שונים שמשתמשים במכשיר הזה</translation> <translation id="137466361146087520">גרסת הבטא של Google Chrome</translation> -<translation id="1399397803214730675">במחשב זה מותקנת כבר גירסה עדכנית יותר של Google Chrome. אם התוכנה אינה פועלת, הסר את ההתקנה של Google Chrome ונסה שוב.</translation> +<translation id="1399397803214730675">במחשב זה מותקנת כבר גרסה עדכנית יותר של Google Chrome. אם התוכנה אינה פועלת, יש להסיר את ההתקנה של Google Chrome ולנסות שוב.</translation> <translation id="140541193409212341">אירעה שגיאה בזמן ש-Chrome בדק אם יש במחשב תוכנה מזיקה</translation> <translation id="1434626383986940139">אפליקציות Chrome – קאנארי</translation> <translation id="1513277449617685876">כדי להפריד בין גלישה אישית לגלישה של <ph name="NEW_USER" />, יש ליצור פרופיל חדש ב-Chrome</translation> @@ -143,7 +143,7 @@ <translation id="4631713731678262610">הסתר בתפריט Chrome</translation> <translation id="4633000520311261472">כדי לשפר את האבטחה של Chrome, השבתנו חלק מהתוספים שלא רשומים ב<ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> וייתכן שנוספו ללא ידיעתך.</translation> <translation id="4728575227883772061">ההתקנה נכשלה בשל שגיאה לא צפויה. אם Google Chrome פועל כעת, סגור אותו ונסה שוב.</translation> -<translation id="4750550185319565338">הפעל מחדש את Chrome כדי להפעיל את <ph name="PLUGIN_NAME" /></translation> +<translation id="4750550185319565338">יש להפעיל מחדש את Chrome כדי להפעיל את <ph name="PLUGIN_NAME" /></translation> <translation id="4754614261631455953">גרסה ניסיונית של Google Chrome (mDNS-In)</translation> <translation id="4771048833395599659">Chrome חסם את הקובץ הזה כי הוא עלול להיות מסוכן.</translation> <translation id="479167709087336770">נעשה כאן שימוש בבדיקת האיות של חיפוש Google. הטקסט המוקלד בדפדפן נשלח אל Google. אפשר לשנות את ההתנהגות הזו בכל שלב דרך ההגדרות.</translation> @@ -176,21 +176,21 @@ <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> - Google Chrome בגרסת Canary</translation> <translation id="5804318322022881572">לא ניתן היה להפעיל את Chrome. יש לנסות שוב.</translation> <translation id="5867197326698922595">Google Chrome מנסה לערוך את הסיסמאות.</translation> -<translation id="5895138241574237353">הפעל מחדש</translation> +<translation id="5895138241574237353">הפעלה מחדש</translation> <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> – כניסה לרשת</translation> <translation id="5940385492829620908">היסטוריית האתרים, הסימניות ופריטים נוספים מ-Chrome נמצאים כאן.</translation> <translation id="5941830788786076944">הפוך את Google Chrome לדפדפן ברירת המחדל</translation> <translation id="6070348360322141662">לשיפור האבטחה, Google Chrome יצפין את הנתונים</translation> <translation id="6113794647360055231">Chrome השתפר</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation> -<translation id="6173637689840186878"><ph name="PAGE_TITLE" /> - Google Chrome בגירסת ביטא</translation> +<translation id="6173637689840186878"><ph name="PAGE_TITLE" /> - Google Chrome בגרסת ביטא</translation> <translation id="61852838583753520">יש לעדכן את מערכת ההפעלה של Chrome&</translation> <translation id="6235018212288296708">כלל נכנס עבור Google Chrome על מנת לאפשר תנועת mDNS.</translation> <translation id="6291089322031436445">אפליקציות לגרסת הפיתוח של Chrome</translation> <translation id="6291549208091401781">Google Chrome כבר מותקן במחשב ונגיש לכל המשתמשים.</translation> <translation id="6338556085225130112">מעדכן את Google Chrome</translation> <translation id="6368958679917195344">השימוש במערכת ההפעלה של Chrome מתאפשר באמצעות <ph name="BEGIN_LINK_CROS_OSS" />תוכנת קוד פתוח<ph name="END_LINK_CROS_OSS" /> נוספת.</translation> -<translation id="6515495397637126556"><ph name="PAGE_TITLE" /> - Google Chrome בגירסת פיתוח</translation> +<translation id="6515495397637126556"><ph name="PAGE_TITLE" /> - Google Chrome בגרסת פיתוח</translation> <translation id="6566149418543181476">מעדכן את Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="6676384891291319759">גישה אל האינטרנט</translation> <translation id="6679975945624592337">Google Chrome יכול לפעול ברקע</translation> @@ -222,7 +222,7 @@ <translation id="7535429826459677826">גרסת הפיתוח של Google Chrome</translation> <translation id="7573289029918943991">כדי לראות אם המכשיר שלך מעודכן, יש לעבור אל <ph name="LINK_BEGIN" />הגדרות Chrome OS<ph name="LINK_END" /></translation> <translation id="7592736734348559088">Google Chrome לא הצליח לסנכרן את הנתונים שלך מפני שפרטי הכניסה של חשבונך אינם מעודכנים.</translation> -<translation id="7626032353295482388">ברוכים הבאים ל-Chrome</translation> +<translation id="7626032353295482388">ברוך בואך אל Chrome</translation> <translation id="7629695634924605473">Chrome מודיע לך אם הסיסמאות שלך נמצאות בסיכון</translation> <translation id="7641148173327520642">לפי הגדרת מנהל המערכת, Google Chrome יפתח את <ph name="ALTERNATIVE_BROWSER_NAME" /> כדי לגשת אל <ph name="TARGET_URL_HOSTNAME" />.</translation> <translation id="7651907282515937834">לוגו של Chrome Enterprise</translation> @@ -232,7 +232,7 @@ <translation id="7781002470561365167">גרסה חדשה של Google Chrome זמינה כעת.</translation> <translation id="7787950393032327779">נראה שהפרופיל נמצא בשימוש על ידי תהליך אחר של Google Chrome (<ph name="PROCESS_ID" />) במחשב אחר (<ph name="HOST_NAME" />). Chrome נעל את הפרופיל כדי שלא ייפגם. אם אתה משוכנע שאף תהליך אחר אינו משתמש בפרופיל זה, תוכל לבטל את נעילת הפרופיל ולהפעיל את Chrome מחדש.</translation> <translation id="7801699035218095297">Google Chrome מנסה להעתיק את הסיסמאות. כדי לאפשר את הפעולה הזו, יש להקליד את הסיסמה שלך ל-Windows.</translation> -<translation id="7808348361785373670">הסר מ-Chrome...</translation> +<translation id="7808348361785373670">הסרה מ-Chrome...</translation> <translation id="7825851276765848807">ההתקנה נכשלה בשל שגיאה לא מזוהה. הורד שוב את Google Chrome.</translation> <translation id="7855730255114109580">Google Chrome מעודכן</translation> <translation id="7890208801193284374">כשמשתפים מחשב, חברים ובני משפחה יכולים לגלוש בנפרד ולהגדיר את Chrome בדיוק כפי שהם רוצים.</translation> @@ -268,7 +268,7 @@ <translation id="8823341990149967727">Chrome אינו מעודכן</translation> <translation id="8834965163890861871">Google Chrome מנסה לערוך את הסיסמאות. כדי לאפשר את הפעולה הזו, יש להקליד את הסיסמה שלך ל-Windows.</translation> <translation id="884296878221830158">הגדרה זו גם קובעת איזה דף מוצג כשאתה מפעיל את Chrome או לוחץ על הלחצן 'דף הבית'.</translation> -<translation id="8862326446509486874">אין לך זכויות שמתאימות להתקנה ברמת המערכת. נסה להפעיל שוב את המתקין כמנהל מערכת.</translation> +<translation id="8862326446509486874">אין לך זכויות שמתאימות להתקנה ברמת המערכת. יש לנסות להפעיל שוב את המתקין כמנהל מערכת.</translation> <translation id="8907906903932240086">Chrome יכול לבדוק אם יש תוכנות מזיקות במחשב שלך</translation> <translation id="8914504000324227558">הפעלה מחדש של Chrome</translation> <translation id="8922193594870374009">כדי לשלוח מספר מ-<ph name="ORIGIN" /> לטלפון Android, יש להיכנס אל Chrome בשני המכשירים.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_kk.xtb b/chrome/app/resources/google_chrome_strings_kk.xtb index fc0e8d6..23fcb3f0 100644 --- a/chrome/app/resources/google_chrome_strings_kk.xtb +++ b/chrome/app/resources/google_chrome_strings_kk.xtb
@@ -82,6 +82,7 @@ <translation id="2926676257163822632">Құпия сөзіңіз оңай болса, оны табу да оңай. Chrome браузеріне <ph name="BEGIN_LINK" />күрделі құпия сөздер жасауға және сақтауға<ph name="END_LINK" /> мүмкіндік беріңіз.</translation> <translation id="2929907241665500097">Chrome жаңартылған жоқ. Бірдеңе дұрыс болмады. <ph name="BEGIN_LINK" />Chrome браузеріндегі жаңартуға қатысты мәселелерді түзетіңіз.<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> – Желіге кіру – Chrome</translation> +<translation id="298099161970687941">Chrome ашылғанда сұрау</translation> <translation id="3037838751736561277">Google Chrome фондық режимде.</translation> <translation id="3059710691562604940">"Қауіпсіз шолу" функциясы өшірулі. Chrome браузері оны қосуды ұсынады.</translation> <translation id="3065168410429928842">Chrome қойындысы</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ky.xtb b/chrome/app/resources/google_chrome_strings_ky.xtb index 7dc29d5..c500d24 100644 --- a/chrome/app/resources/google_chrome_strings_ky.xtb +++ b/chrome/app/resources/google_chrome_strings_ky.xtb
@@ -82,6 +82,7 @@ <translation id="2926676257163822632">Начар сырсөздөрдү билип алуу оңой. Chrome'го <ph name="BEGIN_LINK" />сиз үчүн татаал сырсөздөрдү түзүп, эстеп калууга<ph name="END_LINK" /> уруксат бериңиз.</translation> <translation id="2929907241665500097">Chrome жаңырган жок. Бир жерден ката кетти. <ph name="BEGIN_LINK" />Chrome'догу жаңыртуу маселелерин оңдоңуз.<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> – Тармакка кирүү – Chrome</translation> +<translation id="298099161970687941">Chrome'ду ачканда суралсын</translation> <translation id="3037838751736561277">Google Chrome фондук режимде.</translation> <translation id="3059710691562604940">Коопсуз серептөө өчүк. Chrome аны күйгүзүүнү сунуштайт.</translation> <translation id="3065168410429928842">Chrome өтмөгү</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lt.xtb b/chrome/app/resources/google_chrome_strings_lt.xtb index 307ed595..b81e0db 100644 --- a/chrome/app/resources/google_chrome_strings_lt.xtb +++ b/chrome/app/resources/google_chrome_strings_lt.xtb
@@ -82,6 +82,7 @@ <translation id="2926676257163822632">Nesudėtingus slaptažodžius lengva atspėti. Leiskite „Chrome“ <ph name="BEGIN_LINK" />jums sukurti ir įsiminti sudėtingus slaptažodžius<ph name="END_LINK" />.</translation> <translation id="2929907241665500097">Nepavyko atnaujinti „Chrome“, įvyko klaida. <ph name="BEGIN_LINK" />Pašalinkite „Chrome“ naujinimo problemas ir naujinių klaidas.<ph name="END_LINK" /></translation> <translation id="2969728957078202736">„<ph name="PAGE_TITLE" />“ – prisijungimas prie tinklo – „Chrome“</translation> +<translation id="298099161970687941">Klausti, kai atidaroma „Chrome“</translation> <translation id="3037838751736561277">„Google Chrome“ veikia fono režimu.</translation> <translation id="3059710691562604940">Saugaus naršymo funkcija išjungta. „Chrome“ rekomenduoja ją įjungti.</translation> <translation id="3065168410429928842">„Chrome“ skirtukas</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lv.xtb b/chrome/app/resources/google_chrome_strings_lv.xtb index 5f6625f..1f41f36 100644 --- a/chrome/app/resources/google_chrome_strings_lv.xtb +++ b/chrome/app/resources/google_chrome_strings_lv.xtb
@@ -80,6 +80,7 @@ <translation id="2926676257163822632">Nedrošas paroles ir viegli uzminēt. Pārlūkā Chrome <ph name="BEGIN_LINK" />var automātiski veidot un iegaumēt drošas paroles jūsu kontiem<ph name="END_LINK" />.</translation> <translation id="2929907241665500097">Pārlūkprogramma Chrome netika atjaunināta. Radās problēma. <ph name="BEGIN_LINK" />Novērsiet Chrome atjaunināšanas problēmas.<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> — pierakstīšanās tīklā — Chrome</translation> +<translation id="298099161970687941">Vaicāt, kad tiek atvērts pārlūks Chrome</translation> <translation id="3037838751736561277">Google Chrome darbojas fona režīmā.</translation> <translation id="3059710691562604940">Droša pārlūkošana ir izslēgta. Pārlūkā Chrome tiek ieteikts to ieslēgt.</translation> <translation id="3065168410429928842">Chrome cilne</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mk.xtb b/chrome/app/resources/google_chrome_strings_mk.xtb index eb928c113..52fac42 100644 --- a/chrome/app/resources/google_chrome_strings_mk.xtb +++ b/chrome/app/resources/google_chrome_strings_mk.xtb
@@ -82,6 +82,7 @@ <translation id="2926676257163822632">Слабите лозинки се лесни за погаѓање. Дозволете Chrome да ви <ph name="BEGIN_LINK" />создаде и запомни силни лозинки<ph name="END_LINK" />.</translation> <translation id="2929907241665500097">Chrome не се ажурираше, нешто тргна наопаку. <ph name="BEGIN_LINK" />Поправете ги проблемите со ажурирањето на Chrome и со неуспешните ажурирања.<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - Мрежно најавување - Chrome</translation> +<translation id="298099161970687941">Прашувај кога ќе се отвори Chrome</translation> <translation id="3037838751736561277">Google Chrome е во заднински режим.</translation> <translation id="3059710691562604940">„Безбедното прелистување“ е исклучено. Chrome препорачува да го вклучите.</translation> <translation id="3065168410429928842">Картичка на Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_nl.xtb b/chrome/app/resources/google_chrome_strings_nl.xtb index 7bd798a..ef14ee4 100644 --- a/chrome/app/resources/google_chrome_strings_nl.xtb +++ b/chrome/app/resources/google_chrome_strings_nl.xtb
@@ -8,7 +8,7 @@ Sommige functies zijn wellicht niet beschikbaar en wijzigingen in voorkeuren worden niet opgeslagen.</translation> <translation id="1088300314857992706"><ph name="USER_EMAIL_ADDRESS" /> maakte eerder gebruik van Chrome</translation> -<translation id="1088654056000736875">Chrome verwijdert schadelijke software op je computer…</translation> +<translation id="1088654056000736875">Chrome verwijdert schadelijke software van je computer…</translation> <translation id="1097330777386562916">Cookies en sitegegevens wissen wanneer je Chrome sluit</translation> <translation id="110877069173485804">Personaliseer jouw Chrome</translation> <translation id="1125124144982679672">Wie gebruikt Chrome?</translation>
diff --git a/chrome/app/resources/google_chrome_strings_no.xtb b/chrome/app/resources/google_chrome_strings_no.xtb index 991d8d8d..f01cd45c 100644 --- a/chrome/app/resources/google_chrome_strings_no.xtb +++ b/chrome/app/resources/google_chrome_strings_no.xtb
@@ -78,6 +78,7 @@ <translation id="2926676257163822632">Svake passord er enkle å gjette. La Chrome <ph name="BEGIN_LINK" />opprette og huske sterke passord for deg<ph name="END_LINK" />.</translation> <translation id="2929907241665500097">Chrome ble ikke oppdatert. Noe gikk galt. <ph name="BEGIN_LINK" />Løs problemer med Chrome-oppdateringer og mislykkede oppdateringer.<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> – nettverkspålogging – Chrome</translation> +<translation id="298099161970687941">Spør når Chrome åpnes</translation> <translation id="3037838751736561277">Google Chrome er i bakgrunnsmodus.</translation> <translation id="3059710691562604940">Safe Browsing er slått av. Chrome anbefaler at du slår det på.</translation> <translation id="3065168410429928842">Chrome-fane</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pa.xtb b/chrome/app/resources/google_chrome_strings_pa.xtb index ca7fb35..44b2567 100644 --- a/chrome/app/resources/google_chrome_strings_pa.xtb +++ b/chrome/app/resources/google_chrome_strings_pa.xtb
@@ -79,6 +79,7 @@ <translation id="2871893339301912279">ਤੁਸੀਂ Chrome 'ਤੇ ਸਾਈਨ-ਇਨ ਕੀਤਾ ਹੈ!</translation> <translation id="2885378588091291677">ਕੰਮ ਪ੍ਰਬੰਧਕ</translation> <translation id="2888126860611144412">Chrome ਬਾਰੇ</translation> +<translation id="2926676257163822632">ਕਮਜ਼ੋਰ ਪਾਸਵਰਡਾਂ ਦਾ ਅੰਦਾਜ਼ਾ ਲਗਾਉਣਾ ਆਸਾਨ ਹੁੰਦਾ ਹੈ। Chrome ਨੂੰ <ph name="BEGIN_LINK" />ਤੁਹਾਡੇ ਲਈ ਮਜ਼ਬੂਤ ਪਾਸਵਰਡ ਬਣਾਉਣ ਅਤੇ ਯਾਦ ਰੱਖਣ<ph name="END_LINK" /> ਦਿਓ।</translation> <translation id="2929907241665500097">Chrome ਅੱਪਡੇਟ ਨਹੀਂ ਹੋਇਆ, ਕੋਈ ਗੜਬੜ ਹੋ ਗਈ। <ph name="BEGIN_LINK" />Chrome ਅੱਪਡੇਟ ਦੀਆਂ ਸਮੱਸਿਆਵਾਂ ਅਤੇ ਅਸਫਲ ਹੋਈਆਂ ਅੱਪਡੇਟਾਂ ਨੂੰ ਠੀਕ ਕਰੋ।<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - ਨੈੱਟਵਰਕ ਸਾਈਨ-ਇਨ - Chrome</translation> <translation id="3037838751736561277">Google Chrome ਬੈਕਗ੍ਰਾਊਂਡ ਮੋਡ ਵਿੱਚ ਹੈ।</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pl.xtb b/chrome/app/resources/google_chrome_strings_pl.xtb index 4790c89d..615f019 100644 --- a/chrome/app/resources/google_chrome_strings_pl.xtb +++ b/chrome/app/resources/google_chrome_strings_pl.xtb
@@ -78,6 +78,7 @@ <translation id="2926676257163822632">Słabe hasła są łatwe do odgadnięcia. Pozwól Chrome <ph name="BEGIN_LINK" />utworzyć i zapamiętać silne hasła<ph name="END_LINK" />.</translation> <translation id="2929907241665500097">Coś poszło nie tak i nie udało się zaktualizować Chrome. <ph name="BEGIN_LINK" />Napraw nieudane aktualizacje Chrome i rozwiąż inne problemy z aktualizacjami<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> – logowanie do sieci – Chrome</translation> +<translation id="298099161970687941">Pytaj podczas otwierania Chrome</translation> <translation id="3037838751736561277">Google Chrome jest w trybie działania w tle</translation> <translation id="3059710691562604940">Bezpieczne przeglądanie jest wyłączone. Chrome zaleca jego włączenie.</translation> <translation id="3065168410429928842">Karta Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pt-BR.xtb b/chrome/app/resources/google_chrome_strings_pt-BR.xtb index 54fc6be..4af7728 100644 --- a/chrome/app/resources/google_chrome_strings_pt-BR.xtb +++ b/chrome/app/resources/google_chrome_strings_pt-BR.xtb
@@ -78,6 +78,7 @@ <translation id="2926676257163822632">Senhas fracas são fáceis de adivinhar. Deixe o Chrome <ph name="BEGIN_LINK" />criar e guardar senhas fortes para você<ph name="END_LINK" />.</translation> <translation id="2929907241665500097">A atualização do Chrome não foi concluída. Algo deu errado. <ph name="BEGIN_LINK" />Corrija as atualizações com falhas e os problemas de atualização do Chrome.<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - Login na rede - Chrome</translation> +<translation id="298099161970687941">Perguntar ao abrir o Chrome</translation> <translation id="3037838751736561277">O Google Chrome está em modo de segundo plano.</translation> <translation id="3059710691562604940">O "Navegação segura" está desativado. O Chrome recomenda ativá-lo.</translation> <translation id="3065168410429928842">Guia do Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pt-PT.xtb b/chrome/app/resources/google_chrome_strings_pt-PT.xtb index 9ff18572..4459673 100644 --- a/chrome/app/resources/google_chrome_strings_pt-PT.xtb +++ b/chrome/app/resources/google_chrome_strings_pt-PT.xtb
@@ -78,6 +78,7 @@ <translation id="2926676257163822632">As palavras-passe fracas são fáceis de adivinhar. Permita que o Chrome <ph name="BEGIN_LINK" />crie e memorize palavra-passes fortes<ph name="END_LINK" />.</translation> <translation id="2929907241665500097">O Chrome não foi atualizado. Ocorreu um erro. <ph name="BEGIN_LINK" />Corrija problemas de atualização do Chrome e falhas nas atualizações<ph name="END_LINK" />.</translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> – Início de sessão na rede – Chrome</translation> +<translation id="298099161970687941">Perguntar quando o Chrome abrir</translation> <translation id="3037838751736561277">O Google Chrome está no modo em segundo plano.</translation> <translation id="3059710691562604940">A Navegação segura está desativada. O Chrome recomenda que a ative.</translation> <translation id="3065168410429928842">Separador do Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ro.xtb b/chrome/app/resources/google_chrome_strings_ro.xtb index c063a92..a4cd0da3 100644 --- a/chrome/app/resources/google_chrome_strings_ro.xtb +++ b/chrome/app/resources/google_chrome_strings_ro.xtb
@@ -78,6 +78,7 @@ <translation id="2926676257163822632">Parolele slabe sunt ușor de ghicit. Permite browserului Chrome <ph name="BEGIN_LINK" />să creeze și să memoreze parole puternice pentru tine<ph name="END_LINK" />.</translation> <translation id="2929907241665500097">Chrome nu s-a actualizat. A apărut o eroare. <ph name="BEGIN_LINK" />Remediază problemele de actualizare și actualizările nereușite în Chrome.<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> – conectare la rețea – Chrome</translation> +<translation id="298099161970687941">Întreabă atunci când se deschide Chrome</translation> <translation id="3037838751736561277">Google Chrome este în modul fundal.</translation> <translation id="3059710691562604940">Navigarea sigură este dezactivată. Chrome îți recomandă să o activezi.</translation> <translation id="3065168410429928842">Fila Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sl.xtb b/chrome/app/resources/google_chrome_strings_sl.xtb index c3371e7..bea4c31 100644 --- a/chrome/app/resources/google_chrome_strings_sl.xtb +++ b/chrome/app/resources/google_chrome_strings_sl.xtb
@@ -117,12 +117,12 @@ <translation id="4050175100176540509">V najnovejši različici so na voljo pomembne varnostne izboljšave in nove funkcije.</translation> <translation id="4053720452172726777">Prilagajanje in nadziranje Google Chroma</translation> <translation id="4110895483821904099">Nastavitev novega profila v Chromu</translation> -<translation id="4127976662406264741">{NUM_MINS,plural, =1{Chrome v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred 1 minuto.}one{Chrome v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_MINS} minuto.}two{Chrome v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_MINS} minutama.}few{Chrome v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_MINS} minutami.}other{Chrome v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_MINS} minutami.}}</translation> +<translation id="4127976662406264741">{NUM_MINS,plural, =1{Chrome v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred 1 minuto.}one{Chrome v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_MINS} minuto.}two{Chrome v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_MINS} minutama.}few{Chrome v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_MINS} minutami.}other{Chrome v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_MINS} minutami.}}</translation> <translation id="4143243756087420366">Ime in slika za Chrome</translation> <translation id="4147555960264124640">Prijavljate se z upravljanim računom in s tem njegovemu skrbniku omogočate nadzor vašega profila v Google Chromu. Vaši podatki v Chromu, kot so aplikacije, zaznamki, zgodovina, gesla in druge nastavitve, bodo postali trajno povezani z uporabnikom <ph name="USER_NAME" />. Te podatke boste lahko izbrisali z nadzorno ploščo za Google Račune, vendar jih ne boste mogli povezati z drugim računom. <ph name="LEARN_MORE" /></translation> <translation id="4149882025268051530">Namestitvenemu programu ni uspelo razširiti arhiva. Ponovno prenesite program Google Chrome.</translation> <translation id="4191857738314598978">{0,plural, =1{Chrome znova zaženite v enem dnevu}one{Chrome znova zaženite v # dnevu}two{Chrome znova zaženite v # dnevih}few{Chrome znova zaženite v # dnevih}other{Chrome znova zaženite v # dnevih}}</translation> -<translation id="4205362703535890467">Chrome v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Včeraj.</translation> +<translation id="4205362703535890467">Chrome v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Včeraj.</translation> <translation id="4205939740494406371">Chrome ne more preveriti vaših gesel. Poskusite znova čez 24 ur ali <ph name="BEGIN_LINK" />preverite gesla v računu Google<ph name="END_LINK" />.</translation> <translation id="424864128008805179">Se želite odjaviti iz Chroma?</translation> <translation id="4251615635259297716">Želite svoje podatke v Chromu povezati s tem računom?</translation> @@ -151,7 +151,7 @@ <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation> <translation id="4771048833395599659">Ta datoteka je morda nevarna, zato jo je Chrome blokiral.</translation> <translation id="479167709087336770">Uporabljeno je isto preverjanje črkovanja kot v Iskanju Google. Besedilo, ki ga vnesete v brskalniku, je poslano Googlu. To lahko kadar koli spremenite v nastavitvah.</translation> -<translation id="4831688036548685548">Chrome v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pravkar.</translation> +<translation id="4831688036548685548">Chrome v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pravkar.</translation> <translation id="4891791193823137474">Naj se Google Chrome izvaja v ozadju</translation> <translation id="4895437082222824641">Odpiranje povezave na novem &zavihku v Chromu</translation> <translation id="4953650215774548573">Nastavitev Google Chroma za privzeti brskalnik</translation> @@ -167,7 +167,7 @@ <translation id="532046782124376502">Opozorilo: Google Chrome razširitvam ne more preprečiti beleženja zgodovine brskanja. Če želite onemogočiti to razširitev v načinu brez beleženja zgodovine, počistite to možnost.</translation> <translation id="5386244825306882791">Določa tudi, katera stran je prikazana, ko zaženete Chrome ali iščete v naslovni vrstici.</translation> <translation id="5394833366792865639">Deljenje zavihka v Chromu</translation> -<translation id="5409605318138185493">{NUM_DAYS,plural, =1{Chrome v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred 1 dnevom.}one{Chrome v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_DAYS} dnevom.}two{Chrome v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_DAYS} dnevoma.}few{Chrome v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_DAYS} dnevi.}other{Chrome v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_DAYS} dnevi.}}</translation> +<translation id="5409605318138185493">{NUM_DAYS,plural, =1{Chrome v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred 1 dnevom.}one{Chrome v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_DAYS} dnevom.}two{Chrome v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_DAYS} dnevoma.}few{Chrome v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_DAYS} dnevi.}other{Chrome v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_DAYS} dnevi.}}</translation> <translation id="5430073640787465221">Datoteka z nastavitvami je poškodovana ali neveljavna. Google Chrome ne more obnoviti vaših nastavitev.</translation> @@ -285,7 +285,7 @@ <translation id="9067395829937117663">Za Google Chrome potrebujete Windows 7 ali novejši.</translation> <translation id="911206726377975832">Ali želite izbrisati tudi podatke brskanja?</translation> <translation id="9138603949443464873">Če želite uporabiti spremembe, znova zaženite Chrome</translation> -<translation id="9155112650704618965">{NUM_HOURS,plural, =1{Chrome v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred 1 uro.}one{Chrome v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_HOURS} uro.}two{Chrome v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_HOURS} urama.}few{Chrome v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_HOURS} urami.}other{Chrome v računalniku ni odkril škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_HOURS} urami.}}</translation> +<translation id="9155112650704618965">{NUM_HOURS,plural, =1{Chrome v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred 1 uro.}one{Chrome v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_HOURS} uro.}two{Chrome v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_HOURS} urama.}few{Chrome v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_HOURS} urami.}other{Chrome v računalniku ni odkril znane škodljive programske opreme. Nazadnje preverjeno: Pred {NUM_HOURS} urami.}}</translation> <translation id="919706545465235479">Posodobite Chrome, če želite začeti sinhronizacijo</translation> <translation id="989369509083708165">Google Chrome je privzeti brskalnik</translation> </translationbundle> \ No newline at end of file
diff --git a/chrome/app/resources/google_chrome_strings_sr-Latn.xtb b/chrome/app/resources/google_chrome_strings_sr-Latn.xtb index 07f4510..531e239 100644 --- a/chrome/app/resources/google_chrome_strings_sr-Latn.xtb +++ b/chrome/app/resources/google_chrome_strings_sr-Latn.xtb
@@ -82,6 +82,7 @@ <translation id="2926676257163822632">Slabe lozinke lako mogu da se pogode. Dozvolite da Chrome <ph name="BEGIN_LINK" />pravi i pamti jake lozinke za vas<ph name="END_LINK" />.</translation> <translation id="2929907241665500097">Chrome se nije ažurirao. Došlo je do greške. <ph name="BEGIN_LINK" />Otklonite probleme sa ažuriranjem Chrome-a i neuspela ažuriranja.<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> – prijavljivanje na mrežu – Chrome</translation> +<translation id="298099161970687941">Pitaj kada se Chrome otvara</translation> <translation id="3037838751736561277">Google Chrome je u pozadinskom režimu.</translation> <translation id="3059710691562604940">Bezbedno pregledanje je isključeno. Chrome preporučuje da ga uključite.</translation> <translation id="3065168410429928842">Kartica Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sr.xtb b/chrome/app/resources/google_chrome_strings_sr.xtb index 7606a6d..3fb19a2 100644 --- a/chrome/app/resources/google_chrome_strings_sr.xtb +++ b/chrome/app/resources/google_chrome_strings_sr.xtb
@@ -82,6 +82,7 @@ <translation id="2926676257163822632">Слабе лозинке лако могу да се погоде. Дозволите да Chrome <ph name="BEGIN_LINK" />прави и памти јаке лозинке за вас<ph name="END_LINK" />.</translation> <translation id="2929907241665500097">Chrome се није ажурирао. Дошло је до грешке. <ph name="BEGIN_LINK" />Отклоните проблеме са ажурирањем Chrome-а и неуспела ажурирања.<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> – пријављивање на мрежу – Chrome</translation> +<translation id="298099161970687941">Питај када се Chrome отвара</translation> <translation id="3037838751736561277">Google Chrome је у позадинском режиму.</translation> <translation id="3059710691562604940">Безбедно прегледање је искључено. Chrome препоручује да га укључите.</translation> <translation id="3065168410429928842">Картица Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sv.xtb b/chrome/app/resources/google_chrome_strings_sv.xtb index d8d7aae..4542474 100644 --- a/chrome/app/resources/google_chrome_strings_sv.xtb +++ b/chrome/app/resources/google_chrome_strings_sv.xtb
@@ -82,6 +82,7 @@ <translation id="2926676257163822632">Svaga lösenord är lätta att lista ut. Låt Chrome <ph name="BEGIN_LINK" />skapa och spara starka lösenord åt dig<ph name="END_LINK" />.</translation> <translation id="2929907241665500097">Ett fel uppstod och Chrome uppdaterades inte. <ph name="BEGIN_LINK" />Åtgärda uppdateringsproblem och misslyckade uppdateringar i Chrome.<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> – nätverksinloggning – Chrome</translation> +<translation id="298099161970687941">Fråga när Chrome öppnas</translation> <translation id="3037838751736561277">Google Chrome körs i bakgrundsläge.</translation> <translation id="3059710691562604940">Säker webbsökning har inaktiverats. Du rekommenderas att aktivera funktionen i Chrome.</translation> <translation id="3065168410429928842">Chrome-flik</translation>
diff --git a/chrome/app/resources/google_chrome_strings_th.xtb b/chrome/app/resources/google_chrome_strings_th.xtb index 68ee9d4..26f33fe 100644 --- a/chrome/app/resources/google_chrome_strings_th.xtb +++ b/chrome/app/resources/google_chrome_strings_th.xtb
@@ -78,6 +78,7 @@ <translation id="2926676257163822632">รหัสผ่านที่ไม่รัดกุมนั้นคาดเดาได้ง่าย ให้ Chrome <ph name="BEGIN_LINK" />สร้างและจดจำรหัสผ่านที่รัดกุมให้คุณ<ph name="END_LINK" /></translation> <translation id="2929907241665500097">Chrome ไม่ได้อัปเดตเนื่องจากเกิดข้อผิดพลาด <ph name="BEGIN_LINK" />โปรดแก้ปัญหาการอัปเดต Chrome และการอัปเดตที่ไม่สำเร็จ<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - หน้าลงชื่อเข้าใช้ของเครือข่าย - Chrome</translation> +<translation id="298099161970687941">ถามเมื่อมีการเปิด Chrome</translation> <translation id="3037838751736561277">Google Chrome กำลังอยู่ในโหมดทำงานในพื้นหลัง</translation> <translation id="3059710691562604940">Google Safe Browsing ปิดอยู่ Chrome ขอแนะนำให้เปิด</translation> <translation id="3065168410429928842">แท็บ Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_uk.xtb b/chrome/app/resources/google_chrome_strings_uk.xtb index 257d7a1..6b641398 100644 --- a/chrome/app/resources/google_chrome_strings_uk.xtb +++ b/chrome/app/resources/google_chrome_strings_uk.xtb
@@ -78,6 +78,7 @@ <translation id="2926676257163822632">Ненадійні паролі можна легко вгадати. Тому радимо <ph name="BEGIN_LINK" />створювати й зберігати безпечні паролі<ph name="END_LINK" /> в Chrome.</translation> <translation id="2929907241665500097">Не вдалось оновити веб-переглядач Chrome. <ph name="BEGIN_LINK" />Вирішіть проблеми з оновленням Chrome.<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> – Вхід у мережу – Chrome</translation> +<translation id="298099161970687941">Запитувати, коли відкривається Chrome</translation> <translation id="3037838751736561277">Google Chrome у фоновому режимі.</translation> <translation id="3059710691562604940">Безпечний перегляд вимкнено. Chrome радить увімкнути його.</translation> <translation id="3065168410429928842">Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_uz.xtb b/chrome/app/resources/google_chrome_strings_uz.xtb index d385cb9..e7bee91 100644 --- a/chrome/app/resources/google_chrome_strings_uz.xtb +++ b/chrome/app/resources/google_chrome_strings_uz.xtb
@@ -79,6 +79,7 @@ <translation id="2926676257163822632">Kuchsiz parollar oson topiladi. Chrome <ph name="BEGIN_LINK" />siz uchun ishonchli parol yaratsin va eslab qolsin<ph name="END_LINK" />.</translation> <translation id="2929907241665500097">Notanish xatolik tufayli Chrome yangilanmadi. <ph name="BEGIN_LINK" />Chromedagi yangilanish muammolari va xatoliklarni tuzatish.<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - Tarmoqqa kirish - Chrome</translation> +<translation id="298099161970687941">Chrome ochilganda soʻralsin</translation> <translation id="3037838751736561277">Google Chrome orqa fon rejimida ishlamoqda.</translation> <translation id="3059710691562604940">Saytlarni xavfsiz kezish yoniq emas. Chrome uni yoqishingizni tavsiya qiladi.</translation> <translation id="3065168410429928842">Chrome sahifasi</translation>
diff --git a/chrome/app/resources/google_chrome_strings_vi.xtb b/chrome/app/resources/google_chrome_strings_vi.xtb index b7c13fa..962c625 100644 --- a/chrome/app/resources/google_chrome_strings_vi.xtb +++ b/chrome/app/resources/google_chrome_strings_vi.xtb
@@ -201,7 +201,7 @@ <translation id="6750954913813541382">Để sửa lỗi chính tả, Chrome sẽ gửi văn bản mà bạn nhập vào trình duyệt này cho Google</translation> <translation id="677276454032249905">Bạn vẫn muốn thoát khỏi Chrome?</translation> <translation id="683440813066116847">Quy tắc kết nối để Google Chrome Canary cho phép lưu lượng truy cập mDNS.</translation> -<translation id="6861451385429799394"><ph name="BEGIN_LINK" />Quản trị viên của bạn<ph name="END_LINK" /> đã tắt tính năng kiểm tra phần mềm gây hại trên Chrome</translation> +<translation id="6861451385429799394"><ph name="BEGIN_LINK" />Quản trị viên của bạn<ph name="END_LINK" /> đã tắt tính năng kiểm tra của Chrome để tìm phần mềm gây hại</translation> <translation id="6885412569789873916">Ứng dụng Chrome Beta</translation> <translation id="6943584222992551122">Dữ liệu duyệt web của người này sẽ bị xóa khỏi thiết bị này. Để khôi phục dữ liệu, hãy đăng nhập vào Chrome bằng <ph name="USER_EMAIL" />.</translation> <translation id="6967962315388095737">Quy tắc kết nối để Google Chrome Beta cho phép lưu lượng truy cập mDNS.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-HK.xtb b/chrome/app/resources/google_chrome_strings_zh-HK.xtb index 1e502ca..d4f2d7d 100644 --- a/chrome/app/resources/google_chrome_strings_zh-HK.xtb +++ b/chrome/app/resources/google_chrome_strings_zh-HK.xtb
@@ -79,9 +79,10 @@ <translation id="2871893339301912279">您已登入 Chrome!</translation> <translation id="2885378588091291677">工作管理員</translation> <translation id="2888126860611144412">關於 Chrome</translation> -<translation id="2926676257163822632">低強度密碼很容易讓有心人士猜中,請讓 Chrome <ph name="BEGIN_LINK" />為你建立一組高強度密碼,並儲存在 Chrome 中<ph name="END_LINK" />。</translation> +<translation id="2926676257163822632">安全性弱的密碼很容易被猜到。讓 Chrome <ph name="BEGIN_LINK" />為您建立並記住安全性強的密碼<ph name="END_LINK" />。</translation> <translation id="2929907241665500097">發生錯誤,Chrome 未能更新。<ph name="BEGIN_LINK" />請修正 Chrome 更新問題與更新失敗問題。<ph name="END_LINK" /></translation> <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - 網絡登入 - Chrome</translation> +<translation id="298099161970687941">Chrome 開啟時詢問我</translation> <translation id="3037838751736561277">Google Chrome 正在背景模式中執行。</translation> <translation id="3059710691562604940">「安全瀏覽」功能已停用。Chrome 建議啟用此功能。</translation> <translation id="3065168410429928842">Chrome 分頁</translation>
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index b011c18..bfc9a94 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -34,6 +34,7 @@ #include "chrome/browser/chromeos/android_sms/android_sms_switches.h" #include "chrome/browser/flag_descriptions.h" #include "chrome/browser/lite_video/lite_video_switches.h" +#include "chrome/browser/navigation_predictor/navigation_predictor_features.h" #include "chrome/browser/navigation_predictor/search_engine_preconnector.h" #include "chrome/browser/net/stub_resolver_config_reader.h" #include "chrome/browser/net/system_network_context_manager.h" @@ -3166,6 +3167,10 @@ flag_descriptions::kEnableNavigationPredictorDescription, kOsCrOS | kOsLinux, FEATURE_VALUE_TYPE(blink::features::kNavigationPredictor)}, + {"enable-navigation-predictor-renderer-warmup", + flag_descriptions::kEnableNavigationPredictorRendererWarmupName, + flag_descriptions::kEnableNavigationPredictorRendererWarmupDescription, + kOsAll, FEATURE_VALUE_TYPE(features::kNavigationPredictorRendererWarmup)}, #endif // OS_CHROMEOS || OS_LINUX {"enable-preconnect-to-search", flag_descriptions::kEnablePreconnectToSearchName, @@ -3522,16 +3527,17 @@ {"PasswordImport", flag_descriptions::kPasswordImportName, flag_descriptions::kPasswordImportDescription, kOsAll, FEATURE_VALUE_TYPE(password_manager::features::kPasswordImport)}, -#if !defined(OS_CHROMEOS) - // TODO(https://crbug.com/1011696): Investigate crash reports and re-enable - // for ChromeOS. {"enable-force-dark", flag_descriptions::kForceWebContentsDarkModeName, - flag_descriptions::kForceWebContentsDarkModeDescription, - kOsWin | kOsLinux | kOsMac | kOsAndroid, + flag_descriptions::kForceWebContentsDarkModeDescription, kOsAll, +#if defined(OS_CHROMEOS) + // TODO(https://crbug.com/1011696): Investigate crash reports and + // re-enable variations for ChromeOS. + FEATURE_VALUE_TYPE(blink::features::kForceWebContentsDarkMode)}, +#else FEATURE_WITH_PARAMS_VALUE_TYPE(blink::features::kForceWebContentsDarkMode, kForceDarkVariations, "ForceDarkVariations")}, -#endif // !OS_CHROMEOS +#endif // OS_CHROMEOS #if defined(OS_ANDROID) {"enable-android-dark-search", flag_descriptions::kAndroidDarkSearchName, flag_descriptions::kAndroidDarkSearchDescription, kOsAndroid, @@ -5369,6 +5375,10 @@ {"enable-hostname-setting", flag_descriptions::kEnableHostnameSettingName, flag_descriptions::kEnableHostnameSettingDescription, kOsCrOS, FEATURE_VALUE_TYPE(chromeos::features::kEnableHostnameSetting)}, + + {"webui-dark-mode", flag_descriptions::kWebuiDarkModeName, + flag_descriptions::kWebuiDarkModeDescription, kOsCrOS, + FEATURE_VALUE_TYPE(features::kWebUIDarkMode)}, #endif // OS_CHROMEOS {"autofill-off-no-server-data",
diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browser/android/bookmarks/bookmark_bridge.cc index e1cd62f..35643a2a 100644 --- a/chrome/browser/android/bookmarks/bookmark_bridge.cc +++ b/chrome/browser/android/bookmarks/bookmark_bridge.cc
@@ -852,11 +852,17 @@ if (node->is_url()) url = node->url().spec(); + int type = GetBookmarkType(node); + bool read = false; + if (reading_list_manager_->IsReadingListBookmark(node)) { + read = reading_list_manager_->GetReadStatus(node); + } + return Java_BookmarkBridge_createBookmarkItem( - env, node->id(), GetBookmarkType(node), - ConvertUTF16ToJavaString(env, GetTitle(node)), + env, node->id(), type, ConvertUTF16ToJavaString(env, GetTitle(node)), ConvertUTF8ToJavaString(env, url), node->is_folder(), parent_id, - GetBookmarkType(parent), IsEditable(node), IsManaged(node)); + GetBookmarkType(parent), IsEditable(node), IsManaged(node), + node->date_added().ToJavaTime(), read); } void BookmarkBridge::ExtractBookmarkNodeInformation(
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd index 060b9aa..5f66e7b 100644 --- a/chrome/browser/browser_resources.grd +++ b/chrome/browser/browser_resources.grd
@@ -442,7 +442,6 @@ <include name="IDR_IME_WINDOW_CLOSE_C" file="resources\input_ime\ime_window_close_click.png" type="BINDATA" /> <include name="IDR_IME_WINDOW_CLOSE_H" file="resources\input_ime\ime_window_close_hover.png" type="BINDATA" /> </if> - <include name="IDR_PWA_HTML" file="resources\pwa.html" type="BINDATA" /> <if expr="chromeos"> <include name="IDR_SMB_SHARES_DIALOG_CONTAINER_HTML" file="resources\chromeos\smb_shares\smb_share_dialog_container.html" flattenhtml="true" allowexternalscript="true" type="chrome_html" /> <include name="IDR_SMB_SHARES_DIALOG_JS" file="${root_gen_dir}\chrome\browser\resources\chromeos\smb_shares\smb_share_dialog.js" use_base_dir="false" type="chrome_html" />
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn index abecefa..315e8c9 100644 --- a/chrome/browser/chromeos/BUILD.gn +++ b/chrome/browser/chromeos/BUILD.gn
@@ -87,6 +87,7 @@ "//chrome/browser/image_decoder", "//chrome/browser/nearby_sharing/logging", "//chrome/browser/resource_coordinator:tab_metrics_event_proto", + "//chrome/browser/resources:settings_resources_grit", "//chrome/browser/ui/webui/bluetooth_internals:mojo_bindings", "//chrome/browser/ui/webui/chromeos/crostini_upgrader:mojo_bindings", "//chrome/browser/ui/webui/settings/chromeos/constants:mojom", @@ -2800,6 +2801,8 @@ "web_applications/help_app_web_app_info.h", "web_applications/media_web_app_info.cc", "web_applications/media_web_app_info.h", + "web_applications/os_settings_web_app_info.cc", + "web_applications/os_settings_web_app_info.h", "web_applications/print_management_web_app_info.cc", "web_applications/print_management_web_app_info.h", "web_applications/scanning_system_web_app_info.cc",
diff --git a/chrome/browser/chromeos/child_accounts/family_features.cc b/chrome/browser/chromeos/child_accounts/family_features.cc index ca98c1566..f0ab0eb 100644 --- a/chrome/browser/chromeos/child_accounts/family_features.cc +++ b/chrome/browser/chromeos/child_accounts/family_features.cc
@@ -7,6 +7,6 @@ namespace chromeos { const base::Feature kFamilyUserMetricsProvider{ - "FamilyUserMetricsProvider", base::FEATURE_DISABLED_BY_DEFAULT}; + "FamilyUserMetricsProvider", base::FEATURE_ENABLED_BY_DEFAULT}; } // namespace chromeos
diff --git a/chrome/browser/chromeos/file_system_provider/operations/read_file_unittest.cc b/chrome/browser/chromeos/file_system_provider/operations/read_file_unittest.cc index c63c31c6..ad46c7a 100644 --- a/chrome/browser/chromeos/file_system_provider/operations/read_file_unittest.cc +++ b/chrome/browser/chromeos/file_system_provider/operations/read_file_unittest.cc
@@ -9,6 +9,7 @@ #include <utility> #include "base/bind.h" +#include "base/containers/span.h" #include "base/files/file.h" #include "base/files/file_path.h" #include "base/macros.h" @@ -175,15 +176,15 @@ const bool has_more = false; const int execution_time = 0; - base::ListValue value_as_list; - value_as_list.Set(0, std::make_unique<base::Value>(kFileSystemId)); - value_as_list.Set(1, std::make_unique<base::Value>(kRequestId)); - value_as_list.Set( - 2, base::Value::CreateWithCopiedBuffer(data.c_str(), data.size())); - value_as_list.Set(3, std::make_unique<base::Value>(has_more)); - value_as_list.Set(4, std::make_unique<base::Value>(execution_time)); + base::Value values_as_list(base::Value::Type::LIST); + values_as_list.Append(kFileSystemId); + values_as_list.Append(kRequestId); + values_as_list.Append(base::Value(base::as_bytes(base::make_span(data)))); + values_as_list.Append(has_more); + values_as_list.Append(execution_time); - std::unique_ptr<Params> params(Params::Create(value_as_list)); + std::unique_ptr<Params> params( + Params::Create(base::Value::AsListValue(std::move(values_as_list)))); ASSERT_TRUE(params.get()); std::unique_ptr<RequestValue> request_value( RequestValue::CreateForReadFileSuccess(std::move(params)));
diff --git a/chrome/browser/chromeos/file_system_provider/operations/write_file.cc b/chrome/browser/chromeos/file_system_provider/operations/write_file.cc index 0912101..5ead5f4 100644 --- a/chrome/browser/chromeos/file_system_provider/operations/write_file.cc +++ b/chrome/browser/chromeos/file_system_provider/operations/write_file.cc
@@ -6,6 +6,7 @@ #include <utility> +#include "base/containers/span.h" #include "base/trace_event/trace_event.h" #include "base/values.h" #include "chrome/common/extensions/api/file_system_provider.h" @@ -48,18 +49,22 @@ // Set the data directly on base::Value() to avoid an extra string copy. DCHECK(buffer_.get()); - std::unique_ptr<base::DictionaryValue> options_as_value = options.ToValue(); - options_as_value->Set( - "data", base::Value::CreateWithCopiedBuffer(buffer_->data(), length_)); - std::unique_ptr<base::ListValue> event_args(new base::ListValue); - event_args->Append(std::move(options_as_value)); + base::Value options_as_value = + base::Value::FromUniquePtrValue(options.ToValue()); + options_as_value.SetKey( + "data", + base::Value(base::as_bytes(base::make_span(buffer_->data(), length_)))); + + base::Value event_args(base::Value::Type::LIST); + event_args.Append(std::move(options_as_value)); return SendEvent( request_id, extensions::events::FILE_SYSTEM_PROVIDER_ON_WRITE_FILE_REQUESTED, extensions::api::file_system_provider::OnWriteFileRequested::kEventName, - std::move(event_args)); + base::ListValue::From( + base::Value::ToUniquePtrValue(std::move(event_args)))); } void WriteFile::OnSuccess(int /* request_id */,
diff --git a/chrome/browser/chromeos/web_applications/os_settings_web_app_info.cc b/chrome/browser/chromeos/web_applications/os_settings_web_app_info.cc new file mode 100644 index 0000000..5b8ecbd5 --- /dev/null +++ b/chrome/browser/chromeos/web_applications/os_settings_web_app_info.cc
@@ -0,0 +1,38 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/chromeos/web_applications/os_settings_web_app_info.h" + +#include <memory> + +#include "ash/public/cpp/resources/grit/ash_public_unscaled_resources.h" +#include "chrome/browser/chromeos/web_applications/system_web_app_install_utils.h" +#include "chrome/browser/web_applications/components/web_app_constants.h" +#include "chrome/common/web_application_info.h" +#include "chrome/common/webui_url_constants.h" +#include "chrome/grit/generated_resources.h" +#include "chrome/grit/os_settings_resources.h" +#include "chromeos/strings/grit/chromeos_strings.h" +#include "ui/base/l10n/l10n_util.h" + +std::unique_ptr<WebApplicationInfo> +CreateWebAppInfoForOSSettingsSystemWebApp() { + std::unique_ptr<WebApplicationInfo> info = + std::make_unique<WebApplicationInfo>(); + info->start_url = GURL(chrome::kChromeUIOSSettingsURL); + info->scope = GURL(chrome::kChromeUIOSSettingsURL); + info->title = l10n_util::GetStringUTF16(IDS_SETTINGS_SETTINGS); + web_app::CreateIconInfoForSystemWebApp( + info->start_url, + { + {"icon-192.png", 192, IDR_SETTINGS_LOGO_192}, + + }, + *info); + info->theme_color = 0xffffffff; + info->background_color = 0xffffffff; + info->display_mode = blink::mojom::DisplayMode::kStandalone; + info->open_as_window = true; + return info; +}
diff --git a/chrome/browser/chromeos/web_applications/os_settings_web_app_info.h b/chrome/browser/chromeos/web_applications/os_settings_web_app_info.h new file mode 100644 index 0000000..e34d7ea7 --- /dev/null +++ b/chrome/browser/chromeos/web_applications/os_settings_web_app_info.h
@@ -0,0 +1,15 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_CHROMEOS_WEB_APPLICATIONS_OS_SETTINGS_WEB_APP_INFO_H_ +#define CHROME_BROWSER_CHROMEOS_WEB_APPLICATIONS_OS_SETTINGS_WEB_APP_INFO_H_ + +#include <memory> + +struct WebApplicationInfo; + +// Return a WebApplicationInfo used to install the app. +std::unique_ptr<WebApplicationInfo> CreateWebAppInfoForOSSettingsSystemWebApp(); + +#endif // CHROME_BROWSER_CHROMEOS_WEB_APPLICATIONS_OS_SETTINGS_WEB_APP_INFO_H_
diff --git a/chrome/browser/enterprise/reporting/extension_request/extension_request_observer_factory.cc b/chrome/browser/enterprise/reporting/extension_request/extension_request_observer_factory.cc index bc0c7ea..1182a3c 100644 --- a/chrome/browser/enterprise/reporting/extension_request/extension_request_observer_factory.cc +++ b/chrome/browser/enterprise/reporting/extension_request/extension_request_observer_factory.cc
@@ -24,9 +24,13 @@ } ExtensionRequestObserverFactory::~ExtensionRequestObserverFactory() { - if (profile_) { - profile_->RemoveObserver(this); - } else if (g_browser_process->profile_manager()) { + // Remove any pending observers. + for (const auto& entry : observers_) { + Profile* profile = entry.first; + profile->RemoveObserver(this); + } + + if (!profile_ && g_browser_process->profile_manager()) { g_browser_process->profile_manager()->RemoveObserver(this); } } @@ -40,29 +44,22 @@ if (profile_ && (profile_ != profile || !observers_.empty())) return; - if (profile_) - profile->AddObserver(this); - + // Listen for OnProfileWillBeDestroyed() on this profile. + profile->AddObserver(this); observers_.emplace(profile, std::make_unique<ExtensionRequestObserver>(profile)); } void ExtensionRequestObserverFactory::OnProfileMarkedForPermanentDeletion( Profile* profile) { - if (profile_ && profile_ == profile) - profile->RemoveObserver(this); - + profile->RemoveObserver(this); observers_.erase(profile); } void ExtensionRequestObserverFactory::OnProfileWillBeDestroyed( Profile* profile) { - DCHECK(profile_); - - if (profile_ == profile) { - profile->RemoveObserver(this); - observers_.erase(profile); - } + profile->RemoveObserver(this); + observers_.erase(profile); } ExtensionRequestObserver*
diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn index e4d3bb0e..3c8965a 100644 --- a/chrome/browser/extensions/BUILD.gn +++ b/chrome/browser/extensions/BUILD.gn
@@ -947,6 +947,8 @@ sources += [ "api/certificate_provider/certificate_provider_api.cc", "api/certificate_provider/certificate_provider_api.h", + "api/crash_report_private/crash_report_private_api.cc", + "api/crash_report_private/crash_report_private_api.h", "api/enterprise_device_attributes/enterprise_device_attributes_api.cc", "api/enterprise_device_attributes/enterprise_device_attributes_api.h", "api/enterprise_networking_attributes/enterprise_networking_attributes_api.cc", @@ -1054,6 +1056,7 @@ "//chromeos/ui/base", "//components/arc", "//components/constrained_window", + "//components/crash/content/browser/error_reporting", "//components/drive", "//components/user_manager", "//media/capture:capture_lib",
diff --git a/chrome/browser/extensions/DEPS b/chrome/browser/extensions/DEPS index 2c31981..4d7691b7 100644 --- a/chrome/browser/extensions/DEPS +++ b/chrome/browser/extensions/DEPS
@@ -1,4 +1,5 @@ include_rules = [ + "+components/crash/content/browser/error_reporting", "+extensions/strings/grit/extensions_strings.h", "+services/network/public", "+third_party/ink/grit",
diff --git a/extensions/browser/api/crash_report_private/DIR_METADATA b/chrome/browser/extensions/api/crash_report_private/DIR_METADATA similarity index 100% rename from extensions/browser/api/crash_report_private/DIR_METADATA rename to chrome/browser/extensions/api/crash_report_private/DIR_METADATA
diff --git a/extensions/browser/api/crash_report_private/OWNERS b/chrome/browser/extensions/api/crash_report_private/OWNERS similarity index 100% rename from extensions/browser/api/crash_report_private/OWNERS rename to chrome/browser/extensions/api/crash_report_private/OWNERS
diff --git a/extensions/browser/api/crash_report_private/crash_report_private_api.cc b/chrome/browser/extensions/api/crash_report_private/crash_report_private_api.cc similarity index 96% rename from extensions/browser/api/crash_report_private/crash_report_private_api.cc rename to chrome/browser/extensions/api/crash_report_private/crash_report_private_api.cc index 49c2c300..a10de90f 100644 --- a/extensions/browser/api/crash_report_private/crash_report_private_api.cc +++ b/chrome/browser/extensions/api/crash_report_private/crash_report_private_api.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "extensions/browser/api/crash_report_private/crash_report_private_api.h" +#include "chrome/browser/extensions/api/crash_report_private/crash_report_private_api.h" #include "base/time/default_clock.h" #include "components/crash/content/browser/error_reporting/javascript_error_report.h"
diff --git a/extensions/browser/api/crash_report_private/crash_report_private_api.h b/chrome/browser/extensions/api/crash_report_private/crash_report_private_api.h similarity index 73% rename from extensions/browser/api/crash_report_private/crash_report_private_api.h rename to chrome/browser/extensions/api/crash_report_private/crash_report_private_api.h index fd3eab2..dd44fd7 100644 --- a/extensions/browser/api/crash_report_private/crash_report_private_api.h +++ b/chrome/browser/extensions/api/crash_report_private/crash_report_private_api.h
@@ -2,14 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef EXTENSIONS_BROWSER_API_CRASH_REPORT_PRIVATE_CRASH_REPORT_PRIVATE_API_H_ -#define EXTENSIONS_BROWSER_API_CRASH_REPORT_PRIVATE_CRASH_REPORT_PRIVATE_API_H_ +#ifndef CHROME_BROWSER_EXTENSIONS_API_CRASH_REPORT_PRIVATE_CRASH_REPORT_PRIVATE_API_H_ +#define CHROME_BROWSER_EXTENSIONS_API_CRASH_REPORT_PRIVATE_CRASH_REPORT_PRIVATE_API_H_ #include <string> +#include "chrome/common/extensions/api/crash_report_private.h" #include "extensions/browser/extension_function.h" #include "extensions/browser/extension_function_histogram_value.h" -#include "extensions/common/api/crash_report_private.h" namespace base { class Clock; @@ -39,4 +39,4 @@ } // namespace api } // namespace extensions -#endif // EXTENSIONS_BROWSER_API_CRASH_REPORT_PRIVATE_CRASH_REPORT_PRIVATE_API_H_ +#endif // CHROME_BROWSER_EXTENSIONS_API_CRASH_REPORT_PRIVATE_CRASH_REPORT_PRIVATE_API_H_
diff --git a/extensions/browser/api/crash_report_private/crash_report_private_apitest.cc b/chrome/browser/extensions/api/crash_report_private/crash_report_private_apitest.cc similarity index 86% rename from extensions/browser/api/crash_report_private/crash_report_private_apitest.cc rename to chrome/browser/extensions/api/crash_report_private/crash_report_private_apitest.cc index baeecf8..406d361 100644 --- a/extensions/browser/api/crash_report_private/crash_report_private_apitest.cc +++ b/chrome/browser/extensions/api/crash_report_private/crash_report_private_apitest.cc
@@ -4,20 +4,18 @@ #include "base/system/sys_info.h" #include "base/test/simple_test_clock.h" +#include "chrome/browser/extensions/api/crash_report_private/crash_report_private_api.h" +#include "chrome/browser/extensions/extension_apitest.h" #include "components/crash/content/browser/error_reporting/mock_crash_endpoint.h" #include "content/public/test/browser_task_environment.h" -#include "extensions/browser/api/crash_report_private/crash_report_private_api.h" -#include "extensions/browser/browsertest_util.h" +#include "content/public/test/browser_test.h" #include "extensions/common/switches.h" -#include "extensions/shell/test/shell_apitest.h" #include "extensions/test/extension_test_message_listener.h" #include "extensions/test/test_extension_dir.h" #include "testing/gmock/include/gmock/gmock-matchers.h" namespace extensions { -using browsertest_util::ExecuteScriptInBackgroundPage; - namespace { using ::testing::MatchesRegex; @@ -36,13 +34,13 @@ } // namespace -class CrashReportPrivateApiTest : public ShellApiTest { +class CrashReportPrivateApiTest : public ExtensionApiTest { public: CrashReportPrivateApiTest() = default; ~CrashReportPrivateApiTest() override = default; void SetUpOnMainThread() override { - ShellApiTest::SetUpOnMainThread(); + ExtensionApiTest::SetUpOnMainThread(); constexpr char kKey[] = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+uU63MD6T82Ldq5wjrDFn5mGmPnnnj" @@ -75,7 +73,7 @@ void SetUpCommandLine(base::CommandLine* command_line) override { command_line->AppendSwitchASCII( extensions::switches::kAllowlistedExtensionID, kTestExtensionId); - ShellApiTest::SetUpCommandLine(command_line); + ExtensionApiTest::SetUpCommandLine(command_line); } protected: @@ -97,8 +95,7 @@ }, () => window.domAutomationController.send("")); )"; - ExecuteScriptInBackgroundPage(browser_context(), extension_->id(), - kTestScript); + ExecuteScriptInBackgroundPage(extension_->id(), kTestScript); const base::Optional<MockCrashEndpoint::Report>& report = last_report(); ASSERT_TRUE(report); @@ -127,8 +124,7 @@ }, () => window.domAutomationController.send("")); )-"; - ExecuteScriptInBackgroundPage(browser_context(), extension_->id(), - kTestScript); + ExecuteScriptInBackgroundPage(extension_->id(), kTestScript); const base::Optional<MockCrashEndpoint::Report>& report = last_report(); ASSERT_TRUE(report); @@ -160,8 +156,7 @@ }, () => window.domAutomationController.send("")); )"; - ExecuteScriptInBackgroundPage(browser_context(), extension_->id(), - kTestScript); + ExecuteScriptInBackgroundPage(extension_->id(), kTestScript); const base::Optional<MockCrashEndpoint::Report>& report = last_report(); ASSERT_TRUE(report); @@ -192,8 +187,7 @@ }, () => window.domAutomationController.send("")); )"; - ExecuteScriptInBackgroundPage(browser_context(), extension_->id(), - kTestScript); + ExecuteScriptInBackgroundPage(extension_->id(), kTestScript); const base::Optional<MockCrashEndpoint::Report>& report = last_report(); ASSERT_TRUE(report); @@ -228,20 +222,17 @@ api::SetClockForTesting(&test_clock); // Use an exact time for the first API call. - EXPECT_EQ("", ExecuteScriptInBackgroundPage(browser_context(), - extension_->id(), kTestScript)); + EXPECT_EQ("", ExecuteScriptInBackgroundPage(extension_->id(), kTestScript)); // API is limited to one call per hr. So pretend the second call is just // before 1 hr. test_clock.Advance(base::TimeDelta::FromMinutes(59)); EXPECT_EQ("Too many calls to this API", - ExecuteScriptInBackgroundPage(browser_context(), extension_->id(), - kTestScript)); + ExecuteScriptInBackgroundPage(extension_->id(), kTestScript)); // Call again after 1 hr. test_clock.Advance(base::TimeDelta::FromMinutes(2)); - EXPECT_EQ("", ExecuteScriptInBackgroundPage(browser_context(), - extension_->id(), kTestScript)); + EXPECT_EQ("", ExecuteScriptInBackgroundPage(extension_->id(), kTestScript)); } // Ensures that reportError checks user consent for data collection on the @@ -259,8 +250,7 @@ )"; crash_endpoint_->set_consented(false); - EXPECT_EQ("", ExecuteScriptInBackgroundPage(browser_context(), - extension_->id(), kTestScript)); + EXPECT_EQ("", ExecuteScriptInBackgroundPage(extension_->id(), kTestScript)); // The server should not receive any reports. const base::Optional<MockCrashEndpoint::Report>& report = last_report(); EXPECT_FALSE(report);
diff --git a/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api_unittest.cc b/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api_unittest.cc index 11202da4..59d39228 100644 --- a/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api_unittest.cc +++ b/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api_unittest.cc
@@ -6,7 +6,9 @@ #include <utility> +#include "base/containers/span.h" #include "base/memory/ptr_util.h" +#include "base/strings/string_piece.h" #include "base/values.h" #include "chrome/browser/chromeos/attestation/mock_tpm_challenge_key.h" #include "chrome/browser/chromeos/login/users/fake_chrome_user_manager.h" @@ -135,25 +137,26 @@ } std::unique_ptr<base::ListValue> CreateArgs() { - return CreateArgsInternal(nullptr); + return CreateArgsInternal(base::Value()); } std::unique_ptr<base::ListValue> CreateArgsNoRegister() { - return CreateArgsInternal(std::make_unique<bool>(false)); + return CreateArgsInternal(base::Value(false)); } std::unique_ptr<base::ListValue> CreateArgsRegister() { - return CreateArgsInternal(std::make_unique<bool>(true)); + return CreateArgsInternal(base::Value(true)); } std::unique_ptr<base::ListValue> CreateArgsInternal( - std::unique_ptr<bool> register_key) { - std::unique_ptr<base::ListValue> args(new base::ListValue); - args->Append(base::Value::CreateWithCopiedBuffer("challenge", 9)); - if (register_key) { - args->AppendBoolean(*register_key); - } - return args; + base::Value register_key) { + static constexpr base::StringPiece kData = "challenge"; + base::Value args(base::Value::Type::LIST); + args.Append(base::Value(base::as_bytes(base::make_span(kData)))); + if (register_key.is_bool()) + args.Append(std::move(register_key)); + return base::ListValue::From( + base::Value::ToUniquePtrValue(std::move(args))); } scoped_refptr<EnterprisePlatformKeysChallengeMachineKeyFunction> func_; @@ -221,10 +224,12 @@ } std::unique_ptr<base::ListValue> CreateArgsInternal(bool register_key) { - std::unique_ptr<base::ListValue> args(new base::ListValue); - args->Append(base::Value::CreateWithCopiedBuffer("challenge", 9)); - args->AppendBoolean(register_key); - return args; + static constexpr base::StringPiece kData = "challenge"; + base::Value args(base::Value::Type::LIST); + args.Append(base::Value(base::as_bytes(base::make_span(kData)))); + args.Append(register_key); + return base::ListValue::From( + base::Value::ToUniquePtrValue(std::move(args))); } EPKPChallengeKey impl_;
diff --git a/chrome/browser/extensions/api/idltest/idltest_api.cc b/chrome/browser/extensions/api/idltest/idltest_api.cc index ac6205e8..72b85c66 100644 --- a/chrome/browser/extensions/api/idltest/idltest_api.cc +++ b/chrome/browser/extensions/api/idltest/idltest_api.cc
@@ -9,6 +9,8 @@ #include <memory> #include <utility> +#include "base/containers/span.h" +#include "base/strings/string_piece.h" #include "base/values.h" namespace { @@ -39,7 +41,7 @@ } ExtensionFunction::ResponseAction IdltestGetArrayBufferFunction::Run() { - static constexpr char kHello[] = "hello world"; - return RespondNow( - OneArgument(base::Value::CreateWithCopiedBuffer(kHello, strlen(kHello)))); + static constexpr base::StringPiece kHello = "hello world"; + return RespondNow(OneArgument(base::Value::ToUniquePtrValue( + base::Value(base::as_bytes(base::make_span(kHello)))))); }
diff --git a/chrome/browser/extensions/api/platform_keys/platform_keys_api.cc b/chrome/browser/extensions/api/platform_keys/platform_keys_api.cc index 473e04a..fd99e18 100644 --- a/chrome/browser/extensions/api/platform_keys/platform_keys_api.cc +++ b/chrome/browser/extensions/api/platform_keys/platform_keys_api.cc
@@ -9,6 +9,7 @@ #include <vector> #include "base/bind.h" +#include "base/containers/span.h" #include "base/logging.h" #include "base/optional.h" #include "base/stl_util.h" @@ -66,12 +67,9 @@ base::Value(static_cast<int>(key_info.key_size_bits))); // Equals 65537. - const unsigned char defaultPublicExponent[] = {0x01, 0x00, 0x01}; - algorithm->SetWithoutPathExpansion( - "publicExponent", - base::Value::CreateWithCopiedBuffer( - reinterpret_cast<const char*>(defaultPublicExponent), - base::size(defaultPublicExponent))); + static constexpr uint8_t kDefaultPublicExponent[] = {0x01, 0x00, 0x01}; + algorithm->SetKey("publicExponent", + base::Value(base::make_span(kDefaultPublicExponent))); } void BuildWebCryptoEcdsaAlgorithmDictionary(const PublicKeyInfo& key_info,
diff --git a/chrome/browser/feedback/android/BUILD.gn b/chrome/browser/feedback/android/BUILD.gn index 471e9433..c8199aa7 100644 --- a/chrome/browser/feedback/android/BUILD.gn +++ b/chrome/browser/feedback/android/BUILD.gn
@@ -6,8 +6,11 @@ android_library("java") { sources = [ + "java/src/org/chromium/chrome/browser/feedback/AsyncFeedbackSource.java", + "java/src/org/chromium/chrome/browser/feedback/FeedbackSource.java", "java/src/org/chromium/chrome/browser/feedback/FragmentHelpAndFeedbackLauncher.java", "java/src/org/chromium/chrome/browser/feedback/HelpAndFeedbackLauncher.java", + "java/src/org/chromium/chrome/browser/feedback/ScreenshotSource.java", ] deps = [ ":java_resources",
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/AsyncFeedbackSource.java b/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/AsyncFeedbackSource.java similarity index 100% rename from chrome/android/java/src/org/chromium/chrome/browser/feedback/AsyncFeedbackSource.java rename to chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/AsyncFeedbackSource.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/FeedbackSource.java b/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackSource.java similarity index 82% rename from chrome/android/java/src/org/chromium/chrome/browser/feedback/FeedbackSource.java rename to chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackSource.java index af9a800c..42ef56a 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/feedback/FeedbackSource.java +++ b/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackSource.java
@@ -18,12 +18,9 @@ * Called to get all relevant feedback for this source. * @return A map of all feedback reported by this source. */ - // clang-format off - // TODO(crbug.com/781018): Clang isn't formatting this correctly. default @Nullable Map<String, String> getFeedback() { return null; } - // clang-format on /** * Returns a key-value pair of logs for this source. It is appropriate to @@ -33,10 +30,7 @@ * @return A key-value pair representing the logs for this source and the * identifier. */ - // clang-format off - // TODO(crbug.com/781018): Clang isn't formatting this correctly. default @Nullable Pair<String, String> getLogs() { return null; } - // clang-format on } \ No newline at end of file
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ScreenshotSource.java b/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/ScreenshotSource.java similarity index 100% rename from chrome/android/java/src/org/chromium/chrome/browser/feedback/ScreenshotSource.java rename to chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/ScreenshotSource.java
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index 5bfc670..64fbfbc 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -1556,8 +1556,8 @@ }, { "name": "enable-force-dark", - "owners": [ "pdr" ], - "expiry_milestone": 90 + "owners": [ "pdr", "khorimoto@chromium.org", "jessejames@chromium.org" ], + "expiry_milestone": 99 }, { "name": "enable-fs-nosymfollow", @@ -1821,6 +1821,11 @@ "expiry_milestone": 90 }, { + "name": "enable-navigation-predictor-renderer-warmup", + "owners": [ "tbansal", "ryansturm", "instant-nav" ], + "expiry_milestone": 95 + }, + { "name": "enable-network-logging-to-file", "owners": [ "eroman", "net-dev" ], // This flag is used to capture early-browser network logging on platforms @@ -4760,6 +4765,11 @@ "expiry_milestone": 86 }, { + "name": "webui-dark-mode", + "owners": [ "khorimoto@chromium.org", "jessejames@chromium.org" ], + "expiry_milestone": 99 + }, + { "name": "webui-tab-strip", "owners": [ "collinbaker", "johntlee" ], "expiry_milestone": 89
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index c85f06db..79be1ff0 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc
@@ -592,6 +592,12 @@ "Enables navigation predictor feature that predicts the next likely " "navigation using a set of heuristics."; +const char kEnableNavigationPredictorRendererWarmupName[] = + "Enables navigation predictor"; +const char kEnableNavigationPredictorRendererWarmupDescription[] = + "Enables navigation predictor feature that predicts the next likely " + "navigation using a set of heuristics."; + const char kEnablePreconnectToSearchName[] = "Enables preconnections to default search engine"; const char kEnablePreconnectToSearchDescription[] = @@ -4481,6 +4487,11 @@ const char kVmCameraMicIndicatorsAndNotificationsDescription[] = "Show VM camera/mic indicators/notifications"; +const char kWebuiDarkModeName[] = "WebUI dark mode"; +const char kWebuiDarkModeDescription[] = + "Allows dark mode usage in WebUI. Note that this does not necessary enable " + "dark mode, which is enabled via the #enable-force-dark flag."; + const char kWifiSyncAndroidName[] = "Sync Wi-Fi network configurations with Android"; const char kWifiSyncAndroidDescription[] =
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index c9ace15..3d820a28 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -357,6 +357,9 @@ extern const char kEnableNavigationPredictorName[]; extern const char kEnableNavigationPredictorDescription[]; +extern const char kEnableNavigationPredictorRendererWarmupName[]; +extern const char kEnableNavigationPredictorRendererWarmupDescription[]; + extern const char kEnablePreconnectToSearchName[]; extern const char kEnablePreconnectToSearchDescription[]; @@ -2612,6 +2615,9 @@ extern const char kVmCameraMicIndicatorsAndNotificationsName[]; extern const char kVmCameraMicIndicatorsAndNotificationsDescription[]; +extern const char kWebuiDarkModeName[]; +extern const char kWebuiDarkModeDescription[]; + extern const char kWifiSyncAndroidName[]; extern const char kWifiSyncAndroidDescription[];
diff --git a/chrome/browser/media/platform_verification_impl.cc b/chrome/browser/media/platform_verification_impl.cc index e631fc5..61378c7 100644 --- a/chrome/browser/media/platform_verification_impl.cc +++ b/chrome/browser/media/platform_verification_impl.cc
@@ -14,9 +14,12 @@ #if BUILDFLAG(ENABLE_CDM_STORAGE_ID) #include "chrome/browser/media/cdm_storage_id.h" #include "chrome/browser/media/media_storage_id_salt.h" +#include "content/public/browser/render_process_host.h" +#endif + +#if BUILDFLAG(ENABLE_CDM_STORAGE_ID) || defined(OS_CHROMEOS) #include "chrome/browser/profiles/profile.h" #include "content/public/browser/render_frame_host.h" -#include "content/public/browser/render_process_host.h" #endif #if defined(OS_CHROMEOS) @@ -163,6 +166,15 @@ #if defined(OS_CHROMEOS) void PlatformVerificationImpl::IsVerifiedAccessEnabled( IsVerifiedAccessEnabledCallback callback) { + // If we are in guest/incognito mode, then verified access is effectively + // disabled. + Profile* profile = + Profile::FromBrowserContext(render_frame_host_->GetBrowserContext()); + if (profile->IsOffTheRecord() || profile->IsGuestSession()) { + std::move(callback).Run(false); + return; + } + bool enabled_for_device = false; if (!chromeos::CrosSettings::Get()->GetBoolean( chromeos::kAttestationForContentProtectionEnabled,
diff --git a/chrome/browser/media/router/discovery/mdns/cast_media_sink_service_impl.cc b/chrome/browser/media/router/discovery/mdns/cast_media_sink_service_impl.cc index 9f89a2c..588b6538a 100644 --- a/chrome/browser/media/router/discovery/mdns/cast_media_sink_service_impl.cc +++ b/chrome/browser/media/router/discovery/mdns/cast_media_sink_service_impl.cc
@@ -611,8 +611,8 @@ if (logger_.is_bound()) { logger_->LogError(mojom::LogCategory::kDiscovery, kLoggerComponent, - "Cannot Open Channel for sink: " + sink.sink().id(), "", - "", ""); + "Failed to open a channel for sink", sink.sink().id(), "", + ""); } RemoveSink(sink); }
diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc index 7bf09aa..898a870 100644 --- a/chrome/browser/metrics/chrome_metrics_service_client.cc +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
@@ -144,6 +144,8 @@ #endif #if defined(OS_CHROMEOS) +#include "base/feature_list.h" +#include "chrome/browser/chromeos/child_accounts/family_features.h" #include "chrome/browser/chromeos/printing/printer_metrics_provider.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" #include "chrome/browser/metrics/ambient_mode_metrics_provider.h" @@ -743,8 +745,10 @@ metrics_service_->RegisterMetricsProvider( std::make_unique<AmbientModeMetricsProvider>()); - metrics_service_->RegisterMetricsProvider( - std::make_unique<FamilyUserMetricsProvider>()); + if (base::FeatureList::IsEnabled(chromeos::kFamilyUserMetricsProvider)) { + metrics_service_->RegisterMetricsProvider( + std::make_unique<FamilyUserMetricsProvider>()); + } #endif // defined(OS_CHROMEOS) #if !defined(OS_CHROMEOS)
diff --git a/chrome/browser/metrics/family_user_metrics_provider.cc b/chrome/browser/metrics/family_user_metrics_provider.cc index 91226ee..a69013e 100644 --- a/chrome/browser/metrics/family_user_metrics_provider.cc +++ b/chrome/browser/metrics/family_user_metrics_provider.cc
@@ -4,12 +4,10 @@ #include "chrome/browser/metrics/family_user_metrics_provider.h" -#include "base/feature_list.h" #include "base/logging.h" #include "base/metrics/histogram_functions.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/browser_process_platform_part.h" -#include "chrome/browser/chromeos/child_accounts/family_features.h" #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" @@ -17,12 +15,14 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/browser/signin/identity_manager_factory.h" #include "components/policy/proto/device_management_backend.pb.h" -#include "components/signin/public/identity_manager/identity_manager.h" +#include "components/session_manager/core/session_manager.h" #include "components/user_manager/user.h" #include "components/user_manager/user_manager.h" namespace { +constexpr char kHistogramName[] = "ChromeOS.FamilyUser.LogSegment"; + // Returns user's segment for metrics logging. enterprise_management::PolicyData::MetricsLogSegment GetMetricsLogSegment( Profile* profile) { @@ -37,11 +37,6 @@ return policy->metrics_log_segment(); } -bool IsLoggedIn() { - return user_manager::UserManager::IsInitialized() && - user_manager::UserManager::Get()->IsUserLoggedIn(); -} - bool IsEnterpriseManaged() { policy::BrowserPolicyConnectorChromeOS* connector = g_browser_process->platform_part()->browser_policy_connector_chromeos(); @@ -50,47 +45,97 @@ } // namespace -// static -const char FamilyUserMetricsProvider::kFamilyUserLogSegmentHistogramName[] = - "ChromeOS.FamilyUser.LogSegment"; +FamilyUserMetricsProvider::FamilyUserMetricsProvider() + : identity_manager_observer_(this) { + session_manager::SessionManager* session_manager = + session_manager::SessionManager::Get(); + // The |session_manager| is nullptr only for unit tests. + if (session_manager) + session_manager->AddObserver(this); +} -FamilyUserMetricsProvider::FamilyUserMetricsProvider() = default; +FamilyUserMetricsProvider::~FamilyUserMetricsProvider() { + session_manager::SessionManager* session_manager = + session_manager::SessionManager::Get(); + // The |session_manager| is nullptr only for unit tests. + if (session_manager) + session_manager->RemoveObserver(this); +} -FamilyUserMetricsProvider::~FamilyUserMetricsProvider() = default; - +// This function is called at unpredictable intervals throughout the entire +// ChromeOS session, so guarantee it will never crash. void FamilyUserMetricsProvider::ProvideCurrentSessionData( metrics::ChromeUserMetricsExtension* uma_proto_unused) { - if (!base::FeatureList::IsEnabled(chromeos::kFamilyUserMetricsProvider)) + if (!log_segment_) return; - if (!IsLoggedIn()) + base::UmaHistogramEnumeration(kHistogramName, log_segment_.value()); +} + +void FamilyUserMetricsProvider::OnUserSessionStarted(bool is_primary_user) { + if (!is_primary_user) return; const user_manager::User* primary_user = user_manager::UserManager::Get()->GetPrimaryUser(); - if (!primary_user || !primary_user->is_profile_created()) - return; + DCHECK(primary_user); + DCHECK(primary_user->is_profile_created()); Profile* profile = chromeos::ProfileHelper::Get()->GetProfileByUser(primary_user); DCHECK(profile); DCHECK(chromeos::ProfileHelper::IsRegularProfile(profile)); + + // Check for incognito profiles. + if (!profile->IsRegularProfile()) { + log_segment_ = LogSegment::kOther; + return; + } + signin::IdentityManager* identity_manager = IdentityManagerFactory::GetForProfile(profile); + DCHECK(identity_manager); + if (!identity_manager_observer_.IsObserving(identity_manager)) + identity_manager_observer_.Add(identity_manager); auto accounts_size = identity_manager->GetAccountsWithRefreshTokens().size(); - DCHECK_GT(accounts_size, 0); - LogSegment log_segment = LogSegment::kOther; if (profile->IsChild() && accounts_size == 1) { - log_segment = LogSegment::kSupervisedUser; + log_segment_ = LogSegment::kSupervisedUser; } else if (profile->IsChild() && accounts_size > 1) { // If a supervised user has a secondary account, then the secondary // account must be EDU. - log_segment = LogSegment::kSupervisedStudent; + log_segment_ = LogSegment::kSupervisedStudent; } else if (!IsEnterpriseManaged() && GetMetricsLogSegment(profile) == enterprise_management::PolicyData::K12) { DCHECK(profile->GetProfilePolicyConnector()->IsManaged()); // This is a K-12 EDU user on an unmanaged ChromeOS device. - log_segment = LogSegment::kStudentAtHome; + log_segment_ = LogSegment::kStudentAtHome; + } else { + log_segment_ = LogSegment::kOther; } - base::UmaHistogramEnumeration(kFamilyUserLogSegmentHistogramName, - log_segment); +} + +// Called when the user adds a secondary account. We're only interested in +// detecting when a supervised user adds an EDU secondary account. +void FamilyUserMetricsProvider::OnRefreshTokenUpdatedForAccount( + const CoreAccountInfo& account_info) { + const user_manager::User* primary_user = + user_manager::UserManager::Get()->GetPrimaryUser(); + Profile* profile = + chromeos::ProfileHelper::Get()->GetProfileByUser(primary_user); + // Check for incognito profiles. + if (!profile->IsRegularProfile()) + return; + + signin::IdentityManager* identity_manager = + IdentityManagerFactory::GetForProfile(profile); + auto accounts_size = identity_manager->GetAccountsWithRefreshTokens().size(); + + // If a supervised user has a secondary account, then the secondary account + // must be EDU. + if (profile->IsChild() && accounts_size > 1) + log_segment_ = LogSegment::kSupervisedStudent; +} + +// static +const char* FamilyUserMetricsProvider::GetHistogramNameForTesting() { + return kHistogramName; }
diff --git a/chrome/browser/metrics/family_user_metrics_provider.h b/chrome/browser/metrics/family_user_metrics_provider.h index 8c5f182..3e8fcffe 100644 --- a/chrome/browser/metrics/family_user_metrics_provider.h +++ b/chrome/browser/metrics/family_user_metrics_provider.h
@@ -5,7 +5,11 @@ #ifndef CHROME_BROWSER_METRICS_FAMILY_USER_METRICS_PROVIDER_H_ #define CHROME_BROWSER_METRICS_FAMILY_USER_METRICS_PROVIDER_H_ +#include "base/optional.h" +#include "base/scoped_observer.h" #include "components/metrics/metrics_provider.h" +#include "components/session_manager/core/session_manager_observer.h" +#include "components/signin/public/identity_manager/identity_manager.h" namespace metrics { class ChromeUserMetricsExtension; @@ -13,7 +17,10 @@ // Categorizes the current user into a family user type for UMA dashboard // filtering. This metrics provider is ChromeOS specific. -class FamilyUserMetricsProvider : public metrics::MetricsProvider { +class FamilyUserMetricsProvider + : public metrics::MetricsProvider, + public session_manager::SessionManagerObserver, + public signin::IdentityManager::Observer { public: // These enum values represent the current user's log segment for the Family // Experiences team's metrics. @@ -21,7 +28,8 @@ // numeric values should never be reused. Please keep in sync with // "FamilyUserLogSegment" in src/tools/metrics/histograms/enums.xml. enum class LogSegment { - // User does not fall into any of the below categories. + // User does not fall into any of the below categories. For example, this + // bucket includes regular users. kOther = 0, // Supervised primary account with no secondary accounts. kSupervisedUser = 1, @@ -38,18 +46,33 @@ kMaxValue = kStudentAtHome }; - // Family user metrics log segment histogram name. - static const char kFamilyUserLogSegmentHistogramName[]; - FamilyUserMetricsProvider(); - ~FamilyUserMetricsProvider() override; FamilyUserMetricsProvider(const FamilyUserMetricsProvider&) = delete; FamilyUserMetricsProvider& operator=(const FamilyUserMetricsProvider&) = delete; + ~FamilyUserMetricsProvider() override; // MetricsProvider: void ProvideCurrentSessionData( metrics::ChromeUserMetricsExtension* uma_proto_unused) override; + + // session_manager::SessionManagerObserver: + void OnUserSessionStarted(bool is_primary_user) override; + + // signin::IdentityManager::Observer: + void OnRefreshTokenUpdatedForAccount( + const CoreAccountInfo& account_info) override; + + static const char* GetHistogramNameForTesting(); + + private: + // The only way the |log_segment_| can change during a ChromeOS session is if + // a child user adds an EDU secondary account. Since this action doesn't + // happen often, cache the log segment. + base::Optional<LogSegment> log_segment_; + + ScopedObserver<signin::IdentityManager, signin::IdentityManager::Observer> + identity_manager_observer_; }; #endif // CHROME_BROWSER_METRICS_FAMILY_USER_METRICS_PROVIDER_H_
diff --git a/chrome/browser/metrics/family_user_metrics_provider_browsertest.cc b/chrome/browser/metrics/family_user_metrics_provider_browsertest.cc index 4f01b97..597eee8 100644 --- a/chrome/browser/metrics/family_user_metrics_provider_browsertest.cc +++ b/chrome/browser/metrics/family_user_metrics_provider_browsertest.cc
@@ -6,7 +6,12 @@ #include "base/optional.h" #include "base/test/metrics/histogram_tester.h" +#include "base/test/scoped_feature_list.h" +#include "base/time/time.h" +#include "chrome/browser/browser_process.h" +#include "chrome/browser/chromeos/child_accounts/family_features.h" #include "chrome/browser/chromeos/login/test/fake_gaia_mixin.h" +#include "chrome/browser/chromeos/login/test/guest_session_mixin.h" #include "chrome/browser/chromeos/login/test/scoped_policy_update.h" #include "chrome/browser/chromeos/login/test/user_policy_mixin.h" #include "chrome/browser/profiles/profile.h" @@ -15,10 +20,13 @@ #include "chrome/browser/ui/browser.h" #include "chrome/test/base/mixin_based_in_process_browser_test.h" #include "components/account_id/account_id.h" +#include "components/metrics/metrics_service.h" #include "components/signin/public/identity_manager/account_info.h" #include "components/signin/public/identity_manager/identity_manager.h" #include "components/signin/public/identity_manager/identity_test_utils.h" #include "content/public/test/browser_test.h" +#include "third_party/metrics_proto/chrome_user_metrics_extension.pb.h" +#include "third_party/metrics_proto/system_profile.pb.h" namespace { @@ -56,6 +64,20 @@ return base::nullopt; } +void ProvideCurrentSessionData() { + // The purpose of the below call is to avoid a DCHECK failure in an unrelated + // metrics provider, in |FieldTrialsProvider::ProvideCurrentSessionData()|. + metrics::SystemProfileProto system_profile_proto; + g_browser_process->metrics_service() + ->GetDelegatingProviderForTesting() + ->ProvideSystemProfileMetricsWithLogCreationTime(base::TimeTicks::Now(), + &system_profile_proto); + metrics::ChromeUserMetricsExtension uma_proto; + g_browser_process->metrics_service() + ->GetDelegatingProviderForTesting() + ->ProvideCurrentSessionData(&uma_proto); +} + } // namespace class FamilyUserMetricsProviderTest @@ -63,6 +85,11 @@ public testing::WithParamInterface< FamilyUserMetricsProvider::LogSegment> { public: + FamilyUserMetricsProviderTest() { + scoped_feature_list_.InitAndEnableFeature( + chromeos::kFamilyUserMetricsProvider); + } + void SetUpInProcessBrowserTestFixture() override { MixinBasedInProcessBrowserTest::SetUpInProcessBrowserTestFixture(); @@ -85,18 +112,20 @@ // PolicyData. // TODO(crbug/1112885): Use LocalPolicyTestServer when this is fixed. /*use_local_policy_server=*/false}; + + private: + base::test::ScopedFeatureList scoped_feature_list_; }; -IN_PROC_BROWSER_TEST_P(FamilyUserMetricsProviderTest, DISABLED_UserCategory) { +IN_PROC_BROWSER_TEST_P(FamilyUserMetricsProviderTest, UserCategory) { base::HistogramTester histogram_tester; - FamilyUserMetricsProvider provider; // Simulate calling ProvideCurrentSessionData() prior to logging in. // This call should return prematurely. - provider.ProvideCurrentSessionData(/*uma_proto_unused=*/nullptr); + ProvideCurrentSessionData(); // No metrics were recorded. histogram_tester.ExpectTotalCount( - FamilyUserMetricsProvider::kFamilyUserLogSegmentHistogramName, 0); + FamilyUserMetricsProvider::GetHistogramNameForTesting(), 0); logged_in_user_mixin_.LogInUser(); @@ -115,11 +144,10 @@ } // Simulate calling ProvideCurrentSessionData() after logging in. - provider.ProvideCurrentSessionData(/*uma_proto_unused=*/nullptr); + ProvideCurrentSessionData(); histogram_tester.ExpectUniqueSample( - FamilyUserMetricsProvider::kFamilyUserLogSegmentHistogramName, - log_segment, 1); + FamilyUserMetricsProvider::GetHistogramNameForTesting(), log_segment, 1); } INSTANTIATE_TEST_SUITE_P( @@ -129,3 +157,29 @@ FamilyUserMetricsProvider::LogSegment::kSupervisedStudent, FamilyUserMetricsProvider::LogSegment::kStudentAtHome, FamilyUserMetricsProvider::LogSegment::kOther)); + +class FamilyUserMetricsProviderGuestModeTest + : public MixinBasedInProcessBrowserTest { + public: + FamilyUserMetricsProviderGuestModeTest() { + scoped_feature_list_.InitAndEnableFeature( + chromeos::kFamilyUserMetricsProvider); + } + + private: + chromeos::GuestSessionMixin guest_session_mixin_{&mixin_host_}; + + base::test::ScopedFeatureList scoped_feature_list_; +}; + +// Prevents a regression to crbug/1137352. +IN_PROC_BROWSER_TEST_F(FamilyUserMetricsProviderGuestModeTest, + NoCrashInGuestMode) { + base::HistogramTester histogram_tester; + + ProvideCurrentSessionData(); + + histogram_tester.ExpectUniqueSample( + FamilyUserMetricsProvider::GetHistogramNameForTesting(), + FamilyUserMetricsProvider::LogSegment::kOther, 1); +}
diff --git a/chrome/browser/navigation_predictor/navigation_predictor_features.cc b/chrome/browser/navigation_predictor/navigation_predictor_features.cc index 7f24f44..03e0d6d 100644 --- a/chrome/browser/navigation_predictor/navigation_predictor_features.cc +++ b/chrome/browser/navigation_predictor/navigation_predictor_features.cc
@@ -29,4 +29,7 @@ "NavigationPredictorPreconnectSocketCompletionTime", base::FEATURE_DISABLED_BY_DEFAULT}; +const base::Feature kNavigationPredictorRendererWarmup{ + "NavigationPredictorRendererWarmup", base::FEATURE_DISABLED_BY_DEFAULT}; + } // namespace features
diff --git a/chrome/browser/navigation_predictor/navigation_predictor_features.h b/chrome/browser/navigation_predictor/navigation_predictor_features.h index c75bf4b..6d277ea 100644 --- a/chrome/browser/navigation_predictor/navigation_predictor_features.h +++ b/chrome/browser/navigation_predictor/navigation_predictor_features.h
@@ -15,6 +15,7 @@ extern const base::Feature kNavigationPredictorEnablePreconnectOnSameDocumentNavigations; extern const base::Feature kNavigationPredictorPreconnectSocketCompletionTime; +extern const base::Feature kNavigationPredictorRendererWarmup; } // namespace features
diff --git a/chrome/browser/navigation_predictor/navigation_predictor_renderer_warmup_client.cc b/chrome/browser/navigation_predictor/navigation_predictor_renderer_warmup_client.cc index b5261d3..b93e2ec2 100644 --- a/chrome/browser/navigation_predictor/navigation_predictor_renderer_warmup_client.cc +++ b/chrome/browser/navigation_predictor/navigation_predictor_renderer_warmup_client.cc
@@ -13,6 +13,7 @@ #include "base/system/sys_info.h" #include "base/task/post_task.h" #include "base/time/default_tick_clock.h" +#include "chrome/browser/navigation_predictor/navigation_predictor_features.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/search_engines/template_url_service_factory.h" #include "components/search_engines/template_url_service.h" @@ -28,11 +29,6 @@ #include "url/gurl.h" #include "url/origin.h" -namespace { -const base::Feature kNavigationPredictorRendererWarmup{ - "NavigationPredictorRendererWarmup", base::FEATURE_DISABLED_BY_DEFAULT}; -} - NavigationPredictorRendererWarmupClient::PredictionMetrics:: PredictionMetrics() = default; NavigationPredictorRendererWarmupClient::PredictionMetrics:: @@ -45,38 +41,38 @@ const base::TickClock* clock) : profile_(profile), counterfactual_(base::GetFieldTrialParamByFeatureAsBool( - kNavigationPredictorRendererWarmup, + features::kNavigationPredictorRendererWarmup, "counterfactual", false)), mem_threshold_mb_(base::GetFieldTrialParamByFeatureAsInt( - kNavigationPredictorRendererWarmup, + features::kNavigationPredictorRendererWarmup, "mem_threshold_mb", 1024)), warmup_on_dse_(base::GetFieldTrialParamByFeatureAsBool( - kNavigationPredictorRendererWarmup, + features::kNavigationPredictorRendererWarmup, "warmup_on_dse", true)), use_navigation_predictions_(base::GetFieldTrialParamByFeatureAsBool( - kNavigationPredictorRendererWarmup, + features::kNavigationPredictorRendererWarmup, "use_navigation_predictions", true)), examine_top_n_predictions_(base::GetFieldTrialParamByFeatureAsInt( - kNavigationPredictorRendererWarmup, + features::kNavigationPredictorRendererWarmup, "examine_top_n_predictions", 10)), prediction_crosss_origin_threshold_( base::GetFieldTrialParamByFeatureAsDouble( - kNavigationPredictorRendererWarmup, + features::kNavigationPredictorRendererWarmup, "prediction_crosss_origin_threshold", 0.5)), cooldown_duration_(base::TimeDelta::FromMilliseconds( base::GetFieldTrialParamByFeatureAsInt( - kNavigationPredictorRendererWarmup, + features::kNavigationPredictorRendererWarmup, "cooldown_duration_ms", 60 * 1000))), renderer_warmup_delay_(base::TimeDelta::FromMilliseconds( base::GetFieldTrialParamByFeatureAsInt( - kNavigationPredictorRendererWarmup, + features::kNavigationPredictorRendererWarmup, "renderer_warmup_delay_ms", 0))) { if (clock) { @@ -113,7 +109,8 @@ return; } - if (!base::FeatureList::IsEnabled(kNavigationPredictorRendererWarmup)) { + if (!base::FeatureList::IsEnabled( + features::kNavigationPredictorRendererWarmup)) { return; }
diff --git a/chrome/browser/performance_manager/persistence/site_data/site_data_cache_facade.cc b/chrome/browser/performance_manager/persistence/site_data/site_data_cache_facade.cc index a81d5330..cda4ffb 100644 --- a/chrome/browser/performance_manager/persistence/site_data/site_data_cache_facade.cc +++ b/chrome/browser/performance_manager/persistence/site_data/site_data_cache_facade.cc
@@ -40,10 +40,11 @@ } // Creates the real cache on the SiteDataCache's sequence. - SiteDataCacheFacadeFactory::GetInstance()->cache_factory()->Post( - FROM_HERE, &SiteDataCacheFactory::OnBrowserContextCreated, - browser_context->UniqueId(), browser_context->GetPath(), - parent_context_id); + SiteDataCacheFacadeFactory::GetInstance() + ->cache_factory() + ->AsyncCall(&SiteDataCacheFactory::OnBrowserContextCreated) + .WithArgs(browser_context->UniqueId(), browser_context->GetPath(), + parent_context_id); history::HistoryService* history = HistoryServiceFactory::GetForProfileWithoutCreating( @@ -54,9 +55,10 @@ SiteDataCacheFacade::~SiteDataCacheFacade() { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - SiteDataCacheFacadeFactory::GetInstance()->cache_factory()->Post( - FROM_HERE, &SiteDataCacheFactory::OnBrowserContextDestroyed, - browser_context_->UniqueId()); + SiteDataCacheFacadeFactory::GetInstance() + ->cache_factory() + ->AsyncCall(&SiteDataCacheFactory::OnBrowserContextDestroyed) + .WithArgs(browser_context_->UniqueId()); SiteDataCacheFacadeFactory::GetInstance()->OnFacadeDestroyed(PassKey()); }
diff --git a/chrome/browser/reading_list/android/empty_reading_list_manager.cc b/chrome/browser/reading_list/android/empty_reading_list_manager.cc index 80bf942..98a89299 100644 --- a/chrome/browser/reading_list/android/empty_reading_list_manager.cc +++ b/chrome/browser/reading_list/android/empty_reading_list_manager.cc
@@ -49,6 +49,11 @@ void EmptyReadingListManager::SetReadStatus(const GURL& url, bool read) {} +bool EmptyReadingListManager::GetReadStatus( + const bookmarks::BookmarkNode* node) { + return false; +} + bool EmptyReadingListManager::IsLoaded() const { return true; }
diff --git a/chrome/browser/reading_list/android/empty_reading_list_manager.h b/chrome/browser/reading_list/android/empty_reading_list_manager.h index 852576a..15e7bfa 100644 --- a/chrome/browser/reading_list/android/empty_reading_list_manager.h +++ b/chrome/browser/reading_list/android/empty_reading_list_manager.h
@@ -29,6 +29,7 @@ size_t size() const override; size_t unread_size() const override; void SetReadStatus(const GURL& url, bool read) override; + bool GetReadStatus(const bookmarks::BookmarkNode* node) override; bool IsLoaded() const override; };
diff --git a/chrome/browser/reading_list/android/reading_list_manager.h b/chrome/browser/reading_list/android/reading_list_manager.h index 2bdb7434..a1b14017 100644 --- a/chrome/browser/reading_list/android/reading_list_manager.h +++ b/chrome/browser/reading_list/android/reading_list_manager.h
@@ -80,6 +80,10 @@ // article doesn't exist. virtual void SetReadStatus(const GURL& url, bool read) = 0; + // Gets the read status for a reading list article. The |node| must exist in + // the reading list. + virtual bool GetReadStatus(const bookmarks::BookmarkNode* node) = 0; + // Returns whether the reading list manager is loaded. virtual bool IsLoaded() const = 0; };
diff --git a/chrome/browser/reading_list/android/reading_list_manager_impl.cc b/chrome/browser/reading_list/android/reading_list_manager_impl.cc index 10dd4749..279dc09 100644 --- a/chrome/browser/reading_list/android/reading_list_manager_impl.cc +++ b/chrome/browser/reading_list/android/reading_list_manager_impl.cc
@@ -8,6 +8,7 @@ #include "base/guid.h" #include "base/logging.h" +#include "base/notreached.h" #include "base/strings/utf_string_conversions.h" #include "chrome/grit/generated_resources.h" #include "components/bookmarks/browser/bookmark_node.h" @@ -111,16 +112,9 @@ const BookmarkNode* node) const { if (!node) return false; - if (root_.get() == node) - return true; // Not recursive since there is only one level of children. - for (const auto& child : root_->children()) { - if (node == child.get()) - return true; - } - - return false; + return (root_.get() == node) || (node->parent() == root_.get()); } void ReadingListManagerImpl::Delete(const GURL& url) { @@ -159,6 +153,23 @@ } } +bool ReadingListManagerImpl::GetReadStatus( + const bookmarks::BookmarkNode* node) { + if (node == root_.get()) + return false; + + std::string value; + node->GetMetaInfo(kReadStatusKey, &value); + + if (value == kReadStatusRead) + return true; + if (value == kReadStatusUnread) + return false; + + NOTREACHED() << "May not be reading list node."; + return false; +} + bool ReadingListManagerImpl::IsLoaded() const { return loaded_; }
diff --git a/chrome/browser/reading_list/android/reading_list_manager_impl.h b/chrome/browser/reading_list/android/reading_list_manager_impl.h index 7a42f40b..17233267 100644 --- a/chrome/browser/reading_list/android/reading_list_manager_impl.h +++ b/chrome/browser/reading_list/android/reading_list_manager_impl.h
@@ -42,6 +42,7 @@ size_t size() const override; size_t unread_size() const override; void SetReadStatus(const GURL& url, bool read) override; + bool GetReadStatus(const bookmarks::BookmarkNode* node) override; bool IsLoaded() const override; // Finds the child in the bookmark tree by URL. Returns nullptr if not found.
diff --git a/chrome/browser/reading_list/android/reading_list_manager_impl_unittest.cc b/chrome/browser/reading_list/android/reading_list_manager_impl_unittest.cc index 612ed88..02bc5ff 100644 --- a/chrome/browser/reading_list/android/reading_list_manager_impl_unittest.cc +++ b/chrome/browser/reading_list/android/reading_list_manager_impl_unittest.cc
@@ -160,8 +160,8 @@ EXPECT_EQ(kTitle1, base::UTF16ToUTF8(node->GetTitle())); } -// Verifes SetReadStatus() API. -TEST_F(ReadingListManagerImplTest, SetReadStatus) { +// Verifes SetReadStatus()/GetReadStatus() API. +TEST_F(ReadingListManagerImplTest, ReadStatus) { GURL url(kURL); manager()->SetReadStatus(url, true); EXPECT_EQ(0u, manager()->size()); @@ -178,6 +178,7 @@ node->GetMetaInfo(kReadStatusKey, &read_status); EXPECT_EQ(kReadStatusRead, read_status); EXPECT_EQ(0u, manager()->unread_size()); + EXPECT_TRUE(manager()->GetReadStatus(node)); // Mark as unread. manager()->SetReadStatus(url, false); @@ -185,6 +186,15 @@ node->GetMetaInfo(kReadStatusKey, &read_status); EXPECT_EQ(kReadStatusUnread, read_status); EXPECT_EQ(1u, manager()->unread_size()); + EXPECT_FALSE(manager()->GetReadStatus(node)); + + // Node not in the reading list should return false. + auto other_node = + std::make_unique<BookmarkNode>(0, base::GenerateGUID(), url); + EXPECT_FALSE(manager()->GetReadStatus(node)); + + // Root node should return false. + EXPECT_FALSE(manager()->GetReadStatus(manager()->GetRoot())); } } // namespace
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_iw.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_iw.xtb index a7bcc7c..624ccfb3 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_iw.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_iw.xtb
@@ -350,7 +350,7 @@ <translation id="3549680091535286226">מקישים עם 2 אצבעות כדי להפסיק את הדיבור באופן זמני</translation> <translation id="3564729643041517261">התצוגה הנוכחית היא זה לצד זה</translation> <translation id="3573145950452451508">הכותרת התחתונה של הדף</translation> -<translation id="3587482841069643663">הכל</translation> +<translation id="3587482841069643663">הכול</translation> <translation id="3589661172894441357">מילון מונחים</translation> <translation id="3591784666823501596">כחול מלכותי</translation> <translation id="3594207934078151302">ירוק ים בינוני</translation> @@ -529,7 +529,7 @@ <translation id="5011664330025416377">כדי להפעיל, יש להקיש על Search+מקש הרווח</translation> <translation id="5012724933919010465"><ph name="NAME" />, סימנת את לחצן הבחירה של האפשרות בתפריט</translation> <translation id="5020651427400641814">הפעלה של תיעוד דיבור</translation> -<translation id="5041394372352067729">העבר תצוגת ברייל לחלק העליון של הדף</translation> +<translation id="5041394372352067729">העברת תצוגת ברייל לחלק העליון של הדף</translation> <translation id="5042770794184672516">הגברת עוצמת הדיבור</translation> <translation id="5042992464904238023">תוכן</translation> <translation id="5050015258024679800">הכותרת הקודמת של רמה 4</translation> @@ -645,7 +645,7 @@ <translation id="5955304353782037793">app</translation> <translation id="5956928062748260866">דו-שיח</translation> <translation id="5963413905009737549">קטע</translation> -<translation id="5968607524793740041">הצג תפריט הקשר</translation> +<translation id="5968607524793740041">הצגת תפריט הקשר</translation> <translation id="597121107011153418">{COUNT,plural, =1{עם פריט אחד}two{with # items}many{with # items}other{עם # פריטים}}</translation> <translation id="5981446804259161541">ציאן בהיר</translation> <translation id="5983179082906765664">העמק את רמת הפירוט של הניווט</translation> @@ -659,7 +659,7 @@ <translation id="6034000775414344507">אפור בהיר</translation> <translation id="6036135911048686884">עיון במגע</translation> <translation id="6037602951055904232">הזזה קדימה</translation> -<translation id="6044160928851315051">החשך את המסך</translation> +<translation id="6044160928851315051">החשכת המסך</translation> <translation id="6082768461603900813">ניווט בסיסי</translation> <translation id="609281021724813947">אין מחוון קודם</translation> <translation id="6100239002225743044">העברת הסמן שורה אחת למעלה</translation> @@ -706,7 +706,7 @@ <translation id="6475604559827479857">הצבע של הדגשת המילים:</translation> <translation id="6493991254603208962">הפחתת הבהירות</translation> <translation id="6501595918865591267">טורקיז</translation> -<translation id="6508059270146105198">העבר תצוגת ברייל לתחתית הדף</translation> +<translation id="6508059270146105198">העברת תצוגת ברייל לתחתית הדף</translation> <translation id="6521550811716689390">סגול כהה</translation> <translation id="6536157907112457272">פשתן</translation> <translation id="6540201937398578274">ב-ChromeVox, מקש החיפוש הוא מקש הצירוף. רוב הרצפים של מקשי הקיצור ב-ChromeVox מתחילים עם מקש החיפוש. כמו כן, מקשי החיצים משמשים לניווט.</translation> @@ -789,7 +789,7 @@ <translation id="7209751026933045237">אין עוד מחוונים</translation> <translation id="7218782500591078391">מטה-זהב</translation> <translation id="7226216518520804442">lst</translation> -<translation id="7229749224609077523">בחר טבלת ברייל 6 נקודות:</translation> +<translation id="7229749224609077523">יש לבחור טבלת ברייל 6 נקודות:</translation> <translation id="72393384879519786">כותרת</translation> <translation id="7240858705033280249">מעבר אל הפרטים</translation> <translation id="7241683698754534149">פתח תיאור ארוך בכרטיסייה חדשה</translation> @@ -839,7 +839,7 @@ <translation id="7604026522577407655">עבור לתחילת העמודה הנוכחית</translation> <translation id="7604451927827590395">hdng</translation> <translation id="7609342235116740824">הכרזה על כתובת האתר של הדף הנוכחי</translation> -<translation id="7609363189280667021">החלף כיתובי ברייל</translation> +<translation id="7609363189280667021">החלפת כיתובי ברייל</translation> <translation id="761303759119251275">קרדיט</translation> <translation id="762020119231868829">השהה את כל הווידאג'טים של מדיה הפועלים כעת</translation> <translation id="7625690649919402823">הטבלה הבאה</translation> @@ -976,7 +976,7 @@ <translation id="867187640362843212">כותרת 5</translation> <translation id="8696284982970258155">טל דבש</translation> <translation id="8697111817566059991">{COUNT,plural, =1{קו ניצב}two{# סימני קו ניצב}many{# סימני קו ניצב}other{# סימני קו ניצב}}</translation> -<translation id="8743786158317878347">היכנס לתוכן מובנה, כמו טבלאות</translation> +<translation id="8743786158317878347">כניסה לתוכן מובנה, כמו טבלאות</translation> <translation id="8747966237988593539">רשימה לפי סדר</translation> <translation id="8749988712346667988">כסף</translation> <translation id="875769700429317857">ההורדה של <ph name="FILE_NAME" /> הושלמה</translation> @@ -1035,7 +1035,7 @@ <translation id="958854023026327378">החלקה מטה עם אצבע אחת</translation> <translation id="962913030769097253">הכותרת הבאה של רמה 1</translation> <translation id="966588271015727539">בחירת צג ברייל תואם Bluetooth</translation> -<translation id="973955474346881951">הפעל/השבת מצב דביק</translation> +<translation id="973955474346881951">הפעלה/השבתה של מצב דביק</translation> <translation id="985654871861528815">העברת הסמן שורה אחת למטה</translation> <translation id="992256792861109788">ורוד</translation> </translationbundle> \ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_no.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_no.xtb index b2a54f4..688c7e21 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_no.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_no.xtb
@@ -349,7 +349,7 @@ <translation id="3549141990712742152">klipp ut <ph name="TEXT" />.</translation> <translation id="3549680091535286226">Trykk med to fingre for å stoppe høytlesningen midlertidig</translation> <translation id="3564729643041517261">Nåværende visningsstil er side om side</translation> -<translation id="3573145950452451508">Sidebunn</translation> +<translation id="3573145950452451508">Bunntekst</translation> <translation id="3587482841069643663">Alle</translation> <translation id="3589661172894441357">Ordliste</translation> <translation id="3591784666823501596">Kongeblå</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_vi.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_vi.xtb index 89685bb..1257e0d 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_vi.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_vi.xtb
@@ -68,7 +68,7 @@ <translation id="1383876407941801731">Tìm kiếm</translation> <translation id="1396114365388024581">tablst</translation> <translation id="1405567553485452995">Xanh lục nhạt</translation> -<translation id="141454040365657399">Tiêu đề trang</translation> +<translation id="141454040365657399">Đầu đề trang</translation> <translation id="1417889266572670458">Màu xanh hải quân</translation> <translation id="1431911867058218151">Màu mận chín</translation> <translation id="1439316808600711881">rgn</translation>
diff --git a/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence_controller.js b/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence_controller.js index fadbb93..2c05f6d 100644 --- a/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence_controller.js +++ b/chrome/browser/resources/chromeos/edu_coexistence/edu_coexistence_controller.js
@@ -23,6 +23,8 @@ * eduCoexistenceId: (string), * platformVersion: (string), * releaseChannel: (string), + * email: (string|undefined), + * readOnlyEmail: (string|undefined), * }} */ export let EduCoexistenceParams; @@ -42,6 +44,12 @@ url.searchParams.set('edu_coexistence_id', params.eduCoexistenceId); url.searchParams.set('platform_version', params.platformVersion); url.searchParams.set('release_channel', params.releaseChannel); + if (params.email) { + url.searchParams.set('email', params.email); + if (params.readOnlyEmail) { + url.searchParams.set('read_only_email', params.readOnlyEmail); + } + } return url; }
diff --git a/chrome/browser/resources/discards/database_tab.js b/chrome/browser/resources/discards/database_tab.js index 893b0710..76cbd33 100644 --- a/chrome/browser/resources/discards/database_tab.js +++ b/chrome/browser/resources/discards/database_tab.js
@@ -400,11 +400,12 @@ if (feature.useTimestamp) { const nowSecondsFromEpoch = Math.round(Date.now() / 1000); return 'Used ' + - durationToString(nowSecondsFromEpoch - feature.useTimestamp); + durationToString( + Number(BigInt(nowSecondsFromEpoch) - feature.useTimestamp)); } if (feature.observationDuration) { - return secondsToString(feature.observationDuration); + return secondsToString(Number(feature.observationDuration)); } return 'N/A';
diff --git a/chrome/browser/resources/discards/discards_tab.js b/chrome/browser/resources/discards/discards_tab.js index 96302321..f5c5edfd 100644 --- a/chrome/browser/resources/discards/discards_tab.js +++ b/chrome/browser/resources/discards/discards_tab.js
@@ -222,10 +222,9 @@ case mojom.LifecycleUnitState.DISCARDED: return 'discarded (' + this.discardReasonToString_(reason) + ')' + ((reason === mojom.LifecycleUnitDiscardReason.URGENT) ? ' at ' + - // Must convert since Date constructor takes - // milliseconds. - (new Date(stateChangeTime.microseconds / 1000)) - .toLocaleString() : + // Must convert since Date constructor takes milliseconds. + (new Date(Number(stateChangeTime.microseconds) / 1000) + .toLocaleString()) : ''); } assertNotReached('Unknown lifecycle state: ' + state);
diff --git a/chrome/browser/resources/discards/graph_doc.js b/chrome/browser/resources/discards/graph_doc.js index e3ce7e1d..99468f7e 100644 --- a/chrome/browser/resources/discards/graph_doc.js +++ b/chrome/browser/resources/discards/graph_doc.js
@@ -231,7 +231,7 @@ /** @implements {d3.ForceNode} */ class GraphNode { constructor(id) { - /** @type {number} */ + /** @type {bigint} */ this.id = id; /** @type {string} */ this.color = 'black'; @@ -316,7 +316,7 @@ return -200; } - /** @return {!Array<number>} an array of node ids. */ + /** @return {!Array<bigint>} an array of node ids. */ get linkTargets() { return []; } @@ -326,7 +326,7 @@ * things, but be owned by exactly one (per relationship type). As such, the * relationship is expressed on the *owned* object. These links are drawn with * an arrow at the beginning of the link, pointing to the owned object. - * @return {!Array<number>} an array of node ids. + * @return {!Array<bigint>} an array of node ids. */ get dashedLinkTargets() { return []; @@ -334,11 +334,14 @@ /** * Selects a color string from an id. - * @param {number} id The id the returned color is selected from. + * @param {bigint} id The id the returned color is selected from. * @return {string} */ selectColor(id) { - return d3.schemeSet3[Math.abs(id) % 12]; + if (id < 0) { + id = -id; + } + return d3.schemeSet3[Number(id % BigInt(12))]; } } @@ -627,7 +630,7 @@ */ this.dashedLinkGroup_ = null; - /** @private {!Map<number, !GraphNode>} */ + /** @private {!Map<bigint, !GraphNode>} */ this.nodes_ = new Map(); /** @@ -846,7 +849,7 @@ */ nodeDescriptions_(nodeDescriptions) { for (const nodeId in nodeDescriptions) { - const node = this.nodes_.get(Number.parseInt(nodeId, 10)); + const node = this.nodes_.get(BigInt(nodeId)); if (node && node.tooltip) { node.tooltip.onDescription(nodeDescriptions[nodeId]); } @@ -889,7 +892,7 @@ } const type = /** @type {string} */ (event.data[0]); - const data = /** @type {Object|number} */ (event.data[1]); + const data = /** @type {Object|number|bigint} */ (event.data[1]); switch (type) { case 'frameCreated': this.frameCreated( @@ -928,7 +931,7 @@ /** @type {!discards.mojom.WorkerInfo} */ (data)); break; case 'nodeDeleted': - this.nodeDeleted(/** @type {number} */ (data)); + this.nodeDeleted(/** @type {bigint} */ (data)); break; case 'nodeDescriptions': this.nodeDescriptions_(/** @type {!Object<string>} */ (data));
diff --git a/chrome/browser/resources/discards/graph_tab_template.js b/chrome/browser/resources/discards/graph_tab_template.js index 62e0ded..41d68cde 100644 --- a/chrome/browser/resources/discards/graph_tab_template.js +++ b/chrome/browser/resources/discards/graph_tab_template.js
@@ -18,7 +18,7 @@ /** * @param {string} type - * @param {Object|number} data + * @param {Object|number|bigint} data */ postMessage_(type, data) { this.contentWindow_.postMessage([type, data], '*'); @@ -118,12 +118,12 @@ */ onMessage_(event) { const type = /** @type {string} */ (event.data[0]); - const data = /** @type {Object|number} */ (event.data[1]); + const data = /** @type {Object|number|bigint} */ (event.data[1]); switch (type) { case 'requestNodeDescriptions': // Forward the request through the mojoms and bounce the reply back. this.graphDump_ - .requestNodeDescriptions(/** @type {!Array<number>} */ (data)) + .requestNodeDescriptions(/** @type {!Array<bigint>} */ (data)) .then( (descriptions) => this.contentWindow_.postMessage( ['nodeDescriptions', descriptions.nodeDescriptionsJson],
diff --git a/chrome/browser/resources/feed_internals/feed_internals.js b/chrome/browser/resources/feed_internals/feed_internals.js index 32c14f9..1d4a2c94 100644 --- a/chrome/browser/resources/feed_internals/feed_internals.js +++ b/chrome/browser/resources/feed_internals/feed_internals.js
@@ -111,9 +111,9 @@ * @return {string} */ function toDateString(timeSinceEpoch) { - return timeSinceEpoch.microseconds === 0 ? - '' : - new Date(timeSinceEpoch.microseconds / 1000).toLocaleString(); + const microseconds = Number(timeSinceEpoch.microseconds); + return microseconds === 0 ? '' : + new Date(microseconds / 1000).toLocaleString(); } /**
diff --git a/chrome/browser/resources/interventions_internals/index.js b/chrome/browser/resources/interventions_internals/index.js index d88edff..410aca9 100644 --- a/chrome/browser/resources/interventions_internals/index.js +++ b/chrome/browser/resources/interventions_internals/index.js
@@ -465,7 +465,7 @@ */ logNewMessage(log) { insertMessageRowToMessageLogTable( - log.time, log.type, log.description, log.url.url, log.pageId); + Number(log.time), log.type, log.description, log.url.url, log.pageId); }, /** @@ -473,7 +473,7 @@ * * @override * @param {!string} host The blocklisted host. - * @param {number} time The time when the host was blocklisted in milliseconds + * @param {bigint} time The time when the host was blocklisted in milliseconds * since Unix epoch. */ onBlocklistedHost(host, time) { @@ -487,7 +487,7 @@ const timeTd = document.createElement('td'); timeTd.setAttribute('class', 'host-blocklisted-time'); - timeTd.textContent = getTimeFormat(time); + timeTd.textContent = getTimeFormat(Number(time)); row.appendChild(timeTd); // TODO(thanhdle): Insert row at correct index. crbug.com/776105. @@ -511,12 +511,12 @@ * Update the blocklist cleared status on the page. * * @override - * @param {number} time The time of the event in milliseconds since Unix + * @param {bigint} time The time of the event in milliseconds since Unix * epoch. */ onBlocklistCleared(time) { const blocklistClearedStatus = $('blocklist-last-cleared-time'); - blocklistClearedStatus.textContent = getTimeFormat(time); + blocklistClearedStatus.textContent = getTimeFormat(Number(time)); // Remove hosts from table. const blocklistedHostsTable = $('blocklisted-hosts-table'); @@ -529,7 +529,8 @@ // Log event message. insertMessageRowToMessageLogTable( - time, 'Blocklist', 'Blocklist Cleared', '' /* URL */, 0 /* pageId */); + Number(time), 'Blocklist', 'Blocklist Cleared', '' /* URL */, + 0 /* pageId */); }, /**
diff --git a/chrome/browser/resources/media/media_feeds.js b/chrome/browser/resources/media/media_feeds.js index 0e91bc2..e7dabd9f 100644 --- a/chrome/browser/resources/media/media_feeds.js +++ b/chrome/browser/resources/media/media_feeds.js
@@ -377,7 +377,7 @@ * @returns {number} */ function timeDeltaToSeconds(timeDelta) { - return timeDelta.microseconds / 1000 / 1000; + return Number(timeDelta.microseconds) / 1000 / 1000; } /**
diff --git a/chrome/browser/resources/new_tab_page/utils.js b/chrome/browser/resources/new_tab_page/utils.js index 2b2e750a..72e8a89 100644 --- a/chrome/browser/resources/new_tab_page/utils.js +++ b/chrome/browser/resources/new_tab_page/utils.js
@@ -65,7 +65,7 @@ * @returns {!mojoBase.mojom.TimeDelta} */ export function mojoTimeDelta(timeDelta) { - return {microseconds: Math.floor(timeDelta * 1000)}; + return {microseconds: BigInt(Math.floor(timeDelta * 1000))}; } /**
diff --git a/chrome/browser/resources/pwa.html b/chrome/browser/resources/pwa.html deleted file mode 100644 index 4ee165b..0000000 --- a/chrome/browser/resources/pwa.html +++ /dev/null
@@ -1,7 +0,0 @@ -<!-- TODO(calamity): Remove this once manifest URL installs are implemented. --> -<!-- See https://crbug.com/896575 for details --> -<html> -<head> - <link rel="manifest" href="manifest.json"> -</head> -</html>
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/BUILD.gn b/chrome/browser/resources/settings/chromeos/internet_page/BUILD.gn index 8550600..b2248eef 100644 --- a/chrome/browser/resources/settings/chromeos/internet_page/BUILD.gn +++ b/chrome/browser/resources/settings/chromeos/internet_page/BUILD.gn
@@ -10,6 +10,7 @@ deps = [ ":cellular_setup_dialog", ":internet_config", + ":internet_detail_menu", ":internet_detail_page", ":internet_known_networks_page", ":internet_page", @@ -67,6 +68,16 @@ extra_sources = [ "$interfaces_path/networking_private_interface.js" ] } +js_library("internet_detail_menu") { + deps = [ + "../..:router", + "//ui/webui/resources/cr_components/chromeos/network:mojo_interface_provider", + "//ui/webui/resources/cr_elements/cr_icon_button:cr_icon_button", + "//ui/webui/resources/js:i18n_behavior", + "//ui/webui/resources/js:web_ui_listener_behavior", + ] +} + js_library("internet_detail_page") { deps = [ ":internet_page_browser_proxy", @@ -194,6 +205,7 @@ ":cellular_setup_dialog.m", ":cellular_setup_settings_delegate.m", ":internet_config.m", + ":internet_detail_menu.m", ":internet_detail_page.m", ":internet_known_networks_page.m", ":internet_page.m", @@ -236,6 +248,19 @@ extra_deps = [ ":internet_config_module" ] } +js_library("internet_detail_menu.m") { + sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_menu.m.js" ] + deps = [ + "//chrome/browser/resources/settings:router.m", + "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", + "//ui/webui/resources/cr_components/chromeos/network:mojo_interface_provider.m", + "//ui/webui/resources/cr_elements/cr_icon_button:cr_icon_button.m", + "//ui/webui/resources/js:i18n_behavior.m", + "//ui/webui/resources/js:web_ui_listener_behavior.m", + ] + extra_deps = [ ":internet_detail_menu_module" ] +} + js_library("internet_detail_page.m") { sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_page.m.js" ] deps = [ @@ -454,6 +479,7 @@ public_deps = [ ":cellular_setup_dialog_module", ":internet_config_module", + ":internet_detail_menu_module", ":internet_detail_page_module", ":internet_known_networks_page_module", ":internet_page_module", @@ -475,6 +501,14 @@ namespace_rewrites = os_settings_namespace_rewrites } +polymer_modulizer("internet_detail_menu") { + js_file = "internet_detail_menu.js" + html_file = "internet_detail_menu.html" + html_type = "dom-module" + auto_imports = os_settings_auto_imports + namespace_rewrites = os_settings_namespace_rewrites +} + polymer_modulizer("internet_detail_page") { js_file = "internet_detail_page.js" html_file = "internet_detail_page.html"
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_menu.html b/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_menu.html new file mode 100644 index 0000000..f4046bf --- /dev/null +++ b/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_menu.html
@@ -0,0 +1,53 @@ +<link rel="import" href="chrome://resources/html/polymer.html"> + +<link rel="import" href="chrome://resources/cr_components/chromeos/network/mojo_interface_provider.html"> +<link rel="import" href="chrome://resources/cr_elements/cr_action_menu/cr_action_menu.html"> +<link rel="import" href="chrome://resources/cr_elements/cr_icon_button/cr_icon_button.html"> +<link rel="import" href="chrome://resources/cr_elements/cr_lazy_render/cr_lazy_render.html"> +<link rel="import" href="chrome://resources/cr_elements/shared_vars_css.html"> +<link rel="import" href="chrome://resources/html/i18n_behavior.html"> +<link rel="import" href="../../router.html"> +<link rel="import" href="../../settings_shared_css.html"> +<link rel="import" href="../os_route.html"> + +<dom-module id="settings-internet-detail-menu"> + <template> + <style include="cr-shared-style settings-shared iron-flex"> + cr-action-menu.dropdown-item { + min-height: 36px; + } + + cr-action-menu hr { + /* Override user-agent border and margin. */ + border: none; + border-top: var(--cr-separator-line); + margin: 6px 0 0 0; + } + </style> + <template is="dom-if" if="[[showDotsButton_]]"> + <cr-icon-button class="icon-more-vert" + title="$i18n{moreActions}" + id="moreNetworkDetail" + on-click="onDotsClick_"> + </cr-icon-button> + </template> + <cr-lazy-render id="menu"> + <template> + <cr-action-menu role-description="$i18n{menu}"> + <button class="dropdown-item" + role="menuitem" + title="$i18n{networkDetailMenuRenameESim}"> + $i18n{networkDetailMenuRenameESim} + </button> + <hr> + <button class="dropdown-item" + role="menuitem" + title="$i18n{networkDetailMenuRemoveESim}"> + $i18n{networkDetailMenuRemoveESim} + </button> + </cr-action-menu> + </template> + </cr-lazy-render> + </template> + <script src="internet_detail_menu.js"></script> +</dom-module>
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_menu.js b/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_menu.js new file mode 100644 index 0000000..0e75a5e7 --- /dev/null +++ b/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_menu.js
@@ -0,0 +1,71 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +/** + * @fileoverview 'settings-internet-detail-menu' is a menu that provides + * additional actions for a network in the network detail page. + */ +Polymer({ + is: 'settings-internet-detail-menu', + + // TODO(crbug.com/1093185): Implement DeepLinkingBehavior and override methods + // to show the actions for search result. + behaviors: [ + settings.RouteObserverBehavior, + ], + + properties: { + /** + * Set in currentRouteChanged() if the network's GUID corresponds + * with a Cellular eSIM network. + * @private + */ + showDotsButton_: { + type: Boolean, + value: false, + }, + }, + + /** + * settings.RouteObserverBehavior + * @param {!settings.Route} route + * @param {!settings.Route} oldRoute + * @protected + */ + currentRouteChanged(route, oldRoute) { + this.showDotsButton_ = false; + if (route != settings.routes.NETWORK_DETAIL || + !loadTimeData.getBoolean('updatedCellularActivationUi')) { + return; + } + + // Check if the current network is Cellular using the GUID in the + // current route. We can't use the 'type' parameter in the url + // directly because Cellular and Tethering share the same subpage and have + // the same 'type' in the route. + const queryParams = settings.Router.getInstance().getQueryParameters(); + const guid = queryParams.get('guid') || ''; + if (!guid) { + console.error('No guid specified for page:' + route); + return; + } + const networkConfig = network_config.MojoInterfaceProviderImpl.getInstance() + .getMojoServiceRemote(); + networkConfig.getNetworkState(guid).then(response => { + // TODO(crbug.com/1093185): Add check for specifically eSIM when cellular + // has an EID property. + this.showDotsButton_ = response.result.type == + chromeos.networkConfig.mojom.NetworkType.kCellular; + }); + }, + + /** + * @param {!Event} e + * @private + */ + onDotsClick_(e) { + const menu = /** @type {!CrActionMenuElement} */ (this.$.menu.get()); + menu.showAt(/** @type {!Element} */ (e.target)); + }, +}); \ No newline at end of file
diff --git a/chrome/browser/resources/settings/chromeos/internet_page/internet_page.html b/chrome/browser/resources/settings/chromeos/internet_page/internet_page.html index 13d30a3..9a39c2b 100644 --- a/chrome/browser/resources/settings/chromeos/internet_page/internet_page.html +++ b/chrome/browser/resources/settings/chromeos/internet_page/internet_page.html
@@ -21,6 +21,7 @@ <link rel="import" href="../os_route.html"> <link rel="import" href="cellular_setup_dialog.html"> <link rel="import" href="internet_config.html"> +<link rel="import" href="internet_detail_menu.html"> <link rel="import" href="internet_detail_page.html"> <link rel="import" href="internet_known_networks_page.html"> <link rel="import" href="internet_page_browser_proxy.html"> @@ -112,6 +113,8 @@ <template is="dom-if" route-path="/networkDetail" no-search restamp> <settings-subpage page-title="$i18n{internetDetailPageTitle}"> + <settings-internet-detail-menu slot="subpage-title-extra"> + </settings-internet-detail-menu> <settings-internet-detail-page prefs="{{prefs}}" default-network="[[defaultNetwork]]" global-policy="[[globalPolicy_]]"
diff --git a/chrome/browser/resources/settings/chromeos/nearby_share_page/nearby_share_high_visibility_page.html b/chrome/browser/resources/settings/chromeos/nearby_share_page/nearby_share_high_visibility_page.html index 857b41d0..3ad9e481 100644 --- a/chrome/browser/resources/settings/chromeos/nearby_share_page/nearby_share_high_visibility_page.html +++ b/chrome/browser/resources/settings/chromeos/nearby_share_page/nearby_share_high_visibility_page.html
@@ -19,22 +19,23 @@ } #help { - align-items: center; + align-items: flex-start; color: var(--google-gray-500); display: flex; flex-direction: row; + font-size: 9px; + line-height: 12px; margin-inline-end: 24px; margin-inline-start: 24px; padding: 8px; } #helpText { - font-size: .8rem; - line-height: .8rem; margin: auto; } #infoIcon { + flex-shrink: 0; height: 20px; margin-inline-end: 12px; width: 20px;
diff --git a/chrome/browser/resources/settings/chromeos/os_settings_resources_v3.grdp b/chrome/browser/resources/settings/chromeos/os_settings_resources_v3.grdp index 5211c1a2..392fbc91 100644 --- a/chrome/browser/resources/settings/chromeos/os_settings_resources_v3.grdp +++ b/chrome/browser/resources/settings/chromeos/os_settings_resources_v3.grdp
@@ -40,6 +40,11 @@ use_base_dir="false" compress="false" type="BINDATA" /> + <include name="IDR_OS_SETTINGS_INTERNET_DETAIL_MENU_M_JS" + file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_menu.m.js" + use_base_dir="false" + compress="false" + type="BINDATA" /> <include name="IDR_OS_SETTINGS_INTERNET_DETAIL_PAGE_M_JS" file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/internet_page/internet_detail_page.m.js" use_base_dir="false"
diff --git a/chrome/browser/resources/settings/os_settings_manifest.json b/chrome/browser/resources/settings/os_settings_manifest.json deleted file mode 100644 index adbabe2..0000000 --- a/chrome/browser/resources/settings/os_settings_manifest.json +++ /dev/null
@@ -1,13 +0,0 @@ -{ - "name": "$i18nRaw{name}", - "display": "standalone", - "icons": [ - { - "src": "icon-192.png", - "sizes": "192x192", - "type": "image/png" - } - ], - "start_url": "/", - "theme_color": "#fff" -}
diff --git a/chrome/browser/resources/settings/os_settings_resources.grd b/chrome/browser/resources/settings/os_settings_resources.grd index 1c3b329..7d1fe340 100644 --- a/chrome/browser/resources/settings/os_settings_resources.grd +++ b/chrome/browser/resources/settings/os_settings_resources.grd
@@ -342,9 +342,6 @@ <structure name="IDR_OS_SETTINGS_TTS_SUBPAGE_BROWSER_PROXY_HTML" file="chromeos/os_a11y_page/tts_subpage_browser_proxy.html" compress="false" type="chrome_html" /> - <structure name="IDR_OS_SETTINGS_MANIFEST" - file="os_settings_manifest.json" - compress="false" type="chrome_html" /> <structure name="IDR_OS_SETTINGS_ABOUT_PAGE_BROWSER_PROXY_HTML" file="about_page/about_page_browser_proxy.html" compress="false" type="chrome_html" /> @@ -1265,6 +1262,12 @@ <structure name="IDR_OS_SETTINGS_INTERNET_CONFIG_JS" file="chromeos/internet_page/internet_config.js" compress="false" type="chrome_html" /> + <structure name="IDR_OS_SETTINGS_INTERNET_DETAIL_MENU_HTML" + file="chromeos/internet_page/internet_detail_menu.html" + compress="false" type="chrome_html" /> + <structure name="IDR_OS_SETTINGS_INTERNET_DETAIL_MENU_JS" + file="chromeos/internet_page/internet_detail_menu.js" + compress="false" type="chrome_html" /> <structure name="IDR_OS_SETTINGS_INTERNET_DETAIL_PAGE_HTML" file="chromeos/internet_page/internet_detail_page.html" compress="false" type="chrome_html" />
diff --git a/chrome/browser/resources/settings/os_settings_resources_vulcanized.grd b/chrome/browser/resources/settings/os_settings_resources_vulcanized.grd index b0f93755..5722db0 100644 --- a/chrome/browser/resources/settings/os_settings_resources_vulcanized.grd +++ b/chrome/browser/resources/settings/os_settings_resources_vulcanized.grd
@@ -34,10 +34,6 @@ use_base_dir="false" flattenhtml="true" type="BINDATA" /> - <include name="IDR_OS_SETTINGS_MANIFEST" - file="os_settings_manifest.json" - type="BINDATA" - compress="gzip" /> <!-- Constants --> <include name="IDR_OS_SETTINGS_ROUTES_MOJOM_LITE_JS"
diff --git a/chrome/browser/themes/theme_service.cc b/chrome/browser/themes/theme_service.cc index a63433f..08cafea4 100644 --- a/chrome/browser/themes/theme_service.cc +++ b/chrome/browser/themes/theme_service.cc
@@ -278,8 +278,8 @@ theme_observer_ = std::make_unique<ThemeObserver>(this); extensions::ExtensionSystem::Get(profile_)->ready().Post( - FROM_HERE, base::Bind(&ThemeService::OnExtensionServiceReady, - weak_ptr_factory_.GetWeakPtr())); + FROM_HERE, base::BindOnce(&ThemeService::OnExtensionServiceReady, + weak_ptr_factory_.GetWeakPtr())); #endif theme_syncable_service_.reset(new ThemeSyncableService(profile_, this));
diff --git a/chrome/browser/translate/translate_service.cc b/chrome/browser/translate/translate_service.cc index e7d96da..9caa6676 100644 --- a/chrome/browser/translate/translate_service.cc +++ b/chrome/browser/translate/translate_service.cc
@@ -16,6 +16,7 @@ #include "chrome/browser/translate/chrome_translate_client.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/pref_names.h" +#include "chrome/common/url_constants.h" #include "components/language/core/browser/language_model.h" #include "components/prefs/pref_service.h" #include "components/translate/core/browser/translate_download_manager.h" @@ -23,6 +24,7 @@ #include "content/public/browser/network_service_instance.h" #include "content/public/common/url_constants.h" #include "url/gurl.h" +#include "url/url_constants.h" #if defined(OS_CHROMEOS) #include "chrome/browser/chromeos/file_manager/app_id.h" @@ -32,7 +34,7 @@ namespace { // The singleton instance of TranslateService. TranslateService* g_translate_service = nullptr; -} +} // namespace TranslateService::TranslateService() : resource_request_allowed_notifier_( @@ -129,15 +131,21 @@ // static bool TranslateService::IsTranslatableURL(const GURL& url) { - // A URLs is translatable unless it is one of the following: + // A URL is translatable unless it is one of the following: // - empty (can happen for popups created with window.open("")) - // - an internal URL (chrome:// and others) + // - an internal URL: + // - chrome:// and chrome-native:// for all platforms + // - file:// and content:// are Android-specific, and are thus impossible + // on other platforms // - the devtools (which is considered UI) // - about:blank // - Chrome OS file manager extension // - an FTP page (as FTP pages tend to have long lists of filenames that may // confuse the CLD) return !url.is_empty() && !url.SchemeIs(content::kChromeUIScheme) && + !url.SchemeIs(chrome::kChromeNativeScheme) && + !url.SchemeIs(url::kFileScheme) && + !url.SchemeIs(url::kContentScheme) && !url.SchemeIs(content::kChromeDevToolsScheme) && !url.IsAboutBlank() && #if defined(OS_CHROMEOS) !(url.SchemeIs(extensions::kExtensionScheme) &&
diff --git a/chrome/browser/translate/translate_service_unittest.cc b/chrome/browser/translate/translate_service_unittest.cc index 8a474994..b77c679 100644 --- a/chrome/browser/translate/translate_service_unittest.cc +++ b/chrome/browser/translate/translate_service_unittest.cc
@@ -13,6 +13,7 @@ #include "content/public/test/browser_task_environment.h" #include "testing/gtest/include/gtest/gtest.h" #include "url/gurl.h" +#include "url/url_constants.h" #if defined(OS_CHROMEOS) #include "chrome/browser/chromeos/file_manager/app_id.h" @@ -35,6 +36,19 @@ GURL devtools_url = GURL(devtools); EXPECT_FALSE(TranslateService::IsTranslatableURL(devtools_url)); + std::string chrome_native = std::string(chrome::kChromeNativeScheme) + "://"; + GURL chrome_native_url = GURL(chrome_native); + EXPECT_FALSE(TranslateService::IsTranslatableURL(chrome_native_url)); + + // kContentScheme and kFileScheme are Android-specific. + std::string content = std::string(url::kContentScheme) + "://"; + GURL content_url = GURL(content); + EXPECT_FALSE(TranslateService::IsTranslatableURL(content_url)); + + std::string file = std::string(url::kFileScheme) + "://"; + GURL file_url = GURL(file); + EXPECT_FALSE(TranslateService::IsTranslatableURL(file_url)); + #if defined(OS_CHROMEOS) std::string filemanager = std::string(extensions::kExtensionScheme) + std::string("://") +
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb index d579f4b..aeed09f 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">Probeer die volgende wenke: maak seker dat daar genoeg spasie op jou toestel is; probeer om weer uit te voer.</translation> <translation id="7698359219371678927">Skep e-pos in <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Outovoltooi soektogte en URL'e</translation> +<translation id="7707922173985738739">Gebruik mobiele data</translation> <translation id="7725024127233776428">Bladsye wat jy boekmerk, verskyn hier</translation> <translation id="7735637452482172701">Ontsluit met skermslot</translation> <translation id="7746457520633464754">Chrome stuur URL'e van sommige bladsye wat jy besoek, beperkte stelselinligting en sekere bladinhoud aan Google om gevaarlike programme en werwe te bespeur</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb index 0c0edc35..82814e8 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793"><ph name="ITEM_TITLE" /> ተሰርዟል</translation> <translation id="3211503082155944789"><ph name="READING_LIST_COUNT" /> ያልተነበቡ ገጾች</translation> <translation id="321773570071367578">የእርስዎን የይለፍሐረግ ከረሱት ወይም ይህን ቅንብር መለወጥ ከፈለጉ <ph name="BEGIN_LINK" />ስምረትን ዳግም ያስጀምሩ<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">Google Chrome እንደ የደህንነት ቁልፍ</translation> <translation id="3232754137068452469">የድር መተግበሪያ</translation> <translation id="3236059992281584593">1 ደቂቃ ይቀራል</translation> <translation id="3244271242291266297">ወወ</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">የሚከተሉትን ጠቃሚ ምክሮች ይሞክሩ፦ በእርስዎ መሣሪያ ላይ በቂ ባዶ ቦታ መኖሩን ያረጋግጡ፣ ወይም እንደገና ወደ ውጭ ለመላክ ይሞክሩ።</translation> <translation id="7698359219371678927">በ<ph name="APP_NAME" /> ውስጥ ኢሜይል ይፍጠሩ</translation> <translation id="7704317875155739195">ፍለጋዎችን እና ዩአርኤልዎችን በራስ-አጠናቅቅ</translation> +<translation id="7707922173985738739">የተንቀሳቃሽ ስልክ ውሂብ</translation> <translation id="7725024127233776428">እርስዎ ዕልባት ያደረጉባቸው ገጾች እዚህ ላይ ብቅ ይላሉ</translation> <translation id="7735637452482172701">በማያ ገጽ መቆለፊያ አማካኝነት ክፈት</translation> <translation id="7746457520633464754">አደገኛ መተግበሪያዎችን እና ጣቢያዎችን ፈልጎ ለማግኘት፣ Chrome እርስዎ የጎበኟቸውን አንዳንድ ገጾች ዩአርኤሎች፣ የተወሰነ የሥርዓት መረጃ እና አንዳንድ የገጽ ይዘት ወደ Google ይልካል</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb index cff28a1a..4eb80e6 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">يمكنك تجربة النصائح التالية: تأكد من توفر مساحة كافية على جهازك وحاول التصدير مرة أخرى.</translation> <translation id="7698359219371678927">إنشاء بريد إلكتروني في <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">الإكمال التلقائي لعناوين URL وعمليات البحث</translation> +<translation id="7707922173985738739">استخدام بيانات الجوّال</translation> <translation id="7725024127233776428">يتم عرض الصفحات التي يتم وضع إشارة عليها هنا.</translation> <translation id="7735637452482172701">فتح القفل باستخدام قفل الشاشة</translation> <translation id="7746457520633464754">لرصد التطبيقات ومواقع الويب الضارة، يُرسل Chrome عناوين URL لبعض الصفحات التي زرتها ومعلومات محدودة للنظام وبعض أنواع محتوى الصفحات إلى Google.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb index 99de602..44e2bc1 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb
@@ -935,6 +935,7 @@ <translation id="7682724950699840886">তলত উল্লেখ কৰা কিটিপসমূহ কৰি চাওক: আপোনাৰ ডিভাইচত পর্যাপ্ত পৰিমাণে খালী ঠাই থকাটো নিশ্চিত কৰি আকৌ আমদানি কৰিবলৈ চেষ্টা কৰক।</translation> <translation id="7698359219371678927"><ph name="APP_NAME" />ত ইমেইল সৃষ্টি কৰক</translation> <translation id="7704317875155739195">স্বয়ংক্রিয়ভাৱে সম্পূৰ্ণ হোৱা সন্ধান আৰু URL</translation> +<translation id="7707922173985738739">ম’বাইল ডেটা ব্যৱহাৰ কৰক</translation> <translation id="7725024127233776428">আপুনি বুকমাৰ্ক কৰি ৰখা পৃষ্ঠাবোৰ ইয়াত দেখা যাব</translation> <translation id="7735637452482172701">স্ক্রীন লকৰ জৰিয়তে আনলক কৰক</translation> <translation id="7746457520633464754">বিপজ্জনক এপ্ আৰু ছাইটসমূহ চিনাক্ত কৰিবলৈ Chromeএ আপুনি চোৱা পৃষ্ঠাৰ URLসমূহ, ছিষ্টেমৰ সীমিত তথ্য আৰু পৃষ্ঠাৰ কিছু সমল Googleলৈ পঠিয়ায়</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb index 7fdd43c5..67cd44b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793">Silinmiş <ph name="ITEM_TITLE" /></translation> <translation id="3211503082155944789"><ph name="READING_LIST_COUNT" /> oxunmamış səhifə</translation> <translation id="321773570071367578">Əgər parol sözü unutmusunuzsa və ya bu ayarı dəyişmək istəyirsinizsə, <ph name="BEGIN_LINK" />sinxronizasiyanı sıfırlayın<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">Təhlükəsizlik Açarı olaraq Google Chrome</translation> <translation id="3232754137068452469">Veb Tətbiq</translation> <translation id="3236059992281584593">1 dəqiqə qaldı</translation> <translation id="3244271242291266297">MM</translation> @@ -935,6 +936,7 @@ <translation id="7682724950699840886">Aşağıdakıları sınayın: cihazda kifayət qədər yer olduğuna əmin olun və eksport etməyə cəhd edin.</translation> <translation id="7698359219371678927"><ph name="APP_NAME" /> tətbiqində e-poçt yaradın</translation> <translation id="7704317875155739195">Axtarış və linkləri avtomatik tamamlayın</translation> +<translation id="7707922173985738739">Mobil data istifadə edin</translation> <translation id="7725024127233776428">Seçdiyiniz səhifələr burada görünəcək</translation> <translation id="7735637452482172701">Ekran Kilidi ilə kiliddən çıxarın</translation> <translation id="7746457520633464754">Təhlükəli tətbiq və saytları aşkarlamaq üçün Chrome daxil olduğunuz səhifələrin linkləri, məhdud sistem məlumatı və bəzi səhifə kontentini Google'a göndərir</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb index fd1fec8..00b83638 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">Паспрабуйце наступнае: праверце, ці дастаткова месца на прыладзе, затым паўтарыце экспарт.</translation> <translation id="7698359219371678927">Напісаць электронны ліст у праграме "<ph name="APP_NAME" />"</translation> <translation id="7704317875155739195">Аўтаматычна дапісваць пошукавыя запыты і URL-адрасы</translation> +<translation id="7707922173985738739">Выкарыстоўваць мабільную перадачу даных</translation> <translation id="7725024127233776428">Тут будуць паказвацца старонкі, якія вы дадалі ў закладкі</translation> <translation id="7735637452482172701">Разблакіраваць праз функцыю блакіроўкі экрана</translation> <translation id="7746457520633464754">Каб выявіць небяспечныя праграмы і сайты, Chrome адпраўляе URL-адрасы некаторых наведаных вамі старонак, пэўную сістэмную інфармацыю і змесціва старонак у Google</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb index 3941c6d..d38b5ce 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">Изпробвайте следните съвети: Уверете се, че има достатъчно място на устройството ви. Опитайте отново да експортирате.</translation> <translation id="7698359219371678927">Създайте имейл в <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Автоматично довършване на заявки за търсене и URL адреси</translation> +<translation id="7707922173985738739">Използване на мобилни данни</translation> <translation id="7725024127233776428">Запазените от вас отметки към страници се показват тук</translation> <translation id="7735637452482172701">Отключване със Screen Lock</translation> <translation id="7746457520633464754">За да открива опасни приложения и сайтове, Chrome изпраща до Google URL адресите на някои от страниците, които посещавате, ограничена системна информация и част от съдържанието на страниците</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb index f79b70a..5a2f946e 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb
@@ -927,6 +927,7 @@ <translation id="7682724950699840886">নিম্নলিখিত টিপ্স ব্যবহার করার চেষ্টা করুন: আপনার ডিভাইসে পর্যাপ্ত জায়গা আছে কিনা দেখে নিয়ে আবার এক্সপোর্ট করার চেষ্টা করুন।</translation> <translation id="7698359219371678927"><ph name="APP_NAME" />-এ ইমেল আইডি তৈরি করুন</translation> <translation id="7704317875155739195">সার্চ এবং ইউআরএলগুলি নিজে থেকে সম্পূর্ণ হতে দিন</translation> +<translation id="7707922173985738739">মোবাইল ডেটা ব্যবহার করুন</translation> <translation id="7725024127233776428">আপনার বুকমার্ক করা পৃষ্ঠা এখানে দেখানো হয়</translation> <translation id="7735637452482172701">স্ক্রিন লকের সাহায্যে আনলক করুন</translation> <translation id="7746457520633464754">বিপজ্জনক অ্যাপ ও সাইট শনাক্ত করতে Chrome আপনার দেখা পৃষ্ঠাগুলির ইউআরএল, সিস্টেমের কিছু তথ্য ও কিছু পৃষ্ঠার কন্টেন্ট Google-কে পাঠায়</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb index 4980908..8016d23 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb
@@ -938,6 +938,7 @@ <translation id="7682724950699840886">Pokušajte sljedeće savjete: vodite računa da na uređaju ima dovoljno prostora i pokušajte ponovo izvršiti izvoz.</translation> <translation id="7698359219371678927">Kreirajte e-poruku u aplikaciji <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Automatsko dovršavanje pretraživanja i URL-ova</translation> +<translation id="7707922173985738739">Koristi prijenos podataka na mobilnoj mreži</translation> <translation id="7725024127233776428">Stranice koje označite će se pojaviti ovdje</translation> <translation id="7735637452482172701">Otključaj pomoću zaključavanja ekrana</translation> <translation id="7746457520633464754">Radi otkrivanja opasnih aplikacija i web-lokacija Chrome šalje Googleu URL-ove nekih stranica koje posjećujete, ograničene podatke o sustavu i dio sadržaja web-stranica</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb index ee2766d..32ac4b59 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793"><ph name="ITEM_TITLE" /> s'ha suprimit</translation> <translation id="3211503082155944789"><ph name="READING_LIST_COUNT" /> pàgines no llegides</translation> <translation id="321773570071367578">Si oblideu la frase de contrasenya o voleu canviar aquesta configuració, <ph name="BEGIN_LINK" />restabliu la sincronització<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">Google Chrome com a clau de seguretat</translation> <translation id="3232754137068452469">Aplicació web</translation> <translation id="3236059992281584593">Queda 1 minut</translation> <translation id="3244271242291266297">MM</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">Segueix aquests consells: comprova que hi hagi prou espai al dispositiu i prova d'exportar les contrasenyes de nou.</translation> <translation id="7698359219371678927">Crea una adreça electrònica a <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Completa automàticament les cerques i els URL</translation> +<translation id="7707922173985738739">Utilitza dades mòbils</translation> <translation id="7725024127233776428">Les pàgines que afegeixis a les adreces d'interès es mostraran aquí</translation> <translation id="7735637452482172701">Desbloqueja amb el bloqueig de pantalla</translation> <translation id="7746457520633464754">Per detectar aplicacions i llocs web perillosos, Chrome envia a Google els URL d'algunes de les pàgines que visites, informació limitada del sistema i part del contingut de les pàgines</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb index f63fc2e..ea165eb 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793">Položka <ph name="ITEM_TITLE" /> byla smazána</translation> <translation id="3211503082155944789">Nepřečtené stránky: <ph name="READING_LIST_COUNT" /></translation> <translation id="321773570071367578">Pokud jste heslovou frázi zapomněli nebo toto nastavení chcete změnit, <ph name="BEGIN_LINK" />resetujte synchronizaci<ph name="END_LINK" />.</translation> +<translation id="3227557059438308877">Google Chrome jako bezpečnostní klíč</translation> <translation id="3232754137068452469">Webová aplikace</translation> <translation id="3236059992281584593">Zbývá: 1 min</translation> <translation id="3244271242291266297">MM</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">Vyzkoušejte tyto tipy: Zajistěte, aby v zařízení byl dostatek místa a zkuste export zopakovat.</translation> <translation id="7698359219371678927">Vytvořit e-mail v aplikaci <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Automaticky doplňovat vyhledávací dotazy a adresy URL</translation> +<translation id="7707922173985738739">Používat mobilní data</translation> <translation id="7725024127233776428">Zde se zobrazují stránky přidané do záložek</translation> <translation id="7735637452482172701">Odemknout pomocí zámku obrazovky</translation> <translation id="7746457520633464754">Kvůli detekci nebezpečných aplikací a webů odesílá Chrome do Googlu adresy URL některých navštívených stránek, omezené informace o systému a část obsahu stránek</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb index ab20743..6648ff2 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793"><ph name="ITEM_TITLE" /> blev slettet</translation> <translation id="3211503082155944789"><ph name="READING_LIST_COUNT" /> ulæste sider</translation> <translation id="321773570071367578">Hvis du har glemt din adgangssætning eller vil ændre denne indstilling, skal du <ph name="BEGIN_LINK" />nulstille synkroniseringen<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">Google Chrome som sikkerhedsnøgle</translation> <translation id="3232754137068452469">Webapp</translation> <translation id="3236059992281584593">1 minut tilbage</translation> <translation id="3244271242291266297">MM</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">Prøv følgende tips: Sørg for, at der er nok ledig plads på din enhed, og prøv at eksportere igen.</translation> <translation id="7698359219371678927">Opret mail i <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Autofuldfør søgninger og webadresser</translation> +<translation id="7707922173985738739">Brug mobildata</translation> <translation id="7725024127233776428">De sider, du føjer et bogmærke til, vises her</translation> <translation id="7735637452482172701">Lås op med skærmlås</translation> <translation id="7746457520633464754">Chrome sender webadresser på nogle sider, du besøger, begrænsede systemoplysninger og noget sideindhold til Google med henblik på at registrere farlige apps og websites.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb index 3970f2f..8bb4065 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">Probieren Sie folgende Tipps aus: Sorgen Sie dafür, dass auf Ihrem Gerät ausreichend Speicherplatz vorhanden ist, und wiederholen Sie den Export.</translation> <translation id="7698359219371678927">E-Mail in <ph name="APP_NAME" /> erstellen</translation> <translation id="7704317875155739195">Suchanfragen und URLs automatisch vervollständigen</translation> +<translation id="7707922173985738739">Mobile Daten verwenden</translation> <translation id="7725024127233776428">Seiten, die Sie als Lesezeichen speichern, werden hier angezeigt</translation> <translation id="7735637452482172701">Mit Displaysperre entsperren</translation> <translation id="7746457520633464754">Chrome sendet die URLs einiger von Ihnen besuchter Seiten, bestimmte Systeminformationen und einige Seiteninhalte an Google, um gefährliche Apps und Websites zu erkennen</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb index 45e3f04..2687fd3 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793">Το <ph name="ITEM_TITLE" /> διαγράφηκε</translation> <translation id="3211503082155944789"><ph name="READING_LIST_COUNT" /> μη αναγνωσμένες σελίδες</translation> <translation id="321773570071367578">Εάν ξεχάσετε τη φράση πρόσβασής σας ή θέλετε να αλλάξετε αυτήν τη ρύθμιση, <ph name="BEGIN_LINK" />επαναφέρετε το συγχρονισμό<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">Google Chrome ως κλειδί ασφαλείας</translation> <translation id="3232754137068452469">Εφαρμογή ιστού</translation> <translation id="3236059992281584593">Απομένει 1 λεπτό</translation> <translation id="3244271242291266297">ΜΜ</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">Δοκιμάστε τις παρακάτω συμβουλές: Βεβαιωθείτε ότι υπάρχει αρκετός χώρος στη συσκευή σας. Δοκιμάστε να επαναλάβετε την εξαγωγή.</translation> <translation id="7698359219371678927">Δημιουργία μηνύματος ηλεκτρονικού ταχυδρομείου στην εφαρμογή <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Αυτόματη συμπλήρωση αναζητήσεων και URL</translation> +<translation id="7707922173985738739">Χρήση δεδομένων κινητής τηλεφωνίας</translation> <translation id="7725024127233776428">Εδώ εμφανίζονται οι σελίδες στις οποίες προσθέτετε σελιδοδείκτη</translation> <translation id="7735637452482172701">Ξεκλείδωμα με τη λειτουργία κλειδώματος οθόνης</translation> <translation id="7746457520633464754">Για τον εντοπισμό επικίνδυνων εφαρμογών και ιστοτόπων, το Chrome στέλνει URL ορισμένων ιστοτόπων που επισκέπτεστε, περιορισμένες πληροφορίες συστήματος και ένα μέρος του περιεχομένου σελίδας στο Google</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb index 21611b1..1027562 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb
@@ -938,6 +938,7 @@ <translation id="7682724950699840886">Try the following tips: make sure that there is enough space on your device; try to export again.</translation> <translation id="7698359219371678927">Create email in <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Auto-complete searches and URLs</translation> +<translation id="7707922173985738739">Use mobile data</translation> <translation id="7725024127233776428">Pages that you bookmark appear here</translation> <translation id="7735637452482172701">Unlock with screen lock</translation> <translation id="7746457520633464754">To detect dangerous apps and sites, Chrome sends URLs of some pages that you visit, limited system information and some page content to Google</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb index 60a4bb2..49b34634 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">Intenta las siguientes sugerencias: Antes de exportar las contraseñas nuevamente, asegúrate de que haya espacio suficiente en tu dispositivo.</translation> <translation id="7698359219371678927">Crear correo electrónico en <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Autocompletar búsquedas y URL</translation> +<translation id="7707922173985738739">Usa los datos móviles.</translation> <translation id="7725024127233776428">Las páginas que agregues a favoritos aparecerán aquí</translation> <translation id="7735637452482172701">Desbloquear con el bloqueo de pantalla</translation> <translation id="7746457520633464754">Para detectar apps y sitios peligrosos, Chrome envía a Google URL de algunas páginas que visitas, información limitada sobre el sistema y contenido de algunas páginas</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb index a7215d4..ea966fc7 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793">Se ha eliminado <ph name="ITEM_TITLE" /></translation> <translation id="3211503082155944789"><ph name="READING_LIST_COUNT" /> páginas no leídas</translation> <translation id="321773570071367578">Si has olvidado tu frase de contraseña o quieres cambiar esta opción, <ph name="BEGIN_LINK" />restablece la sincronización<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">Google Chrome como llave de seguridad</translation> <translation id="3232754137068452469">Aplicación web</translation> <translation id="3236059992281584593">Queda 1 minuto</translation> <translation id="3244271242291266297">MM</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">Prueba los siguientes consejos: deja suficiente espacio en el dispositivo y vuelve a exportar las contraseñas.</translation> <translation id="7698359219371678927">Crear correo electrónico en <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Autocompletar búsquedas y URLs</translation> +<translation id="7707922173985738739">Se utilizarán datos móviles</translation> <translation id="7725024127233776428">Las páginas que añadas a marcadores aparecerán aquí</translation> <translation id="7735637452482172701">Desbloquear con bloqueo de pantalla</translation> <translation id="7746457520633464754">Para detectar aplicaciones y sitios web peligrosos, Chrome envía a Google las URL de algunas de las páginas que visitas, información limitada del sistema y parte del contenido de las páginas.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb index 13193cf..07e7847 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb
@@ -938,6 +938,7 @@ <translation id="7682724950699840886">Järgige neid nõuandeid: veenduge, et seadmes oleks piisavalt ruumi, seejärel proovige uuesti eksportida.</translation> <translation id="7698359219371678927">Looge meil rakenduses <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Otsingute ja URL-ide automaatne täitmine</translation> +<translation id="7707922173985738739">Kasuta mobiilset andmesidet</translation> <translation id="7725024127233776428">Järjehoidjatesse lisatud lehed kuvatakse siin</translation> <translation id="7735637452482172701">Ava ekraanilukuga</translation> <translation id="7746457520633464754">Ohtlike rakenduste ja saitide tuvastamiseks saadab Chrome mõnede teie külastatud lehtede URL-id, piiratud süsteemiteabe ja mõne lehe sisu Google'ile</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb index 76bbce0..b73a6b6 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">Saiatu hau egiten: ziurtatu gailuan behar adina toki duzula eta saiatu berriro esportatzen.</translation> <translation id="7698359219371678927">Sortu mezu elektronikoa <ph name="APP_NAME" /> aplikazioan</translation> <translation id="7704317875155739195">Bete automatikoki bilaketak eta URLak</translation> +<translation id="7707922173985738739">Erabili datu-konexioa</translation> <translation id="7725024127233776428">Hemen agertuko dira laster-marka egin diezun orriak</translation> <translation id="7735637452482172701">Desblokeatu pantailaren blokeoarekin</translation> <translation id="7746457520633464754">Aplikazio eta webgune arriskutsuak hautemateko, ireki dituzun orrietako batzuen URLak, sistemari buruzko informazio mugatua eta orrietako edukiaren zati bat bidaltzen dizkio Chrome-k Google-ri.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb index f78dafd..462a0a2 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">نکات زیر را امتحان کنید: مطمئن شوید که در دستگاهتان فضای کافی وجود داشته باشد، سعی کنید دوباره صادر کنید.</translation> <translation id="7698359219371678927">ایجاد ایمیل در <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">تکمیل خودکار جستجوها و نشانیهای وب</translation> +<translation id="7707922173985738739">استفاده از داده تلفن همراه</translation> <translation id="7725024127233776428">صفحاتی را که نشانکگذاری میکنید، در اینجا نشان داده میشوند</translation> <translation id="7735637452482172701">باز کردن قفل بااستفاده از «قفل صفحه»</translation> <translation id="7746457520633464754">برای حذف برنامهها و سایتهای خطرناک، Chrome نشانیهای وب برخی از صفحههایی را که بازدید میکنید، اطلاعات سیستم محدود و برخی از محتوای صفحه را به Google میفرستد.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb index 81948c9..dd6f3996 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">Kokeile seuraavia keinoja: varmista, että laitteellasi on tarpeeksi tilaa, yritä viedä uudelleen.</translation> <translation id="7698359219371678927">Luo sähköposti sovelluksessa <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Täydennä automaattisesti hakuja ja URL-osoitteita</translation> +<translation id="7707922173985738739">Käytä mobiilidataa</translation> <translation id="7725024127233776428">Kirjanmerkeiksi lisätyt sivut näkyvät tässä</translation> <translation id="7735637452482172701">Avaa näytön lukitustavalla</translation> <translation id="7746457520633464754">Vaarallisia sovelluksia ja sivustoja löytääkseen Chrome lähettää joidenkin avattujen sivujen URL-osoitteita, rajallisia järjestelmätietoja ja osia sivujen sisällöstä Googlelle</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb index 8aa3e8c..f72be9f 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb
@@ -938,6 +938,7 @@ <translation id="7682724950699840886">Subukan ang mga sumusunod na tip: tiyaking may sapat na espasyo sa iyong device, at subukang mag-export muli.</translation> <translation id="7698359219371678927">Gumawa ng email sa <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Awtomatikong kumpletuhin ang mga paghahanap at URL</translation> +<translation id="7707922173985738739">Gumamit ng mobile data</translation> <translation id="7725024127233776428">Lalabas dito ang mga page na iyong.na-bookmark</translation> <translation id="7735637452482172701">I-unlock gamit ang Lock ng Screen</translation> <translation id="7746457520633464754">Para matukoy ang mapapanganib na app at site, nagpapadala ang Chrome ng mga URL ng ilang page na binibisita mo, limitadong impormasyon ng system, at ilang content ng page sa Google</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb index f1bde2f..4b1c6f7 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">Essayez de suivre les conseils suivants : assurez-vous qu'il y a suffisamment d'espace sur votre appareil et réessayez d'exporter les mots de passe.</translation> <translation id="7698359219371678927">Créer un courriel dans <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Saisie semi-automatique des recherches et des URL</translation> +<translation id="7707922173985738739">Utiliser les données mobiles</translation> <translation id="7725024127233776428">Les pages que vous ajoutez aux favoris s'affichent ici</translation> <translation id="7735637452482172701">Déverrouiller à l'aide du verrouillage de l'écran</translation> <translation id="7746457520633464754">Pour détecter les applications et les sites dangereux, Chrome envoie à Google l'URL de certaines pages que vous visitez, certaines données système et du contenu partiel des pages en question</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb index 8355d9f4..2a7c359 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">Essayez l'astuce suivante°: assurez-vous de disposer de suffisamment d'espace sur votre appareil, puis tentez à nouveau d'exporter les mots de passe.</translation> <translation id="7698359219371678927">Créer un e-mail dans <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Saisir semi-automatiquement les recherches et les URL</translation> +<translation id="7707922173985738739">Utilisera les données mobiles</translation> <translation id="7725024127233776428">Les pages que vous ajoutez aux favoris sont répertoriées ici</translation> <translation id="7735637452482172701">Déverrouiller avec le verrouillage de l'écran</translation> <translation id="7746457520633464754">Pour détecter les applications et sites dangereux, Chrome envoie à Google l'URL de certaines pages que vous consultez, ainsi que des informations système limitées et une partie du contenu de certaines pages.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb index 585dca8..4f7e36a 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793">Eliminouse <ph name="ITEM_TITLE" /></translation> <translation id="3211503082155944789"><ph name="READING_LIST_COUNT" /> páxinas sen ler</translation> <translation id="321773570071367578">Se esqueciches o teu contrasinal ou queres cambiar esta configuración, <ph name="BEGIN_LINK" />restablece a sincronización<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">Google Chrome como chave de seguranza</translation> <translation id="3232754137068452469">Aplicación web</translation> <translation id="3236059992281584593">Queda 1 minuto</translation> <translation id="3244271242291266297">MM</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">Sigue estes consellos: asegúrate de que hai espazo suficiente no dispositivo e proba a exportar os contrasinais de novo.</translation> <translation id="7698359219371678927">Crea un correo electrónico en <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Completar buscas e URL automaticamente</translation> +<translation id="7707922173985738739">Utilizaranse datos móbiles</translation> <translation id="7725024127233776428">As páxinas que engadas aos marcadores aparecerán aquí</translation> <translation id="7735637452482172701">Desbloquear con bloqueo de pantalla</translation> <translation id="7746457520633464754">Para detectar aplicacións e sitios perigosos, Chrome envíalle a Google os URL dalgunhas das páxinas que visitas, parte da información do sistema e parte do contido das páxinas</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb index 8fd1c65..709e7cc 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">નીચેની ટિપ અજમાવી જુઓ: ખાતરી કરો કે તમારા ઉપકરણ પર પૂરતી સ્પેસ છે, ફરીથી નિકાસ કરવાનો પ્રયાસ કરો.</translation> <translation id="7698359219371678927"><ph name="APP_NAME" /> માં ઇમેઇલ બનાવો</translation> <translation id="7704317875155739195">શોધ અને URLsને આપમેળે પૂર્ણ કરો</translation> +<translation id="7707922173985738739">મોબાઇલ ડેટાનો ઉપયોગ કરો</translation> <translation id="7725024127233776428">બુકમાર્ક કરેલા પેજ અહીં દેખાય છે</translation> <translation id="7735637452482172701">સ્ક્રીન લૉક વડે અનલૉક કરો</translation> <translation id="7746457520633464754">જોખમી ઍપ અને સાઇટ શોધી કાઢવા માટે, Chrome તમે મુલાકાત લો તે કેટલાક પેજના URLs, સિસ્ટમ વિશેની સીમિત માહિતી અને પેજનું કેટલુંક કન્ટેન્ટ Googleને મોકલે છે</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb index bba5ac4f..cad6d07 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb
@@ -159,7 +159,7 @@ <translation id="2131665479022868825"><ph name="DATA" /> बचाया गया</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> बंद है</translation> <translation id="2139186145475833000">होम स्क्रीन में जोड़ें</translation> -<translation id="214888715418183969">चुनें कि Chrome के साथ आपकी क्या जानकारी शेयर की जाए. आपकी शेयर की गई मेट्रिक का इस्तेमाल, Chrome की सुविधाओं और परफ़ॉर्मेंस को बेहतर बनाने और गड़बड़ियों को ठीक करने के लिए किया जाएगा.</translation> +<translation id="214888715418183969">चुनें कि Chrome के साथ आपकी क्या जानकारी शेयर की जाए. आप जो मेट्रिक शेयर करते हैं उसका इस्तेमाल, Chrome की सुविधाओं और परफ़ॉर्मेंस को बेहतर बनाने में किया जाएगा. साथ ही, इसका इस्तेमाल क्रैश होने जैसी दिक्कतों को ठीक करने में भी होगा.</translation> <translation id="2154484045852737596">कार्ड में बदलाव करें</translation> <translation id="2154710561487035718">URL की कॉपी बनाएं</translation> <translation id="2156074688469523661">बाकी साइटें (<ph name="NUMBER_OF_SITES" />)</translation> @@ -732,7 +732,7 @@ <translation id="6303969859164067831">साइन आउट करें और सिंक बंद करें</translation> <translation id="6312687380483398334">वेब ऐप्लिकेशन (म्यूट)</translation> <translation id="6316139424528454185">Android वर्शन काम नहीं कर रहा है</translation> -<translation id="6321526113093607004">बुकमार्क में जोड़ें</translation> +<translation id="6321526113093607004">Bookmarks में जोड़ें</translation> <translation id="6324034347079777476">Android सिस्टम समन्वयन अक्षम है</translation> <translation id="6333140779060797560"><ph name="APPLICATION" /> के द्वारा शेयर करें</translation> <translation id="6337234675334993532">सुरक्षित करने का तरीका</translation> @@ -938,6 +938,7 @@ <translation id="7682724950699840886">ये सलाह आज़माएं: पक्का करें कि आपके डिवाइस पर ज़रूरी जगह उपलब्ध है, फिर दोबारा निर्यात करके देखें.</translation> <translation id="7698359219371678927"><ph name="APP_NAME" /> में ईमेल बनाएं</translation> <translation id="7704317875155739195">खोजों और यूआरएल को अपने आप पूरा करें</translation> +<translation id="7707922173985738739">मोबाइल डेटा का उपयोग करें</translation> <translation id="7725024127233776428">आप जो पेज बुकमार्क करते हैं वे यहां दिखाई देंगे</translation> <translation id="7735637452482172701">स्क्रीन लॉक की मदद से अनलॉक करें</translation> <translation id="7746457520633464754">खतरनाक ऐप्लिकेशन और साइटों का पता लगाने के लिए, Chrome ऐसे कुछ पेज का यूआरएल Google को भेजता है जिन पर आप जाते हैं. साथ ही, वह सिस्टम की सीमित जानकारी और पेज की कुछ सामग्री भी Google को भेजता है</translation> @@ -1026,7 +1027,7 @@ <translation id="8316092324682955408"><ph name="DOMAIN_NAME" /> और कई साइटें</translation> <translation id="8327155640814342956">बेहतरीन ब्राउज़िंग अनुभव के लिए, Chrome अपडेट करें</translation> <translation id="8349013245300336738">इस्तेमाल किए गए डेटा की मात्रा के हिसाब से क्रम में लगाएं</translation> -<translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> डाउनलोड को पहले जैसा किया गया</translation> +<translation id="835847953965672673"><ph name="NUMBER_OF_DOWNLOADS" /> डाउनलोड वापस लाया गया</translation> <translation id="8364299278605033898">लोकप्रिय वेबसाइटें देखें</translation> <translation id="8368027906805972958">अज्ञात या काम न करने वाला डिवाइस (<ph name="DEVICE_ID" />)</translation> <translation id="8372925856448695381"><ph name="LANG" /> इस्तेमाल के लिए तैयार है.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb index f0de649d..e16671f 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793">Izbrisano <ph name="ITEM_TITLE" /></translation> <translation id="3211503082155944789"><ph name="READING_LIST_COUNT" /> nepročitanih str.</translation> <translation id="321773570071367578">Ako ste zaboravili šifru ili želite promijeniti tu postavku, <ph name="BEGIN_LINK" />poništite sinkronizaciju<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">Google Chrome kao sigurnosni ključ</translation> <translation id="3232754137068452469">Web-aplikacija</translation> <translation id="3236059992281584593">Još 1 min</translation> <translation id="3244271242291266297">MM</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">Pokušajte napraviti sljedeće: provjerite ima li dovoljno prostora na uređaju i pokušajte ponoviti izvoz.</translation> <translation id="7698359219371678927">Izradite e-poruku u aplikaciji <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Samodovršavanje pretraživanja i URL-ova</translation> +<translation id="7707922173985738739">Upotreba mobilnih podataka</translation> <translation id="7725024127233776428">Ovdje se prikazuju stranice koje označite</translation> <translation id="7735637452482172701">Otključajte pomoću značajke zaključavanja zaslona</translation> <translation id="7746457520633464754">Radi otkrivanja opasnih aplikacija i web-lokacija Chrome šalje Googleu URL-ove nekih stranica koje posjećujete, ograničene podatke o sustavu i dio sadržaja web-stranica</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb index b852c141..80c800e0 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">Próbálkozzon a következő tippekkel: Győződjön meg arról, hogy elegendő tárhely áll rendelkezésre az eszközön, majd próbálja újra az exportálást.</translation> <translation id="7698359219371678927">E-mail létrehozása a(z) <ph name="APP_NAME" /> alkalmazásban</translation> <translation id="7704317875155739195">Keresések és URL-címek automatikus kiegészítése</translation> +<translation id="7707922173985738739">Mobiladat-kapcsolat használata</translation> <translation id="7725024127233776428">Itt jelennek meg a könyvjelzőként mentett oldalak</translation> <translation id="7735637452482172701">Feloldás képernyőzár használatával</translation> <translation id="7746457520633464754">A veszélyes alkalmazások és webhelyek észlelésének érdekében a Chrome az egyes felkeresett oldalak URL-jét, valamint korlátozott rendszer-információkat és bizonyos oldaltartalmakat továbbít a Google-nak.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb index 1ee0d04..003e199 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb
@@ -261,7 +261,7 @@ <translation id="2893180576842394309">Google-ը կարող է ձեր այցելությունների պատմությունն օգտագործել` Որոնումն ու Google-ի մյուս ծառայություններն անհատականացնելու համար:</translation> <translation id="2898264748040935573">Փոփոխել պահված գաղտնաբառը</translation> <translation id="2900528713135656174">Ստեղծել միջոցառում</translation> -<translation id="2901411048554510387">Ցուցադրվում են առաջարկներ «<ph name="WEBSITE_TITLE" />» թեմայով</translation> +<translation id="2901411048554510387">Ցուցադրվում են առաջարկներ «<ph name="WEBSITE_TITLE" />» կայքի համար</translation> <translation id="2904414404539560095">Սարքերը, որոնց հետ կիսվելու եք ներդիրով, ցուցադրված են ամբողջ էկրանով:</translation> <translation id="2905036901251765993">Մոտակայքում գտնվող մարդկանց հետ կիսվելու համար սկանավորեք այս QR կոդը</translation> <translation id="2909615210195135082">Google ծանուցումների հարթակ</translation> @@ -937,6 +937,7 @@ <translation id="7682724950699840886">Փորձեք անել հետևյալը․ համոզվեք, որ ձեր սարքում բավարար տարածք կա և նորից փորձեք արտահանել։</translation> <translation id="7698359219371678927">Ստեղծեք նամակ <ph name="APP_NAME" /> հավելվածում</translation> <translation id="7704317875155739195">Ավտոմատ լրացնել որոնման հարցումները և URL-ները</translation> +<translation id="7707922173985738739">Օգտագործել բջջային ինտերնետ</translation> <translation id="7725024127233776428">Ձեր էջանշած էջերը կցուցադրվեն այստեղ</translation> <translation id="7735637452482172701">Ապակողպել էկրանի կողպման միջոցով</translation> <translation id="7746457520633464754">Վտանգավոր կայքերն ու հավելվածները հայտնաբերելու համար Chrome-ը Google-ին է ուղարկում ձեր այցելած որոշ էջերի URL-ներն ու դրանց բովանդակությունը և որոշակի տեղեկություններ համակարգի մասին։</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb index 564bee6..c3ea094 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb
@@ -938,6 +938,7 @@ <translation id="7682724950699840886">Coba tips berikut ini: pastikan ruang di perangkat Anda mencukupi, lalu coba ekspor lagi.</translation> <translation id="7698359219371678927">Buat email di <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Lengkapi otomatis penelusuran dan URL</translation> +<translation id="7707922173985738739">Gunakan data seluler</translation> <translation id="7725024127233776428">Halaman yang Anda bookmark muncul di sini</translation> <translation id="7735637452482172701">Buka dengan Kunci Layar</translation> <translation id="7746457520633464754">Untuk mendeteksi aplikasi dan situs berbahaya, Chrome mengirimkan URL beberapa halaman yang Anda kunjungi, informasi sistem terbatas, dan beberapa konten halaman ke Google</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb index 975271c..9bef341c 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793"><ph name="ITEM_TITLE" /> eytt</translation> <translation id="3211503082155944789"><ph name="READING_LIST_COUNT" /> ólesnar síður</translation> <translation id="321773570071367578">Ef þú hefur gleymt aðgangsorðinu eða þig langar að breyta þessari stillingu skaltu <ph name="BEGIN_LINK" />endurstilla samstillingu<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">Google Chrome sem öryggislykill</translation> <translation id="3232754137068452469">Vefforrit</translation> <translation id="3236059992281584593">Ein mín. eftir</translation> <translation id="3244271242291266297">MM</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">Prófaðu eftirfarandi: Gakktu úr skugga um að nóg pláss sé á tækinu og reyndu að flytja út aftur.</translation> <translation id="7698359219371678927">Skrifa tölvupóst í <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Fylla sjálfvirkt út leitir og vefslóðir</translation> +<translation id="7707922173985738739">Nota farsímagögn</translation> <translation id="7725024127233776428">Síður sem þú setur í bókamerki birtast hér</translation> <translation id="7735637452482172701">Taka úr lás með skjálás</translation> <translation id="7746457520633464754">Til að greina hættuleg forrit og vefsvæði sendir Chrome vefslóðir einhverra síðna sem þú skoðar, kerfisupplýsingar og efni síðu til Google.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb index f4be17e..c2c2e58 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793"><ph name="ITEM_TITLE" /> è stato eliminato</translation> <translation id="3211503082155944789"><ph name="READING_LIST_COUNT" /> pagine da leggere</translation> <translation id="321773570071367578">Se non ricordi la passphrase o vuoi modificare questa impostazione, <ph name="BEGIN_LINK" />reimposta la sincronizzazione<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">Google Chrome come token di sicurezza</translation> <translation id="3232754137068452469">App web</translation> <translation id="3236059992281584593">1 min rimanente</translation> <translation id="3244271242291266297">MM</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">Prova i seguenti suggerimenti: assicurati di avere spazio sufficiente sul dispositivo e prova a esportare di nuovo.</translation> <translation id="7698359219371678927">Crea email in <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Completamento automatico di ricerche e URL</translation> +<translation id="7707922173985738739">Verranno utilizzati i dati mobili</translation> <translation id="7725024127233776428">Le pagine aggiunte ai preferiti saranno mostrate qui</translation> <translation id="7735637452482172701">Sblocca con blocco schermo</translation> <translation id="7746457520633464754">Per rilevare app e siti pericolosi, Chrome invia a Google gli URL di alcune pagine che visiti, informazioni limitate sul sistema e i contenuti di alcune pagine</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb index 1a12c43..8aed9266 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb
@@ -28,7 +28,7 @@ <translation id="1171770572613082465">הקשה על הלחצן "אתרים נבחרים" תציג אתרים פופולריים</translation> <translation id="1173894706177603556">שנה שם</translation> <translation id="1177863135347784049">מותאם אישית</translation> -<translation id="1197267115302279827">העבר סימניות</translation> +<translation id="1197267115302279827">העברת סימניות</translation> <translation id="1201402288615127009">הבא</translation> <translation id="1204037785786432551">הורדת קישור</translation> <translation id="1206892813135768548">העתקת טקסט קישור</translation> @@ -87,7 +87,7 @@ <translation id="1612196535745283361">כדי לבצע סריקה לאיתור מכשירים, Chrome זקוק לגישה לנתוני מיקום. הגישה למיקום <ph name="BEGIN_LINK" />כבויה במכשיר הזה<ph name="END_LINK" />.</translation> <translation id="1628019612362412531">{NUM_SELECTED,plural, =1{הסרת פריט אחד שנבחר}two{הסרת # פריטים שנבחרו}many{הסרת # פריטים שנבחרו}other{הסרת # פריטים שנבחרו}}</translation> <translation id="1641113438599504367">גלישה בטוחה</translation> -<translation id="164269334534774161">אתה מציג עותק לא מקוון של הדף הזה מ-<ph name="CREATION_TIME" /></translation> +<translation id="164269334534774161">זהו עותק אופליין של הדף הזה מ-<ph name="CREATION_TIME" /></translation> <translation id="1644574205037202324">היסטוריה</translation> <translation id="1670399744444387456">בסיסי</translation> <translation id="1671236975893690980">ההורדה תיכף תתחיל…</translation> @@ -118,7 +118,7 @@ <translation id="189358972401248634">שפות אחרות</translation> <translation id="1919130412786645364">התרת כניסה אל Chrome</translation> <translation id="1922362554271624559">שפות מוצעות</translation> -<translation id="1925021887439448749">הזן כתובת אינטרנט מותאמת אישית</translation> +<translation id="1925021887439448749">יש להזין כתובת אינטרנט מותאמת אישית</translation> <translation id="1928696683969751773">עדכונים</translation> <translation id="19288952978244135">יש לפתוח מחדש את Chrome.</translation> <translation id="1933845786846280168">הכרטיסייה שנבחרה</translation> @@ -139,7 +139,7 @@ <translation id="2013642289801508067">{FILE_COUNT,plural, =1{קובץ אחד (#)}two{# קבצים}many{# קבצים}other{# קבצים}}</translation> <translation id="2017836877785168846">ניקוי של ההיסטוריה וההשלמות האוטומטיות בשורת כתובת האתר</translation> <translation id="2021896219286479412">פקדי אתר במסך מלא</translation> -<translation id="2038563949887743358">הפעל את 'בקש אתר עבור מחשב שולחני'</translation> +<translation id="2038563949887743358">הפעלה של 'בקשת אתר עבור מחשב שולחני'</translation> <translation id="204321170514947529">ל-<ph name="APP_NAME" /> יש נתונים גם ב-Chrome</translation> <translation id="2049574241039454490"><ph name="FILE_SIZE_OF_TOTAL" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation> <translation id="2052422354554967744">חיפוש באינטרנט</translation> @@ -322,7 +322,7 @@ <translation id="3350687908700087792">סגור את כל כרטיסיות הגלישה בסתר</translation> <translation id="3353615205017136254">גרסת Lite של הדף נוצרה על ידי Google. כדי לטעון את הגרסה המקורית, אפשר להקיש על לחצן טעינת המקור.</translation> <translation id="3359667936385849800">שימוש בספק השירות הנוכחי</translation> -<translation id="3367813778245106622">היכנס שוב כדי להתחיל בסנכרון</translation> +<translation id="3367813778245106622">יש להיכנס שוב כדי להתחיל בסנכרון</translation> <translation id="337236281855091893">כדי לבצע חיפוש, יש ללחוץ לחיצה ארוכה על מילה במקום להקיש עליה</translation> <translation id="3373979091428520308">כדי לשתף את הדף הזה עם מכשיר אחר, יש להפעיל את הסנכרון בהגדרות של Chrome במכשיר האחר</translation> <translation id="3374023511497244703">הסימניות, ההיסטוריה, הסיסמאות ונתונים אחרים ב-Chrome כבר לא יסונכרנו עם חשבון Google</translation> @@ -348,7 +348,7 @@ <translation id="3557336313807607643">הוסף לאנשי הקשר</translation> <translation id="3566923219790363270">Chrome עדיין מתכונן ל-VR. יש להפעיל מחדש את Chrome מאוחר יותר.</translation> <translation id="3568688522516854065">כדי לקבל את הכרטיסיות מהמכשירים האחרים שלך, יש להיכנס לחשבון ולהפעיל את הסנכרון</translation> -<translation id="3587482841069643663">הכל</translation> +<translation id="3587482841069643663">הכול</translation> <translation id="3587596251841506391">סיוע לשיפור האבטחה באינטרנט</translation> <translation id="3598653140581545904">כניסה באמצעות מצב אנונימי</translation> <translation id="3599863153486145794">ניקוי ההיסטוריה מכל המכשירים שבהם המשתמש נכנס לחשבון. ייתכן שלחשבון Google שלך יהיו צורות אחרות של היסטוריית גלישה בכתובת <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> @@ -418,7 +418,7 @@ <translation id="4095146165863963773">למחוק נתוני יישומים?</translation> <translation id="4099578267706723511">אם שולחים אלינו נתוני שימוש ודוחות קריסה, עוזרים לשפר את Chrome.</translation> <translation id="4108998448622696017">המערכת מזהה אירועים מסוכנים כשהם מתרחשים ומזהירה אותך על כך.</translation> -<translation id="4116038641877404294">הורד דפים כדי להשתמש בהם במצב לא מקוון</translation> +<translation id="4116038641877404294">הורדת דפים כדי להשתמש בהם אופליין</translation> <translation id="4135200667068010335">רשימת המכשירים שאפשר לשתף איתם כרטיסייה נסגרה.</translation> <translation id="4141536112466364990">הדרכות לשימוש ב-Chrome</translation> <translation id="4149994727733219643">תצוגה פשוטה של דפי אינטרנט</translation> @@ -466,12 +466,12 @@ <translation id="4521489764227272523">הנתונים שבחרת הוסרו מ-Chrome ומהמכשירים המסונכרנים. ייתכן שבכתובת <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> יש סוגים אחרים של היסטוריית גלישה בחשבון Google, כמו חיפושים ופעילות משירותי Google אחרים.</translation> -<translation id="4532845899244822526">בחר תיקייה</translation> +<translation id="4532845899244822526">בחירת תיקייה</translation> <translation id="4538018662093857852">הפעלת מצב טעינה מהירה</translation> <translation id="4550003330909367850">כדי להציג או להעתיק את הסיסמה יש להגדיר נעילת מסך במכשיר זה.</translation> <translation id="4558311620361989323">קיצורי דרך בדפי אינטרנט</translation> <translation id="4561979708150884304">אין חיבור</translation> -<translation id="4565377596337484307">הסתר סיסמה</translation> +<translation id="4565377596337484307">הסתרת סיסמה</translation> <translation id="4572422548854449519">כניסה אל חשבון מנוהל</translation> <translation id="4583164079174244168">{MINUTES,plural, =1{לפני דקה}two{לפני # דקות}many{לפני # דקות}other{לפני # דקות}}</translation> <translation id="4587589328781138893">אתרים</translation> @@ -587,7 +587,7 @@ <translation id="5368958499335451666">{OPEN_TABS,plural, =1{כרטיסייה פתוחה אחת (<ph name="OPEN_TABS_ONE" />), יש להקיש כדי להחליף כרטיסיות}two{<ph name="OPEN_TABS_MANY" /> כרטיסיות פתוחות, יש להקיש כדי להחליף כרטיסיות}many{<ph name="OPEN_TABS_MANY" /> כרטיסיות פתוחות, יש להקיש כדי להחליף כרטיסיות}other{<ph name="OPEN_TABS_MANY" /> כרטיסיות פתוחות, יש להקיש כדי להחליף כרטיסיות}}</translation> <translation id="5403644198645076998">גישה רק לאתרים ספציפיים</translation> <translation id="5414836363063783498">מאמת…</translation> -<translation id="5423934151118863508">הדפים שבהם אתה מבקר בתדירות הגבוהה ביותר יופיעו כאן</translation> +<translation id="5423934151118863508">הדפים שבהם ביקרת בתדירות הגבוהה ביותר יופיעו כאן</translation> <translation id="5424588387303617268"><ph name="GIGABYTES" /> GB זמינים</translation> <translation id="543338862236136125">עריכת סיסמה</translation> <translation id="5433691172869980887">שם המשתמש הועתק</translation> @@ -826,7 +826,7 @@ <translation id="6891726759199484455">ביטול הנעילה יאפשר להעתיק את הסיסמה</translation> <translation id="6896758677409633944">העתק</translation> <translation id="6900532703269623216">הגנה משופרת</translation> -<translation id="6903907808598579934">הפעל סנכרון</translation> +<translation id="6903907808598579934">הפעלת הסנכרון</translation> <translation id="6929699136511445623">הפעלת סנכרון של מערכת Android</translation> <translation id="6941901516114974832">ייתכן שגם במצב אנונימי הפעילות במכשיר <ph name="BEGIN_BOLD1" />תהיה גלויה <ph name="END_BOLD1" />לאתרים שנכנסת אליהם, למעסיק או למוסד הלימודים שלך ולספק האינטרנט. @@ -926,7 +926,7 @@ <translation id="7612619742409846846">מחובר ל-Google בשם</translation> <translation id="7619072057915878432">הורדת <ph name="FILE_NAME" /> נכשלה עקב כשלים ברשת.</translation> <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />קבלת עזרה<ph name="END_LINK1" /> או <ph name="BEGIN_LINK2" />חיפוש שוב<ph name="END_LINK2" /></translation> -<translation id="7626032353295482388">ברוכים הבאים ל-Chrome</translation> +<translation id="7626032353295482388">ברוך בואך אל Chrome</translation> <translation id="7630202231528827509">כתובת ה-URL של הספק</translation> <translation id="7638584964844754484">ביטוי סיסמה שגוי</translation> <translation id="7641339528570811325">מחיקת נתוני הגלישה...</translation> @@ -937,6 +937,7 @@ <translation id="7682724950699840886">אפשר לנסות את הטיפים הבאים: צריך לוודא שיש מספיק מקום פנוי במכשיר ואז לנסות לייצא שוב.</translation> <translation id="7698359219371678927">צור הודעת אימייל ב-<ph name="APP_NAME" /></translation> <translation id="7704317875155739195">השלמה אוטומטית של חיפושים וכתובות אתרים</translation> +<translation id="7707922173985738739">השתמש בחבילת גלישה</translation> <translation id="7725024127233776428">הדפים שהוספת לסימניות מופיעים כאן</translation> <translation id="7735637452482172701">ביטול נעילה באמצעות נעילת מסך</translation> <translation id="7746457520633464754">כדי לזהות אפליקציות ואתרים מסוכנים, Chrome שולח אל Google כתובות URL של חלק מהדפים שאליהם נכנסת, מידע מוגבל לגבי המערכת וחלק מתוכן הדפים</translation> @@ -1015,7 +1016,7 @@ <translation id="8232956427053453090">שמירת הנתונים</translation> <translation id="8233540874193135768">כדי לסרוק קוד QR, יש להשתמש במכשיר עם מצלמה.</translation> <translation id="8250920743982581267">מסמכים</translation> -<translation id="825412236959742607">הדף הזה משתמש בנפח זיכרון גדול מידי, לכן מערכת Chrome הסירה חלק מהתוכן.</translation> +<translation id="825412236959742607">הדף הזה משתמש בנפח זיכרון גדול מדי, לכן מערכת Chrome הסירה חלק מהתוכן.</translation> <translation id="8260126382462817229">נסה להיכנס שוב</translation> <translation id="8261506727792406068">מחיקה</translation> <translation id="8266862848225348053">מיקום ההורדה</translation> @@ -1145,7 +1146,7 @@ <translation id="932327136139879170">בית</translation> <translation id="93753284658583800">דף הבית השתנה</translation> <translation id="938850635132480979">שגיאה: <ph name="ERROR_CODE" /></translation> -<translation id="939598580284253335">הזן משפט-סיסמה</translation> +<translation id="939598580284253335">הזנת ביטוי סיסמה</translation> <translation id="95817756606698420">דפדפן Chrome יכול להשתמש ב-<ph name="BEGIN_BOLD" />Sogou<ph name="END_BOLD" /> כדי לבצע חיפוש מסין. אפשר לשנות את ההעדפה הזאת ב<ph name="BEGIN_LINK" />הגדרות<ph name="END_LINK" />.</translation> <translation id="962979164594783469">התקנת האפליקציה</translation> <translation id="968900484120156207">הדפים שבהם ביקרת מופיעים כאן</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb index cf3fb47..e47953e 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb
@@ -925,6 +925,7 @@ <translation id="7682724950699840886">推奨される対策: デバイスに十分な空き容量があることを確認し、再度エクスポートを試します。</translation> <translation id="7698359219371678927"><ph name="APP_NAME" /> でメールを作成</translation> <translation id="7704317875155739195">検索語句や URL をオートコンプリートする</translation> +<translation id="7707922173985738739">モバイルデータを使用します</translation> <translation id="7725024127233776428">ブックマークしたページがここに表示されます</translation> <translation id="7735637452482172701">画面ロックでロックを解除する</translation> <translation id="7746457520633464754">危険なアプリやサイトを検出するために、アクセスした一部のページの URL と限定的なシステム情報、一部のページ コンテンツが Chrome から Google に送信されます</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb index d41dcde..b824943e 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
@@ -938,6 +938,7 @@ <translation id="7682724950699840886">ცადეთ შემდეგი: დარწმუნდით, რომ თქვენს მოწყობილობაზე ხელმისაწვდომი მეხსიერება საკმარისია, ხოლო შემდეგ გაიმეორეთ ექსპორტირების მცდელობა.</translation> <translation id="7698359219371678927">ელფოსტის <ph name="APP_NAME" />-ში შექმნა</translation> <translation id="7704317875155739195">ძიებებისა და URL-ების ავტომატური დასრულება</translation> +<translation id="7707922173985738739">მობილური ინტერნეტის გამოყენება</translation> <translation id="7725024127233776428">აქ გამოჩნდება თქვენ მიერ სანიშნით მონიშნული გვერდები</translation> <translation id="7735637452482172701">ეკრანის დაბლოკვით განბლოკვა</translation> <translation id="7746457520633464754">სახიფათო აპებისა და საიტების აღმოსაჩენად Chrome უგზავნის Google-ს თქვენ მიერ მონახულებული ზოგიერთი გვერდის URL-ებს, სისტემის შეზღუდულ ინფორმაციასა და გვერდების გარკვეულ კონტენტს</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb index a1dee60..ad0138c 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793"><ph name="ITEM_TITLE" /> жойылды.</translation> <translation id="3211503082155944789"><ph name="READING_LIST_COUNT" /> оқылмаған бет</translation> <translation id="321773570071367578">Егер құпия фразаны ұмытып қалсаңыз немесе оны өзгерткіңіз келсе, <ph name="BEGIN_LINK" />синхрондауды қалпына келтіріңіз<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">Google Chrome браузерін қауіпсіздік кілті ретінде пайдалану</translation> <translation id="3232754137068452469">Веб-қолданба</translation> <translation id="3236059992281584593">1 мин қалды</translation> <translation id="3244271242291266297">АА</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">Келесі әрекетті орындап көріңіз: құрылғыңыздағы бос орынның жеткілікті екеніне көз жеткізіп, экспорттауды қайталаңыз.</translation> <translation id="7698359219371678927"><ph name="APP_NAME" /> қолданбасында электрондық пошта жасау</translation> <translation id="7704317875155739195">Іздеулер мен URL мекенжайларын автотолтыру</translation> +<translation id="7707922173985738739">Мобильдік деректерді пайдалану</translation> <translation id="7725024127233776428">Бетбелгі қойылған беттер осы жерде көрсетіледі</translation> <translation id="7735637452482172701">Экран құлпымен ашу</translation> <translation id="7746457520633464754">Қауіпті қолданбалар мен сайттарды анықтау үшін Chrome браузері сіз кірген кейбір беттердің URL сілтемелерін, жүйе туралы шектеулі ақпаратты және беттің кейбір мазмұнын Google-ға жібереді.</translation>
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 6106314..72f439c 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
@@ -938,6 +938,7 @@ <translation id="7682724950699840886">សូមសាកល្បងគន្លឹះទាំងនេះ៖ សូមប្រាកដថាមានទំហំផ្ទុកគ្រប់គ្រាន់នៅលើឧបករណ៍របស់អ្នក រួចព្យាយាមនាំចេញម្ដងទៀត។</translation> <translation id="7698359219371678927">បង្កើតអ៊ីមែលនៅក្នុង <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">បំពេញការស្វែងរក និង URL ដោយស្វ័យប្រវត្តិ</translation> +<translation id="7707922173985738739">ប្រើទិន្នន័យទូរសព្ទចល័ត</translation> <translation id="7725024127233776428">ទំព័រដែលអ្នកចំណាំបង្ហាញនៅទីនេះ</translation> <translation id="7735637452482172701">ដោះសោដោយប្រើមុខងារចាក់សោអេក្រង់</translation> <translation id="7746457520633464754">ដើម្បីរកមើលកម្មវិធី និងគេហទំព័រគ្រោះថ្នាក់ Chrome ផ្ញើ URL របស់ទំព័រមួយចំនួនដែលអ្នកចូលមើល ព្រមទាំងខ្លឹមសារទំព័រ និងព័ត៌មានប្រព័ន្ធមួយចំនួនទៅ Google</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb index 5897c9d..2cf3fb3 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
@@ -925,6 +925,7 @@ <translation id="7682724950699840886">ಕೆಳಗಿನ ಸಲಹೆಗಳನ್ನು ಬಳಸಿ ನೋಡಿ: ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಸಾಕಷ್ಟು ಸ್ಥಳಾವಕಾಶ ಇರುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಂಡು, ಪುನಃ ಎಕ್ಸ್ಪೋರ್ಟ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="7698359219371678927"><ph name="APP_NAME" /> ನಲ್ಲಿ ಇಮೇಲ್ ರಚಿಸಿ</translation> <translation id="7704317875155739195">ಸ್ವಯಂಪೂರ್ಣ ಹುಡುಕಾಟಗಳು ಮತ್ತು URLಗಳು</translation> +<translation id="7707922173985738739">ಮೊಬೈಲ್ ಡೇಟಾ ಬಳಸಿ</translation> <translation id="7725024127233776428">ನೀವು ಬುಕ್ಮಾರ್ಕ್ ಮಾಡುವ ಪುಟಗಳು ಇಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತವೆ</translation> <translation id="7735637452482172701">ಸ್ಕ್ರೀನ್ ಲಾಕ್ಗಳು ನೊಂದಿಗೆ ಅನ್ಲಾಕ್ ಮಾಡಿ</translation> <translation id="7746457520633464754">ಅಪಾಯಕಾರಿ ಆ್ಯಪ್ಗಳು ಮತ್ತು ಸೈಟ್ಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು Chrome, ನೀವು ಭೇಟಿ ನೀಡುವ ಕೆಲವು ಪುಟಗಳ URL ಗಳು, ಸೀಮಿತ ಸಿಸ್ಟಂ ಮಾಹಿತಿ ಮತ್ತು ಕೆಲವು ಪುಟದ ವಿಷಯವನ್ನು Google ಗೆ ಕಳುಹಿಸುತ್ತದೆ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb index 271b0467..368e027c 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
@@ -938,6 +938,7 @@ <translation id="7682724950699840886">다음 방법을 시도해 보세요. 기기 저장용량이 충분한지 확인하고 다시 내보내 봅니다.</translation> <translation id="7698359219371678927"><ph name="APP_NAME" />에서 이메일 만들기</translation> <translation id="7704317875155739195">검색어 및 URL 자동 완성</translation> +<translation id="7707922173985738739">모바일 데이터 사용</translation> <translation id="7725024127233776428">북마크한 페이지가 여기에 표시됩니다.</translation> <translation id="7735637452482172701">화면 잠금 해제</translation> <translation id="7746457520633464754">Chrome은 위험한 앱 및 사이트를 감지하기 위해 일부 방문 페이지의 URL, 제한적인 시스템 정보, 페이지 콘텐츠 일부를 Google로 전송합니다.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb index 3b7ab5370..25d3dde 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793"><ph name="ITEM_TITLE" /> өчүрүлдү</translation> <translation id="3211503082155944789"><ph name="READING_LIST_COUNT" /> окула элек барак</translation> <translation id="321773570071367578">Эгер купуя сөз айкашыңызды унутуп калган болсоңуз же бул жөндөөнү өзгөрткүңүз келсе, <ph name="BEGIN_LINK" />шайкештирүүнү баштапкы абалга келтириңиз<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">Google Chrome'ду Коопсуздук ачкычы катары колдонуу</translation> <translation id="3232754137068452469">Веб колдонмо</translation> <translation id="3236059992281584593">1 мүн. калды</translation> <translation id="3244271242291266297">АА</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">Төмөнкү кеңештерди аткарып көрүңүз: түзмөгүңүздө бош орун бар экенин текшерип, кайра экспорттоп көрүңүз.</translation> <translation id="7698359219371678927"><ph name="APP_NAME" /> колдонмосунан электрондук почта түзүңүз</translation> <translation id="7704317875155739195">Издөө сурамдарын жана URL'дерди автоматтык түрдө толтуруу</translation> +<translation id="7707922173985738739">Мобилдик Интернетти колдонуу</translation> <translation id="7725024127233776428">Сиз кыстарма катары сактаган барактар ушул жерде көрүнөт</translation> <translation id="7735637452482172701">Screen Lock менен кулпусун ачуу</translation> <translation id="7746457520633464754">Кооптуу колдонмолор менен сайттарды аныктоо үчүн, Chrome сиз баш баккан айрым сайттардын URL'дерин, тутум тууралуу чектелген маалыматты жана барактагы айрым мазмунду Google'га жөнөтүп турат</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb index 100e750..fb88106 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb
@@ -938,6 +938,7 @@ <translation id="7682724950699840886">ລອງຄຳແນະນຳຕໍ່ໄປນີ້: ກວດໃຫ້ແນ່ໃຈວ່າມີພື້ນທີ່ຫວ່າງພຽງພໍໃນອຸປະກອນຂອງທ່ານ, ລອງສົ່ງອອກອີກຄັ້ງ.</translation> <translation id="7698359219371678927">ສ້າງອີເມວໃນ <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">ຕື່ມການຊອກຫາ ແລະ URL ໂດຍອັດຕະໂນມັດ</translation> +<translation id="7707922173985738739">ໃຊ້ຂໍ້ມູນມືຖື</translation> <translation id="7725024127233776428">ໜ້າທີ່ທ່ານບຸກມາກໄວ້ປາກົດຢູ່ບ່ອນນີ້</translation> <translation id="7735637452482172701">ປົດລັອກດ້ວຍລັອກໜ້າຈໍ</translation> <translation id="7746457520633464754">ເພື່ອກວດຫາແອັບ ແລະ ເວັບໄຊອັນຕະລາຍ, Chrome ສົ່ງ URL ຂອງບາງໜ້າເວັບທີ່ທ່ານເຂົ້າເບິ່ງ, ຂໍ້ມູນລະບົບແບບຈຳກັດ ແລະ ບາງເນື້ອຫາໜ້າເວັບໄປໃຫ້ Google</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb index 66c12f4..0f248c23 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793">Ištrinta „<ph name="ITEM_TITLE" />“</translation> <translation id="3211503082155944789">Neskaitytų puslapių: <ph name="READING_LIST_COUNT" /></translation> <translation id="321773570071367578">Jei pamiršote slaptafrazę arba norite pakeisti šį nustatymą, <ph name="BEGIN_LINK" />iš naujo nustatykite sinchronizavimą<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">„Google Chrome“ kaip saugos raktas</translation> <translation id="3232754137068452469">Žiniatinklio programa</translation> <translation id="3236059992281584593">Liko 1 min.</translation> <translation id="3244271242291266297">MM</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">Išbandykite nurodytus patarimus: įsitikinkite, kad įrenginyje yra pakankamai vietos, ir bandykite eksportuoti dar kartą.</translation> <translation id="7698359219371678927">Kurti el. laišką naudojant „<ph name="APP_NAME" />“</translation> <translation id="7704317875155739195">Automatiškai užbaigti paieškas ir URL</translation> +<translation id="7707922173985738739">Naudoti mobiliojo ryšio duomenis</translation> <translation id="7725024127233776428">Pažymėti puslapiai rodomi čia</translation> <translation id="7735637452482172701">Atrakinti naudojant ekrano užraktą</translation> <translation id="7746457520633464754">Tam, kad būtų aptiktos pavojingos programos ir svetainės, „Chrome“ siunčia „Google“ kai kurių puslapių, kuriuose lankotės, URL, ribotą sistemos informaciją ir kai kurių puslapių turinį</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb index caaa4127..1d06239a 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793">Vienums <ph name="ITEM_TITLE" /> tika izdzēsts</translation> <translation id="3211503082155944789">Nelasīto lapu skaits: <ph name="READING_LIST_COUNT" /></translation> <translation id="321773570071367578">Ja esat aizmirsis ieejas frāzi vai vēlaties mainīt šo iestatījumu, <ph name="BEGIN_LINK" />atiestatiet sinhronizāciju<ph name="END_LINK" />.</translation> +<translation id="3227557059438308877">Pārlūka Google Chrome izmantošana drošības atslēgas vietā</translation> <translation id="3232754137068452469">Tīmekļa lietotne</translation> <translation id="3236059992281584593">Atlikusi 1 min</translation> <translation id="3244271242291266297">MM</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">Ņemiet vērā šos ieteikumus: atbrīvojiet ierīcē vietu un mēģiniet eksportēt vēlreiz.</translation> <translation id="7698359219371678927">Izveidojiet e-pasta ziņojumu lietotnē <ph name="APP_NAME" />.</translation> <translation id="7704317875155739195">Automātiski pabeigt meklēšanas vaicājumus un vietrāžus URL</translation> +<translation id="7707922173985738739">Izmantot mobilos datus</translation> <translation id="7725024127233776428">Šeit tiek rādītas ar grāmatzīmēm atzīmētās lapas</translation> <translation id="7735637452482172701">Atbloķēt, izmantojot ekrāna bloķēšanu</translation> <translation id="7746457520633464754">Lai noteiktu bīstamas lietotnes un vietnes, pārlūkā Chrome dažu jūsu apmeklēto lapu saturs, ierobežots sistēmas informācijas apjoms un daļa lapu satura tiek nosūtīta uzņēmumam Google</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb index 92d83e6..f61ae89 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793">Избришана е ставката <ph name="ITEM_TITLE" /></translation> <translation id="3211503082155944789"><ph name="READING_LIST_COUNT" /> непрочитани страници</translation> <translation id="321773570071367578">Ако сте ја заборавиле лозинката или сакате да ја измените поставкава, <ph name="BEGIN_LINK" />ресетирајте ја синхронизацијата<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">Google Chrome како безбедносен клуч</translation> <translation id="3232754137068452469">Веб-апликација</translation> <translation id="3236059992281584593">Остана 1 минута</translation> <translation id="3244271242291266297">MM</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">Испробајте ги следниве совети: проверете дали има доволно простор на уредот, обидете се да ги извезете повторно.</translation> <translation id="7698359219371678927">Создајте е-пошта во <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Автоматски довршувај ги пребарувањата и URL-адресите</translation> +<translation id="7707922173985738739">Ќе користи мобилен интернет</translation> <translation id="7725024127233776428">Страниците што ќе ги обележите се појавуваат тука</translation> <translation id="7735637452482172701">Отклучете со заклучувањето екран</translation> <translation id="7746457520633464754">За да открие опасни апликации и сајтови, Chrome испраќа URL-адреси од некои страници што ги посетувате, ограничени информации за системот и некои содржини од страниците до Google</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb index 29ae93f..2b73c01d 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">ഈ നുറുങ്ങുകൾ പരീക്ഷിക്കൂ: നിങ്ങളുടെ ഉപകരണത്തിൽ ആവശ്യമായ ഇടം ഉണ്ടെന്ന് ഉറപ്പാക്കി, വീണ്ടും എക്സ്പോർട്ട് ചെയ്യാൻ ശ്രമിക്കുക.</translation> <translation id="7698359219371678927"><ph name="APP_NAME" /> ആപ്പിൽ ഇമെയിൽ സൃഷ്ടിക്കുക</translation> <translation id="7704317875155739195">സ്വമേധയാ പൂർത്തിയാക്കുന്ന തിരയലുകളും URL-കളും</translation> +<translation id="7707922173985738739">മൊബൈൽ ഡാറ്റ ഉപയോഗിക്കുക</translation> <translation id="7725024127233776428">നിങ്ങൾ ബുക്ക്മാർക്ക് ചെയ്യുന്ന പേജുകൾ ഇവിടെ ദൃശ്യമാകും</translation> <translation id="7735637452482172701">സ്ക്രീൻ ലോക്ക് ഉപയോഗിച്ച് അൺലോക്ക് ചെയ്യുക</translation> <translation id="7746457520633464754">അപകടകരമായ ആപ്പുകളും സൈറ്റുകളും കണ്ടെത്തുന്നതിന്, നിങ്ങൾ സന്ദർശിക്കുന്ന ചില പേജുകളുടെ URL, പരിമിത സിസ്റ്റം വിവരങ്ങൾ, ചില പേജ് ഉള്ളടക്കം എന്നിവ Chrome Google-ന് അയയ്ക്കുന്നു</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb index 9e87b9b..844ebc4 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">Дараах зөвлөмжийг хэрэгжүүлж үзнэ үү: төхөөрөмж дээрээ хангалттай сул зай гаргаад дахин экспорт хийж үзнэ үү.</translation> <translation id="7698359219371678927"><ph name="APP_NAME" />-д имэйл үүсгэнэ үү</translation> <translation id="7704317875155739195">Хайлт болон URL-г автоматаар гүйцээх</translation> +<translation id="7707922173985738739">Мобайл дата ашиглах</translation> <translation id="7725024127233776428">Таны хавчуурга хийсэн хуудас энд харагдана</translation> <translation id="7735637452482172701">Дэлгэцийн түгжээ ашиглан түгжээг тайлах</translation> <translation id="7746457520633464754">Chrome аюултай апп болон сайт илрүүлэхийн тулд таны зочилдог зарим хуудасны URL, хязгаарлагдмал системийн мэдээлэл болон зарим хуудасны контентыг Google-д илгээдэг</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb index 0d27380..129c655 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">खालील टिपा वापरून पहा: तुमच्या डिव्हाइसवर पुरेशी जागा असल्याची खात्री करा, पुन्हा एक्सपोर्ट करण्याचा प्रयत्न करा.</translation> <translation id="7698359219371678927"><ph name="APP_NAME" /> मध्ये ईमेल तयार करा</translation> <translation id="7704317875155739195">ऑटोकंप्लीट शोध आणि URL</translation> +<translation id="7707922173985738739">मोबाइल डेटा वापरा</translation> <translation id="7725024127233776428">तुम्ही बुकमार्क केलेली पेज येथे दिसतील</translation> <translation id="7735637452482172701">स्क्रीन लॉकसह अनलॉक करा</translation> <translation id="7746457520633464754">धोकादायक ॲप्स आणि साइट शोधण्यासाठी, Chrome तुम्ही भेट दिलेल्या काही पेजचे URL, मर्यादित सिस्टमची माहिती आणि काही पेजचा आशय Google कडे पाठवतो</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 7a4f751..7ceb632 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
@@ -938,6 +938,7 @@ <translation id="7682724950699840886">Cuba petua berikut: pastikan ruang pada peranti anda mencukupi, cuba eksport sekali lagi.</translation> <translation id="7698359219371678927">Buat e-mel dalam <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Autolengkap carian dan URL</translation> +<translation id="7707922173985738739">Gunakan data mudah alih</translation> <translation id="7725024127233776428">Halaman yang anda tandai halaman dipaparkan di sini</translation> <translation id="7735637452482172701">Buka kunci dengan Kunci Skrin</translation> <translation id="7746457520633464754">Untuk mengesan apl dan tapak berbahaya, Chrome menghantar URL sesetengah halaman yang anda lawati, maklumat sistem yang terhad dan sesetengah kandungan halaman kepada Google</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb index 2bca8ca5..1d7b100 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">အောက်ပါအကြံပြုချက်များကို စမ်းကြည့်ပါ− သင့်စက်ပစ္စည်းပေါ်တွင် နေရာအလုံအလောက်ရှိ မရှိ စစ်ဆေးပြီး ထပ်မံ၍ တင်ပို့ကြည့်ပါ</translation> <translation id="7698359219371678927"><ph name="APP_NAME" /> တွင် အီးမေးလ်ရေးပါ</translation> <translation id="7704317875155739195">ရှာဖွေမှုများနှင့် URL များကို အလိုအလျောက်ဖြည့်ခြင်း</translation> +<translation id="7707922173985738739">မိုဘိုင်းဒေတာကို သုံးရန်</translation> <translation id="7725024127233776428">သင်သိမ်းဆည်းထားသည့် လိပ်စာ၏ စာမျက်နှာများကို ဤနေရာတွင် တွေ့ရပါမည်</translation> <translation id="7735637452482172701">ဖန်သားပြင် လော့ခ်ချခြင်းဖြင့် ဖွင့်ရန်</translation> <translation id="7746457520633464754">အန္တရာယ်ရှိသော အက်ပ်နှင့် ဝဘ်ဆိုက်များကို သိရှိရန် Chrome က သင်ဝင်ကြည့်ထားသော စာမျက်နှာအချို့၏ URL များ၊ ကန့်သတ်ထားသော စနစ် အချက်အလက်များနှင့် စာမျက်နှာ အကြောင်းအရာအချို့ကို Google သို့ ပို့ပါသည်</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb index 7c9efbf6..d7e731b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb
@@ -924,6 +924,7 @@ <translation id="7682724950699840886">निम्न सुझावहरूअनुसार गरी हेर्नुहोस्: कृपया आफ्नो यन्त्रमा पर्याप्त खाली ठाउँ रहेको कुरा सुनिश्चित गरेर पुनः निर्यात गर्ने प्रयास गर्नुहोस्।</translation> <translation id="7698359219371678927"><ph name="APP_NAME" /> मा इमेल सिर्जना गर्नुहोस्</translation> <translation id="7704317875155739195">खोज तथा URL हरू स्वतः पूर्ण गर्नुहोस्</translation> +<translation id="7707922173985738739">मोबाइल डेटा प्रयोग गर्नुहोस्</translation> <translation id="7725024127233776428">तपाईंले पुस्तक चिन्ह लगाउनुभएका पृष्ठहरू यहाँ देखिन्छन्</translation> <translation id="7735637452482172701">स्क्रिन लक प्रयोग गरी अनलक गर्नुहोस्</translation> <translation id="7746457520633464754">Chrome ले खतरनाक एप र साइटहरू पत्ता लगाउने प्रयोजनका लागि तपाईंले भ्रमण गर्ने केही पृष्ठका URL, प्रणालीसम्बन्धी सीमित जानकारी र केही पृष्ठका सामग्री Google मा पठाउँछ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb index c0bf82af6..966adc9 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb
@@ -938,6 +938,7 @@ <translation id="7682724950699840886">Probeer de volgende tips: zorg dat er voldoende ruimte op je apparaat beschikbaar is, probeer opnieuw te exporteren.</translation> <translation id="7698359219371678927">E-mail in <ph name="APP_NAME" /> maken</translation> <translation id="7704317875155739195">Zoekopdrachten en URL's automatisch aanvullen</translation> +<translation id="7707922173985738739">Mobiele data gebruiken</translation> <translation id="7725024127233776428">Pagina's waaraan je een bookmark toevoegt, worden hier weergegeven</translation> <translation id="7735637452482172701">Ontgrendelen met schermvergrendeling</translation> <translation id="7746457520633464754">Chrome verzendt de URL's van sommige pagina's die je bezoekt, beperkte systeemgegevens en bepaalde paginacontent naar Google om gevaarlijke apps en sites te detecteren</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb index 3560d76..9211f34 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793">Slettet <ph name="ITEM_TITLE" /></translation> <translation id="3211503082155944789"><ph name="READING_LIST_COUNT" /> uleste sider</translation> <translation id="321773570071367578">Hvis du har glemt passordfrasen din eller vil endre denne innstillingen, må du <ph name="BEGIN_LINK" />tilbakestille synkroniseringen<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">Google Chrome som sikkerhetsnøkkel</translation> <translation id="3232754137068452469">Nettprogram</translation> <translation id="3236059992281584593">1 minutt igjen</translation> <translation id="3244271242291266297">MM</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">Prøv dette: Sørg for at det er nok plass på enheten, og prøv å eksportere på nytt.</translation> <translation id="7698359219371678927">Opprett en e-post i <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Autofullfør søk og nettadresser</translation> +<translation id="7707922173985738739">Bruk mobildata</translation> <translation id="7725024127233776428">Sider du setter som bokmerker, vises her</translation> <translation id="7735637452482172701">Lås opp med skjermlås</translation> <translation id="7746457520633464754">For å oppdage farlige apper og nettsteder sender Chrome nettadressene til noen av sidene du besøker, begrenset systeminformasjon og noe sideinnhold til Google.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb index 456b146..2c7aa4a7 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">ନିମ୍ନୋକ୍ତ ପରାମର୍ଶଗୁଡ଼ିକୁ ଚେଷ୍ଟା କରନ୍ତୁ: ଆପଣଙ୍କର ଡିଭାଇସ୍ରେ ଯଥେଷ୍ଟ ଜାଗା ଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ, ପୁଣି ଏକ୍ସପୋର୍ଟ କରିବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ।</translation> <translation id="7698359219371678927"><ph name="APP_NAME" />ରେ ଇମେଲ୍ ତିଆରି କରନ୍ତୁ</translation> <translation id="7704317875155739195">ସନ୍ଧାନ ଓ URLଗୁଡ଼ିକୁ ସ୍ୱଚାଳିତ ଭାବେ ସମ୍ପୂର୍ଣ୍ଣ ହେବାକୁ ଦିଅନ୍ତୁ</translation> +<translation id="7707922173985738739">ମୋବାଇଲ୍ ଡାଟା ବ୍ୟବହାର କରନ୍ତୁ।</translation> <translation id="7725024127233776428">ଏଠାରେ ଆପଣ ବୁକ୍ମାର୍କ କରୁଥିବା ପୃଷ୍ଠା ଦେଖାଯାଏ</translation> <translation id="7735637452482172701">ସ୍କ୍ରିନ୍ ଲକ୍ ସହ ଅନଲକ୍ କରନ୍ତୁ</translation> <translation id="7746457520633464754">ବିପଜ୍ଜନକ ଆପ୍ସ ଏବଂ ସାଇଟ୍ଗୁଡ଼ିକ ବିଷୟରେ ଜାଣିବା ପାଇଁ, Chrome ଏପରି କିଛି ପୃଷ୍ଠାର URLଗୁଡ଼ିକ ଯେଉଁଠାକୁ ଆପଣ ଯାଆନ୍ତି, ସୀମିତ ସିଷ୍ଟମ୍ ସୂଚନା ଏବଂ କିଛି ପୃଷ୍ଠାର ବିଷୟବସ୍ତୁ Googleକୁ ପଠାଇଥାଏ।</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb index 9a451373..cd2e0eab 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb
@@ -925,6 +925,7 @@ <translation id="7682724950699840886">ਅੱਗੇ ਦਿੱਤੇ ਨੁਕਤੇ ਅਜ਼ਮਾਓ: ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਹਾਡੇ ਡੀਵਾਈਸ 'ਤੇ ਲੋੜੀਂਦੀ ਜਗ੍ਹਾ ਹੈ, ਦੁਬਾਰਾ ਨਿਰਯਾਤ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation> <translation id="7698359219371678927"><ph name="APP_NAME" /> ਵਿੱਚ ਈਮੇਲ ਬਣਾਓ</translation> <translation id="7704317875155739195">ਸਵੈ-ਮੁਕੰਮਲ ਖੋਜਾਂ ਅਤੇ URLs</translation> +<translation id="7707922173985738739">ਮੋਬਾਈਲ ਡਾਟਾ ਵਰਤੋ</translation> <translation id="7725024127233776428">ਤੁਹਾਡੇ ਵੱਲੋਂ ਬੁੱਕਮਾਰਕ ਕੀਤੇ ਪੰਨੇ ਇੱਥੇ ਦਿਖਾਈ ਦਿੰਦੇ ਹਨ</translation> <translation id="7735637452482172701">ਸਕ੍ਰੀਨ ਲਾਕ ਨਾਲ ਅਣਲਾਕ ਕਰੋ</translation> <translation id="7746457520633464754">ਖਤਰਨਾਕ ਐਪਾਂ ਅਤੇ ਸਾਈਟਾਂ ਦਾ ਪਤਾ ਲਗਾਉਣ ਲਈ, Chrome ਤੁਹਾਡੇ ਵੱਲੋਂ ਦੇਖੇ ਕੁਝ ਪੰਨਿਆਂ ਦੇ URL, ਸੀਮਤ ਸਿਸਟਮ ਜਾਣਕਾਰੀ ਅਤੇ ਕੁਝ ਪੰਨਾ ਸਮੱਗਰੀ Google ਨੂੰ ਭੇਜਦਾ ਹੈ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb index 010cd71..f7e8338 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793">Usunięto: <ph name="ITEM_TITLE" /></translation> <translation id="3211503082155944789">Nieprzeczytane strony: <ph name="READING_LIST_COUNT" /></translation> <translation id="321773570071367578">Jeśli nie pamiętasz hasła lub chcesz zmienić to ustawienie, <ph name="BEGIN_LINK" />zresetuj synchronizację<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">Google Chrome jako klucz bezpieczeństwa</translation> <translation id="3232754137068452469">Aplikacja internetowa</translation> <translation id="3236059992281584593">Pozostała minuta</translation> <translation id="3244271242291266297">MM</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">Skorzystaj z tych wskazówek: upewnij się, że masz wystarczająco dużo miejsca na urządzeniu, i ponownie spróbuj wyeksportować hasła.</translation> <translation id="7698359219371678927">Utwórz e-maila w aplikacji <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Autouzupełniaj wyszukiwania i adresy URL</translation> +<translation id="7707922173985738739">Użycie mobilnej transmisji danych</translation> <translation id="7725024127233776428">Tutaj pojawią się strony, które dodasz do zakładek</translation> <translation id="7735637452482172701">Odblokuj za pomocą blokady ekranu</translation> <translation id="7746457520633464754">Aby wykrywać niebezpieczne aplikacje i witryny, Chrome wysyła do Google adresy URL i część zawartości niektórych odwiedzanych przez Ciebie stron, a także niektóre informacje o systemie</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb index 9b6b2f65..b9872af 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793">Item excluído: <ph name="ITEM_TITLE" /></translation> <translation id="3211503082155944789"><ph name="READING_LIST_COUNT" /> páginas não lidas</translation> <translation id="321773570071367578">Se você esqueceu sua senha longa ou deseja alterar essa configuração, <ph name="BEGIN_LINK" />redefina a sincronização<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">Google Chrome como chave de segurança</translation> <translation id="3232754137068452469">App da Web</translation> <translation id="3236059992281584593">Um minuto restante</translation> <translation id="3244271242291266297">MM</translation> @@ -938,6 +939,7 @@ <translation id="7682724950699840886">Experimente as seguintes dicas: verifique se há espaço suficiente no dispositivo e tente exportar novamente.</translation> <translation id="7698359219371678927">Criar e-mail no <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Preencher automaticamente pesquisas e URLs</translation> +<translation id="7707922173985738739">Usar dados móveis</translation> <translation id="7725024127233776428">As páginas favoritadas são exibidas aqui</translation> <translation id="7735637452482172701">Desbloquear com o bloqueio de tela</translation> <translation id="7746457520633464754">Para detectar apps e sites perigosos, o Chrome envia para o Google URLs de algumas páginas visitadas, informações limitadas do sistema e um pouco do conteúdo da página</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb index 83576422..5ded510 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793"><ph name="ITEM_TITLE" /> eliminado</translation> <translation id="3211503082155944789"><ph name="READING_LIST_COUNT" /> páginas não lidas</translation> <translation id="321773570071367578">Se se esquecer da frase de acesso ou pretender alterar esta definição, <ph name="BEGIN_LINK" />reponha a sincronização<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">Google Chrome como uma chave de segurança</translation> <translation id="3232754137068452469">App Web</translation> <translation id="3236059992281584593">Falta 1 minuto</translation> <translation id="3244271242291266297">MM</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">Experimente as seguintes sugestões: certifique-se de que existe espaço suficiente no dispositivo e tente exportar novamente.</translation> <translation id="7698359219371678927">Criar email no <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Pesquisas de preenchimento automático e URLs</translation> +<translation id="7707922173985738739">Utilizar dados móveis</translation> <translation id="7725024127233776428">As páginas que adiciona aos marcadores aparecem aqui.</translation> <translation id="7735637452482172701">Desbloquear com bloqueio de ecrã</translation> <translation id="7746457520633464754">Para detetar aplicações e sites perigosos, o Chrome envia para a Google URLs de algumas páginas que visita, informações limitadas do sistema e algum conteúdo das páginas.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb index 6f35542b7..45f798a 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793"><ph name="ITEM_TITLE" /> a fost șters</translation> <translation id="3211503082155944789">Pagini necitite: <ph name="READING_LIST_COUNT" /></translation> <translation id="321773570071367578">Dacă ai uitat expresia de acces sau dorești să modifici această setare, <ph name="BEGIN_LINK" />resetează sincronizarea<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">Google Chrome drept cheie de securitate</translation> <translation id="3232754137068452469">Aplicație web</translation> <translation id="3236059992281584593">1 min. rămas</translation> <translation id="3244271242291266297">LL</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">Încearcă următoarele sfaturi: asigură-te că există spațiu suficient pe dispozitiv, încearcă să exporți din nou.</translation> <translation id="7698359219371678927">Creează un e-mail în <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Completează automat căutările și adresele URL</translation> +<translation id="7707922173985738739">va folosi datele mobile;</translation> <translation id="7725024127233776428">Paginile pe care le marchezi apar aici</translation> <translation id="7735637452482172701">Deblochează folosind blocarea ecranului</translation> <translation id="7746457520633464754">Pentru a detecta aplicațiile și site-urile periculoase, Chrome trimite la Google adresele URL ale unor pagini pe care le accesezi, informații de sistem limitate și o parte din conținutul paginii</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb index f494cf7..890a57f 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">Убедитесь, что на вашем устройстве достаточно свободного места. Затем снова попробуйте экспортировать пароли.</translation> <translation id="7698359219371678927">Написать письмо в приложении "<ph name="APP_NAME" />"</translation> <translation id="7704317875155739195">Заполнять поисковые запросы и URL автоматически</translation> +<translation id="7707922173985738739">Использовать мобильный Интернет</translation> <translation id="7725024127233776428">Здесь будут страницы, которые вы добавляете в закладки.</translation> <translation id="7735637452482172701">Использовать разблокировку экрана</translation> <translation id="7746457520633464754">Для обнаружения опасных приложений и сайтов Chrome отправляет в Google URL некоторых страниц, которые вы открываете, контент на них, а также определенные сведения о системе</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb index cf2f8093..fa4c127 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">පහත ඉඟි උත්සාහ කරන්න: ඔබේ උපාංගයේ ප්රමාණවත් ඉඩක් ඇති බවට වග බලා ගෙන, නැවත නිර්යාත කිරීමට උත්සාහ කරන්න.</translation> <translation id="7698359219371678927"><ph name="APP_NAME" /> තුළ ඊ-තැපෑලක් සාදන්න</translation> <translation id="7704317875155739195">සෙවීම් සහ URL ලිපින ස්වයංව සම්පූර්ණ කරන්න</translation> +<translation id="7707922173985738739">ජංගම දත්ත භාවිත කරන්න</translation> <translation id="7725024127233776428">ඔබ පිටුසන් කරන පිටු මෙහි දිස් වෙති</translation> <translation id="7735637452482172701">තිර අගුල සමගින් අගුලු හරින්න</translation> <translation id="7746457520633464754">අනතුරුදායක යෙදුම් සහ වෙබ් අඩවි අනාවරණ කිරීමට, Chrome විසින් ඔබ පැමිණෙන සමහර පිටුවල URL, සීමිත පද්ධති තොරතුරු, සහ සමහර පිටු අන්තර්ගතය Google වෙත යවනු ලැබේ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb index 17c6141..4009a1d9 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">Skúste tieto tipy: Uistite sa, že máte v zariadení dosť miesta, a potom skúste znova spustiť exportovanie.</translation> <translation id="7698359219371678927">Vytvorte správu v aplikácii <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Automaticky dopĺňať vyhľadávania a webové adresy</translation> +<translation id="7707922173985738739">Používať mobilné dáta</translation> <translation id="7725024127233776428">Tu sa zobrazia vaše stránky uložené ako záložky</translation> <translation id="7735637452482172701">Odomknúť zámkou obrazovky</translation> <translation id="7746457520633464754">Chrome odosiela Googlu webové adresy niektorých navštívených stránok, obmedzené informácie o systéme a obsah niektorých stránok na účely rozpoznávania nebezpečných aplikácií a webov.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb index e5beb76..db5f2bc 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">Poskusite ta nasveta: poskrbite, da je v napravi dovolj prostora, ali poskusite znova izvoziti.</translation> <translation id="7698359219371678927">Ustvarite e-poštno sporočilo v aplikaciji <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Samodejno dokončanje iskanj in URL-jev</translation> +<translation id="7707922173985738739">Uporaba prenosa podatkov v mobilnem omrežju</translation> <translation id="7725024127233776428">Strani, ki jih dodate med zaznamke, so prikazane tukaj</translation> <translation id="7735637452482172701">Odkleni z zaklepanjem zaslona</translation> <translation id="7746457520633464754">Zaradi zaznavanja nevarnih aplikacij in spletnih mest Chrome Googlu pošlje URL-je nekaterih strani, ki jih obiščete, omejene podatke o sistemu in vsebino nekaterih strani</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb index e6c6b11..58045dce 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb
@@ -938,6 +938,7 @@ <translation id="7682724950699840886">Provoni këshillat e mëposhtme: sigurohu që ka hapësirë të mjaftueshme në pajisjen tënde dhe provo të eksportosh përsëri.</translation> <translation id="7698359219371678927">Krijo mail në <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Plotësimi automatik i kërkimeve dhe i URL-ve</translation> +<translation id="7707922173985738739">Përdor të dhënat celulare</translation> <translation id="7725024127233776428">Faqet që shënon shfaqen këtu</translation> <translation id="7735637452482172701">Shkyçe me "Kyçjen e ekranit"</translation> <translation id="7746457520633464754">Për të zbuluar aplikacionet dhe sajtet e rrezikshme, Chrome dërgon URL-të e disa faqeve që viziton, informacione të kufizuara të sistemit dhe disa përmbajtje faqesh te Google</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb index fdedf5d..38cac3f 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793">Stavka <ph name="ITEM_TITLE" /> je izbrisana</translation> <translation id="3211503082155944789">Nepročitanih stranica: <ph name="READING_LIST_COUNT" /></translation> <translation id="321773570071367578">Ako ste zaboravili pristupnu frazu ili želite da promenite ovo podešavanje, <ph name="BEGIN_LINK" />resetujte sinhronizaciju<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">Google Chrome kao bezbednosni ključ</translation> <translation id="3232754137068452469">Veb-aplikacija</translation> <translation id="3236059992281584593">Još 1 min</translation> <translation id="3244271242291266297">MM</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">Isprobajte sledeće savete: proverite da li na uređaju ima dovoljno prostora, pa probajte da ponovo izvezete lozinke.</translation> <translation id="7698359219371678927">Napišite imejl u aplikaciji <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Automatski dovršavaj pretrage i URL-ove</translation> +<translation id="7707922173985738739">Koristi mobilne podatke</translation> <translation id="7725024127233776428">Stranice koje obeležite se prikazuju ovde</translation> <translation id="7735637452482172701">Otključaj pomoću Zaključavanja ekrana</translation> <translation id="7746457520633464754">Da bi otkrivao opasne aplikacije i sajtove, Chrome šalje Google-u URL-ove nekih stranica koje posećujete, ograničene informacije o sistemu i određeni sadržaj stranica</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb index 9cc9de2..19c72e80d 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793">Ставка <ph name="ITEM_TITLE" /> је избрисана</translation> <translation id="3211503082155944789">Непрочитаних страница: <ph name="READING_LIST_COUNT" /></translation> <translation id="321773570071367578">Ако сте заборавили приступну фразу или желите да промените ово подешавање, <ph name="BEGIN_LINK" />ресетујте синхронизацију<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">Google Chrome као безбедносни кључ</translation> <translation id="3232754137068452469">Веб-апликација</translation> <translation id="3236059992281584593">Још 1 мин</translation> <translation id="3244271242291266297">ММ</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">Испробајте следеће савете: проверите да ли на уређају има довољно простора, па пробајте да поново извезете лозинке.</translation> <translation id="7698359219371678927">Напишите имејл у апликацији <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Аутоматски довршавај претраге и URL-ове</translation> +<translation id="7707922173985738739">Користи мобилне податке</translation> <translation id="7725024127233776428">Странице које обележите се приказују овде</translation> <translation id="7735637452482172701">Откључај помоћу Закључавања екрана</translation> <translation id="7746457520633464754">Да би откривао опасне апликације и сајтове, Chrome шаље Google-у URL-ове неких страница које посећујете, ограничене информације о систему и одређени садржај страница</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb index 48617a01..19f52bf 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793"><ph name="ITEM_TITLE" /> raderades</translation> <translation id="3211503082155944789"><ph name="READING_LIST_COUNT" /> olästa sidor</translation> <translation id="321773570071367578">Om du har glömt lösenfrasen eller vill ändra inställningen <ph name="BEGIN_LINK" />återställer du synkroniseringen<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">Google Chrome som säkerhetsnyckel</translation> <translation id="3232754137068452469">Webbapp</translation> <translation id="3236059992281584593">1 minut kvar</translation> <translation id="3244271242291266297">MM</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">Testa följande: kontrollera att det finns tillräckligt mycket utrymme på enheten, gör om exporten.</translation> <translation id="7698359219371678927">Skapa ett e-postmeddelande i <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Autoslutför sökningar och webbadresser</translation> +<translation id="7707922173985738739">Mobildata används</translation> <translation id="7725024127233776428">Sidor som infogats som bokmärke visas här</translation> <translation id="7735637452482172701">Lås upp med skärmlås</translation> <translation id="7746457520633464754">För att kunna upptäcka farliga appar och webbplatser skickar Chrome webbadresser till vissa sidor som du besöker, vissa systemuppgifter och visst sidinnehåll till Google</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb index baef279..8f9ea50e 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">Jaribu vidokezo vifuatavyo: Hakikisha kuwa una nafasi ya kutosha kwenye kifaa chako kisha ujaribu kuihamisha tena.</translation> <translation id="7698359219371678927">Tunga barua pepe katika <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Jaza kiotomatiki URL na hoja za utafutaji</translation> +<translation id="7707922173985738739">Tumia data ya mtandao wa simu</translation> <translation id="7725024127233776428">Kurasa unazoalamisha zitaonekana hapa</translation> <translation id="7735637452482172701">Fungua kwa kutumia kipengele cha Kufunga Skrini</translation> <translation id="7746457520633464754">Ili kutambua programu na tovuti hatari, Chrome hutuma URL za baadhi ya kurasa unazotembelea. maelezo machache ya mfumo na maudhui ya ukurasa kwa Google</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb index 81044a7..2c21503 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
@@ -159,7 +159,7 @@ <translation id="2131665479022868825"><ph name="DATA" /> சேமிக்கப்பட்டது</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> மூடப்பட்டது</translation> <translation id="2139186145475833000">முகப்புத் திரையில் சேர்</translation> -<translation id="214888715418183969">Chromeமுடன் என்னென்ன தகவல்களைப் பகிரலாம் என்பதைத் தேர்வுசெய்யுங்கள். Chromeமின் அம்சங்கள், செயல்திறன், நிலைப்புத்தன்மை ஆகியவற்றை மேம்படுத்த இந்தத் தகவல்கள் பயன்படுத்தப்படும்.</translation> +<translation id="214888715418183969">Chromeமுடன் எதையெல்லாம் பகிரலாம் என்பதைத் தேர்வுசெய்யுங்கள். Chromeமின் அம்சங்கள், செயல்திறன், நிலைப்புத்தன்மை ஆகியவற்றை மேம்படுத்த இந்த அளவீடுகள் பயன்படுத்தப்படும்.</translation> <translation id="2154484045852737596">கார்டைத் திருத்தவும்</translation> <translation id="2154710561487035718">URL ஐ நகலெடு</translation> <translation id="2156074688469523661">மீதமுள்ள தளங்கள் (<ph name="NUMBER_OF_SITES" />)</translation> @@ -937,6 +937,7 @@ <translation id="7682724950699840886">பின்வரும் உதவிக்குறிப்புகளை முயன்று பார்க்கவும்: சாதனத்தில் போதுமான சேமிப்பிடம் இருப்பதை உறுதிப்படுத்தி, மீண்டும் ஏற்ற முயலவும்.</translation> <translation id="7698359219371678927"><ph name="APP_NAME" /> இல் மின்னஞ்சலை உருவாக்கவும்</translation> <translation id="7704317875155739195">தேடல்களையும் URLகளையும் தானே நிரப்பு</translation> +<translation id="7707922173985738739">மொபைல் டேட்டாவைப் பயன்படுத்து</translation> <translation id="7725024127233776428">நீங்கள் புக்மார்க் செய்த பக்கங்கள் இங்கு தோன்றும்</translation> <translation id="7735637452482172701">திரைப் பூட்டு மூலம் திற</translation> <translation id="7746457520633464754">ஆபத்தான ஆப்ஸையும் தளங்களையும் கண்டறிய நீங்கள் பார்வையிட்ட சில பக்கங்களின் URLகளையும், வரம்பிற்குட்பட்ட சிஸ்டம் தகவல்களையும், சில பக்கங்களின் உள்ளடக்கத்தையும் Googleளுக்கு Chrome அனுப்பும்</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb index 3880fcb2..40329a3f 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">కింది చిట్కాలను ప్రయత్నించండి: మీ పరికరంలో తగినంత స్థలం ఉన్నట్లు నిర్ధారించుకోండి, మళ్లీ ఎగుమతి చేయడానికి ప్రయత్నించండి.</translation> <translation id="7698359219371678927"><ph name="APP_NAME" />లో ఇమెయిల్ను సృష్టించండి</translation> <translation id="7704317875155739195">ఆటో-ఫిల్ సెర్చ్లు, URLలు</translation> +<translation id="7707922173985738739">మొబైల్ డేటాను ఉపయోగిస్తుంది</translation> <translation id="7725024127233776428">మీరు బుక్మార్క్ చేసే పేజీలు ఇక్కడ కనిపిస్తాయి</translation> <translation id="7735637452482172701">స్క్రీన్ లాక్తో అన్లాక్ చేయి</translation> <translation id="7746457520633464754">Chrome ప్రమాదకరమైన యాప్లు, సైట్లను గుర్తించడానికి, మీరు సందర్శించే కొన్ని పేజీల URLలు, పరిమిత సిస్టమ్ సమాచారం, కొంత పేజీ కంటెంట్ను Googleకు పంపుతుంది</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 80fe5392..c590223a 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
@@ -300,6 +300,7 @@ <translation id="3211426585530211793">ลบ <ph name="ITEM_TITLE" /> แล้ว</translation> <translation id="3211503082155944789">ยังไม่อ่าน <ph name="READING_LIST_COUNT" /> หน้า</translation> <translation id="321773570071367578">หากคุณลืมรหัสผ่านหรือต้องการเปลี่ยนการตั้งค่านี้ ให้<ph name="BEGIN_LINK" />รีเซ็ตการซิงค์<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">ใช้ Google Chrome เป็นคีย์ความปลอดภัย</translation> <translation id="3232754137068452469">เว็บแอป</translation> <translation id="3236059992281584593">เหลือ 1 นาที</translation> <translation id="3244271242291266297">ดด</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">ลองทำตามเคล็ดลับต่อไปนี้ ตรวจสอบว่าอุปกรณ์มีพื้นที่ว่างเพียงพอ จากนั้นพยายามส่งออกอีกครั้ง</translation> <translation id="7698359219371678927">สร้างอีเมลใน <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">เติมข้อความค้นหาและ URL อัตโนมัติ</translation> +<translation id="7707922173985738739">ใช้เน็ตมือถือ</translation> <translation id="7725024127233776428">หน้าที่คุณบุ๊กมาร์กไว้จะปรากฏที่นี่</translation> <translation id="7735637452482172701">ปลดล็อกด้วยการล็อกหน้าจอ</translation> <translation id="7746457520633464754">ในการตรวจหาแอปและเว็บไซต์ที่เป็นอันตราย Chrome จะส่ง URL ของหน้าบางหน้าที่คุณเข้าชม ข้อมูลระบบที่จำกัด และเนื้อหาบางส่วนของหน้าไปให้ Google</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb index d8ce592e0..5b59049 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">Şu ipuçlarını deneyin: Cihazınızda yeterli alan bulunduğundan emin olun, daha sonra dışa aktarmayı tekrar deneyin.</translation> <translation id="7698359219371678927"><ph name="APP_NAME" /> adlı uygulamada e-posta oluşturun</translation> <translation id="7704317875155739195">Aramaları ve URL'leri otomatik tamamla</translation> +<translation id="7707922173985738739">Mobil veri kullanın</translation> <translation id="7725024127233776428">Yer işareti koyduğunuz sayfalar burada görünür</translation> <translation id="7735637452482172701">Kilidi, Ekran Kilidi ile aç</translation> <translation id="7746457520633464754">Chrome, tehlikeli uygulamaları ve siteleri algılamak için Google'a ziyaret ettiğiniz bazı sitelerin URL'lerini, sınırlı sistem bilgisini ve bazı sayfa içeriklerini gönderir.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb index 995736c..a4bf1659 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793">Елемент "<ph name="ITEM_TITLE" />" видалено</translation> <translation id="3211503082155944789">Непрочитаних сторінок: <ph name="READING_LIST_COUNT" /></translation> <translation id="321773570071367578">Якщо ви забули парольну фразу або хочете змінити це налаштування, <ph name="BEGIN_LINK" />скиньте синхронізацію<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">Google Chrome як ключ безпеки</translation> <translation id="3232754137068452469">Веб-додаток</translation> <translation id="3236059992281584593">Залишилась 1 хв</translation> <translation id="3244271242291266297">ММ</translation> @@ -843,7 +844,7 @@ <translation id="7015203776128479407">Початкове налаштування синхронізації не завершено. Синхронізацію вимкнено.</translation> <translation id="7022756207310403729">Відкрити у веб-переглядачі</translation> <translation id="702463548815491781">Рекомендується, коли ввімкнено TalkBack або кнопковий доступ</translation> -<translation id="7027549951530753705">Відновлено елемент "<ph name="ITEM_TITLE" />"</translation> +<translation id="7027549951530753705">Відновлено об'єкт "<ph name="ITEM_TITLE" />"</translation> <translation id="7029809446516969842">Паролі</translation> <translation id="703523980599857277">Змінити головну сторінку</translation> <translation id="7054588988317389591">Отримувати описи зображень?</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">Порада. Переконайтеся, що на пристрої достатньо вільного місця та спробуйте експортувати дані знову.</translation> <translation id="7698359219371678927">Створити електронну адресу в додатку <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Автоматично завершувати пошукові запити та URL-адреси</translation> +<translation id="7707922173985738739">Використовувати мобільне передавання даних</translation> <translation id="7725024127233776428">Сторінки, для яких ви робите закладки, з'являються тут</translation> <translation id="7735637452482172701">Розблокувати через функцію блокування екрана</translation> <translation id="7746457520633464754">Щоб виявляти небезпечні додатки й сайти, Chrome надсилає URL-адреси певних відвіданих сторінок, обмежену системну інформацію та вміст деяких сторінок у Google</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb index 2880623..349fadd4 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb
@@ -169,7 +169,7 @@ <translation id="2175927920773552910">QR کوڈ</translation> <translation id="218608176142494674">اشتراک</translation> <translation id="2195339740518523951">Chrome کی مضبوط ترین سیکیورٹی حاصل کریں</translation> -<translation id="2200113223741723867">استعمال کا ڈیٹا کے اشتراک کا نظم کریں</translation> +<translation id="2200113223741723867">استعمال کے ڈیٹا کے اشتراک کا نظم کریں</translation> <translation id="2227444325776770048"><ph name="USER_FULL_NAME" /> کے بطور جاری رکھیں</translation> <translation id="2234876718134438132">مطابقت پذیری اور Google سروسز</translation> <translation id="2239812875700136898">اختیارات برائے Discover بٹن سے اپنی کہانیاں کنٹرول کریں</translation> @@ -937,6 +937,7 @@ <translation id="7682724950699840886">مندرجہ ذیل تجاویز آزمائیں: یقینی بنائیں کہ آپ کے آلہ پر کافی جگہ ہے، دوبارہ برآمد کرنے کی کوشش کریں۔</translation> <translation id="7698359219371678927"><ph name="APP_NAME" /> میں ای میل تخلیق کریں</translation> <translation id="7704317875155739195">تلاشوں اور URLs کی خودکار تکمیل کریں</translation> +<translation id="7707922173985738739">موبائل ڈیٹا استعمال کریں</translation> <translation id="7725024127233776428">آپ کے بُک مارک کیے ہوئے صفحات یہاں دکھائی دیتے ہیں</translation> <translation id="7735637452482172701">اسکرین لاک کے ساتھ غیر مقفل کریں</translation> <translation id="7746457520633464754">خطرناک ایپس اور سائٹس کا پتہ لگانے کیلئے، Chrome آپ کے ملاحظہ کئے جانے والے چند صفحات کے URLs، سسٹم کی محدود معلومات اور صفحے کا کچھ مواد Google کو بھیجتا ہے</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb index 192cedb..b4a585a 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb
@@ -300,6 +300,7 @@ <translation id="3211426585530211793">Oʻchirib tashlandi: <ph name="ITEM_TITLE" /></translation> <translation id="3211503082155944789"><ph name="READING_LIST_COUNT" /> ta sahifa oʻqilmagan</translation> <translation id="321773570071367578">Agar kodli iborani unutsangiz yoki o‘zgartirmoqchi bo‘lsangiz, <ph name="BEGIN_LINK" />sinxronlash sozlamalarini qayta tiklang<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">Google Chromeni elektron kalit sifatida ishlatish</translation> <translation id="3232754137068452469">Veb-ilova</translation> <translation id="3236059992281584593">1 daqiqa qoldi</translation> <translation id="3244271242291266297">OO</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">Quyidagi tavsiyalar yordam berishi mumkin: qurilmangizda yetarli bo‘sh joy borligini tekshiring va qaytadan urining.</translation> <translation id="7698359219371678927"><ph name="APP_NAME" /> orqali e-pochta yaratish</translation> <translation id="7704317875155739195">Qidiruv va URL manzillarning avtomatik kiritilishi</translation> +<translation id="7707922173985738739">Mobil internetdan foydalanish</translation> <translation id="7725024127233776428">Xatchoʻplarga saqlanadigan sahifalar shu yerda chiqadi</translation> <translation id="7735637452482172701">Ekran qulfini yechish</translation> <translation id="7746457520633464754">Xavfli ilova saytlarni aniqlashda Chrome siz tashrif buyuradigan saytlarning URL manzillari, tizim axboroti va ayrim sahifalardagi kontentlarni Google serverlariga yuboradi</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb index 0f6023e..3daa0470 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">Thử các mẹo sau: đảm bảo thiết bị của bạn có đủ dung lượng, sau đó thử xuất lại.</translation> <translation id="7698359219371678927">Tạo email trong <ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Tự động hoàn thành cụm từ tìm kiếm và URL</translation> +<translation id="7707922173985738739">Sử dụng dữ liệu di động</translation> <translation id="7725024127233776428">Các trang mà bạn đánh dấu sẽ xuất hiện tại đây</translation> <translation id="7735637452482172701">Mở khóa bằng phương thức khóa màn hình</translation> <translation id="7746457520633464754">Để phát hiện các ứng dụng và trang web nguy hiểm, Chrome sẽ gửi URL của một số trang mà bạn truy cập, thông tin hệ thống giới hạn và một số nội dung trang cho Google</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb index 9c3e25a..5d42260 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">请尝试按以下提示操作:确保您的设备上有足够的空间,然后重新尝试导出。</translation> <translation id="7698359219371678927">在 <ph name="APP_NAME" /> 中创建电子邮件</translation> <translation id="7704317875155739195">自动填充搜索字词和网址</translation> +<translation id="7707922173985738739">使用移动数据</translation> <translation id="7725024127233776428">您添加书签的网页会显示在此处</translation> <translation id="7735637452482172701">使用“屏幕锁定”功能解锁</translation> <translation id="7746457520633464754">为了检测危险应用和网站,Chrome 会将您所访问的部分网页的网址、有限的系统信息以及部分网页内容发送给 Google</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb index 3bef50d2..6d098255 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb
@@ -16,7 +16,7 @@ <translation id="1105960400813249514">擷取螢幕畫面</translation> <translation id="1111673857033749125">儲存在其他裝置上的書籤會在這裡顯示。</translation> <translation id="1113597929977215864">顯示簡化檢視模式</translation> -<translation id="1123070903960493543">您與 Chrome 互動的方式、已選取的設定、Chrome 發生當機情況的詳情</translation> +<translation id="1123070903960493543">您與 Chrome 互動的方式、已選取的設定、Chrome 當機的詳情</translation> <translation id="1126809382673880764">無法防範危險網站、下載檔案和擴充程式。您仍可在其他 Google 服務 (例如 Gmail 和搜尋) 中使用「安全瀏覽」功能 (如有)。</translation> <translation id="1129510026454351943">詳情:<ph name="ERROR_DESCRIPTION" /></translation> <translation id="1141800923049248244">{FILE_COUNT,plural, =1{1 項下載操作尚待處理。}other{# 項下載操作尚待處理。}}</translation> @@ -159,7 +159,7 @@ <translation id="2131665479022868825">已節省 <ph name="DATA" /></translation> <translation id="213279576345780926">已關閉「<ph name="TAB_TITLE" />」</translation> <translation id="2139186145475833000">新增至主螢幕</translation> -<translation id="214888715418183969">選擇您想與 Chrome 分享的資料。您分享的數據將用於協助改善 Chrome 的功能、效能和穩定性。</translation> +<translation id="214888715418183969">選擇您想與 Chrome 分享的資料。您分享的數據將有助我們改善 Chrome 的功能、效能和穩定性。</translation> <translation id="2154484045852737596">編輯付款信用卡</translation> <translation id="2154710561487035718">複製網址</translation> <translation id="2156074688469523661">其餘網站 (共 <ph name="NUMBER_OF_SITES" /> 個)</translation> @@ -169,7 +169,7 @@ <translation id="2175927920773552910">二維條碼</translation> <translation id="218608176142494674">共用</translation> <translation id="2195339740518523951">取得 Chrome 最強大的安全防護</translation> -<translation id="2200113223741723867">管理使用情況資料分享項目</translation> +<translation id="2200113223741723867">管理使用情況資料分享設定</translation> <translation id="2227444325776770048">以<ph name="USER_FULL_NAME" />的身分繼續</translation> <translation id="2234876718134438132">同步處理和 Google 服務</translation> <translation id="2239812875700136898">按一下 [探索的選項] 按鈕來控制您的報導</translation> @@ -300,6 +300,7 @@ <translation id="3211426585530211793">已刪除 <ph name="ITEM_TITLE" /></translation> <translation id="3211503082155944789"><ph name="READING_LIST_COUNT" /> 個未讀頁面</translation> <translation id="321773570071367578">如果您忘記密碼短語,或希望變更這項設定,請<ph name="BEGIN_LINK" />重設同步功能<ph name="END_LINK" /></translation> +<translation id="3227557059438308877">以 Google Chrome 作為安全密鑰</translation> <translation id="3232754137068452469">網絡應用程式</translation> <translation id="3236059992281584593">尚餘 1 分鐘</translation> <translation id="3244271242291266297">MM</translation> @@ -843,7 +844,7 @@ <translation id="7015203776128479407">尚未完成初始同步處理設定。已關閉同步功能。</translation> <translation id="7022756207310403729">在瀏覽器中開啟</translation> <translation id="702463548815491781">建議在 TalkBack 或「按鈕控制」開啟時使用</translation> -<translation id="7027549951530753705">已還原 <ph name="ITEM_TITLE" /></translation> +<translation id="7027549951530753705">還原咗 <ph name="ITEM_TITLE" /></translation> <translation id="7029809446516969842">密碼</translation> <translation id="703523980599857277">變更首頁</translation> <translation id="7054588988317389591">要取得圖片說明嗎?</translation> @@ -937,6 +938,7 @@ <translation id="7682724950699840886">請嘗試按照以下提示操作:確保您的裝置上有足夠的儲存空間,然後嘗試重新匯出。</translation> <translation id="7698359219371678927">在 <ph name="APP_NAME" /> 中建立電郵</translation> <translation id="7704317875155739195">自動完成搜尋和網址</translation> +<translation id="7707922173985738739">使用流動數據</translation> <translation id="7725024127233776428">加入書籤的網頁會在這裡顯示</translation> <translation id="7735637452482172701">透過「螢幕鎖定」功能解鎖</translation> <translation id="7746457520633464754">為了偵測危險的應用程式和網站,Chrome 會將您瀏覽的部分網頁網址、有限的系統資料以及部分網頁內容傳送給 Google</translation> @@ -1025,7 +1027,7 @@ <translation id="8316092324682955408"><ph name="DOMAIN_NAME" /> 和其他網站</translation> <translation id="8327155640814342956">為獲得最佳瀏覽體驗,請開啟 Chrome 進行更新</translation> <translation id="8349013245300336738">依使用數據量排序</translation> -<translation id="835847953965672673">已還原 <ph name="NUMBER_OF_DOWNLOADS" /> 個下載內容</translation> +<translation id="835847953965672673">還原咗 <ph name="NUMBER_OF_DOWNLOADS" /> 個下載嘅內容</translation> <translation id="8364299278605033898">查看熱門網站</translation> <translation id="8368027906805972958">不明或不支援的裝置 (<ph name="DEVICE_ID" />)</translation> <translation id="8372925856448695381"><ph name="LANG" />已準備就緒。</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 953067a..6dcc75d 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
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">請嘗試按照下列提示操作:確認你的裝置上有足夠空間,然後嘗試重新匯出。</translation> <translation id="7698359219371678927">在「<ph name="APP_NAME" />」中建立電子郵件</translation> <translation id="7704317875155739195">自動完成搜尋字詞與網址</translation> +<translation id="7707922173985738739">使用行動數據</translation> <translation id="7725024127233776428">加入書籤的頁面會顯示在這裡</translation> <translation id="7735637452482172701">使用螢幕鎖定功能解鎖</translation> <translation id="7746457520633464754">為了偵測危險的應用程式和網站,Chrome 會將你造訪的部分網頁網址、部分系統資訊以及部分網頁內容傳送給 Google</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb index 8c10e97..de62a39 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb
@@ -937,6 +937,7 @@ <translation id="7682724950699840886">Zama amathiphu alandelayo: qiniseka ukuthi kunesikhala esanele kudivayisi yakho, zama ukukhipha futhi.</translation> <translation id="7698359219371678927">Dala i-imeyili ku-<ph name="APP_NAME" /></translation> <translation id="7704317875155739195">Qedela ngokuzenzakalela usesho nama-URL</translation> +<translation id="7707922173985738739">Sebenzisa idatha yeselula</translation> <translation id="7725024127233776428">Amakhasi owafaka ibhukhimakhi avela lapha</translation> <translation id="7735637452482172701">Vula Ngokukhiya Isikrini</translation> <translation id="7746457520633464754">Ukuze uthole izinhlelo zokusebenza namasayithi ayingozi, i-Chrome ithumela ama-URL wamanye amakhasi owavakashelayo, ulwazi lwesistimu olukhawulelwe, kanye nokuqukethwe kwekhasi ku-Google</translation>
diff --git a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc b/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc index 1932583..2f3290a 100644 --- a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc +++ b/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc
@@ -203,61 +203,6 @@ TabModel::BroadcastSessionRestoreComplete(); } -inline static base::TimeDelta GetTimeDelta(jlong ms) { - return base::TimeDelta::FromMilliseconds(static_cast<int64_t>(ms)); -} - -void JNI_TabModelJniBridge_LogFromCloseMetric( - JNIEnv* env, - jlong ms, - jboolean perceived) { - if (perceived) { - UMA_HISTOGRAM_TIMES("Tabs.SwitchFromCloseLatency_Perceived", - GetTimeDelta(ms)); - } else { - UMA_HISTOGRAM_TIMES("Tabs.SwitchFromCloseLatency_Actual", - GetTimeDelta(ms)); - } -} - -void JNI_TabModelJniBridge_LogFromExitMetric( - JNIEnv* env, - jlong ms, - jboolean perceived) { - if (perceived) { - UMA_HISTOGRAM_TIMES("Tabs.SwitchFromExitLatency_Perceived", - GetTimeDelta(ms)); - } else { - UMA_HISTOGRAM_TIMES("Tabs.SwitchFromExitLatency_Actual", - GetTimeDelta(ms)); - } -} - -void JNI_TabModelJniBridge_LogFromNewMetric(JNIEnv* env, - jlong ms, - jboolean perceived) { - if (perceived) { - UMA_HISTOGRAM_TIMES("Tabs.SwitchFromNewLatency_Perceived", - GetTimeDelta(ms)); - } else { - UMA_HISTOGRAM_TIMES("Tabs.SwitchFromNewLatency_Actual", - GetTimeDelta(ms)); - } -} - -void JNI_TabModelJniBridge_LogFromUserMetric( - JNIEnv* env, - jlong ms, - jboolean perceived) { - if (perceived) { - UMA_HISTOGRAM_TIMES("Tabs.SwitchFromUserLatency_Perceived", - GetTimeDelta(ms)); - } else { - UMA_HISTOGRAM_TIMES("Tabs.SwitchFromUserLatency_Actual", - GetTimeDelta(ms)); - } -} - TabModelJniBridge::~TabModelJniBridge() { TabModelList::RemoveTabModel(this); }
diff --git a/chrome/browser/ui/views/accessibility/caret_browsing_dialog_delegate.cc b/chrome/browser/ui/views/accessibility/caret_browsing_dialog_delegate.cc index 770273e..22ae9f5 100644 --- a/chrome/browser/ui/views/accessibility/caret_browsing_dialog_delegate.cc +++ b/chrome/browser/ui/views/accessibility/caret_browsing_dialog_delegate.cc
@@ -81,17 +81,10 @@ base::UserMetricsAction("Accessibility.CaretBrowsing.CancelDialog")); }; SetCancelCallback(base::BindOnce(on_cancel)); + + SetModalType(ui::MODAL_TYPE_WINDOW); + set_fixed_width(views::LayoutProvider::Get()->GetDistanceMetric( + views::DISTANCE_MODAL_DIALOG_PREFERRED_WIDTH)); } -CaretBrowsingDialogDelegate::~CaretBrowsingDialogDelegate() {} - -ui::ModalType CaretBrowsingDialogDelegate::GetModalType() const { - return ui::MODAL_TYPE_WINDOW; -} - -gfx::Size CaretBrowsingDialogDelegate::CalculatePreferredSize() const { - const int width = ChromeLayoutProvider::Get()->GetDistanceMetric( - views::DISTANCE_MODAL_DIALOG_PREFERRED_WIDTH) - - margins().width(); - return gfx::Size(width, GetHeightForWidth(width)); -} +CaretBrowsingDialogDelegate::~CaretBrowsingDialogDelegate() = default;
diff --git a/chrome/browser/ui/views/accessibility/caret_browsing_dialog_delegate.h b/chrome/browser/ui/views/accessibility/caret_browsing_dialog_delegate.h index a0a07a42..7f9c8d48 100644 --- a/chrome/browser/ui/views/accessibility/caret_browsing_dialog_delegate.h +++ b/chrome/browser/ui/views/accessibility/caret_browsing_dialog_delegate.h
@@ -26,11 +26,7 @@ delete; ~CaretBrowsingDialogDelegate() override; - // DialogDelegateView. - ui::ModalType GetModalType() const override; - gfx::Size CalculatePreferredSize() const override; - - PrefService* pref_service_; + PrefService* const pref_service_; // Checkbox where the user can say they don't want to be asked when they // toggle caret browsing next time.
diff --git a/chrome/browser/ui/views/arc_app_dialog_view.cc b/chrome/browser/ui/views/arc_app_dialog_view.cc index 81e5a86..a250fd72 100644 --- a/chrome/browser/ui/views/arc_app_dialog_view.cc +++ b/chrome/browser/ui/views/arc_app_dialog_view.cc
@@ -56,14 +56,6 @@ void ConfirmOrCancelForTest(bool confirm); private: - // views::WidgetDelegate: - base::string16 GetWindowTitle() const override; - ui::ModalType GetModalType() const override; - bool ShouldShowCloseButton() const override; - - // views::View: - gfx::Size CalculatePreferredSize() const override; - // AppIconLoaderDelegate: void OnAppImageUpdated(const std::string& app_id, const gfx::ImageSkia& image) override; @@ -80,7 +72,6 @@ Profile* const profile_; const std::string app_id_; - const base::string16 window_title_; ArcAppConfirmCallback confirm_callback_; DISALLOW_COPY_AND_ASSIGN(ArcAppDialogView); @@ -100,8 +91,8 @@ ArcAppConfirmCallback confirm_callback) : profile_(profile), app_id_(app_id), - window_title_(window_title), confirm_callback_(std::move(confirm_callback)) { + SetTitle(window_title); SetButtonLabel(ui::DIALOG_BUTTON_OK, confirm_button_text); SetButtonLabel(ui::DIALOG_BUTTON_CANCEL, cancel_button_text); SetAcceptCallback(base::BindOnce(&ArcAppDialogView::OnDialogAccepted, @@ -116,6 +107,11 @@ provider->GetDialogInsetsForContentType(views::TEXT, views::TEXT), provider->GetDistanceMetric(views::DISTANCE_RELATED_CONTROL_HORIZONTAL))); + SetModalType(ui::MODAL_TYPE_WINDOW); + SetShowCloseButton(false); + set_fixed_width(views::LayoutProvider::Get()->GetDistanceMetric( + views::DISTANCE_MODAL_DIALOG_PREFERRED_WIDTH)); + auto icon_view = std::make_unique<views::ImageView>(); icon_view->SetPreferredSize(gfx::Size(kArcAppIconSize, kArcAppIconSize)); icon_view_ = AddChildView(std::move(icon_view)); @@ -170,18 +166,6 @@ } } -base::string16 ArcAppDialogView::GetWindowTitle() const { - return window_title_; -} - -ui::ModalType ArcAppDialogView::GetModalType() const { - return ui::MODAL_TYPE_WINDOW; -} - -bool ArcAppDialogView::ShouldShowCloseButton() const { - return false; -} - void ArcAppDialogView::OnDialogAccepted() { // The dialog can either be accepted or cancelled, but never both. DCHECK(confirm_callback_); @@ -194,12 +178,6 @@ std::move(confirm_callback_).Run(false); } -gfx::Size ArcAppDialogView::CalculatePreferredSize() const { - const int default_width = views::LayoutProvider::Get()->GetDistanceMetric( - views::DISTANCE_MODAL_DIALOG_PREFERRED_WIDTH); - return gfx::Size(default_width, GetHeightForWidth(default_width)); -} - void ArcAppDialogView::OnAppImageUpdated(const std::string& app_id, const gfx::ImageSkia& image) { DCHECK_EQ(app_id, app_id_);
diff --git a/chrome/browser/ui/views/arc_data_removal_dialog_view.cc b/chrome/browser/ui/views/arc_data_removal_dialog_view.cc index 68c0b6e..5a5d54c 100644 --- a/chrome/browser/ui/views/arc_data_removal_dialog_view.cc +++ b/chrome/browser/ui/views/arc_data_removal_dialog_view.cc
@@ -46,13 +46,6 @@ DataRemovalConfirmationCallback confirm_data_removal); ~DataRemovalConfirmationDialog() override; - // views::WidgetDelegate: - base::string16 GetWindowTitle() const override; - ui::ModalType GetModalType() const override; - - // views::View: - gfx::Size CalculatePreferredSize() const override; - // AppIconLoaderDelegate: void OnAppImageUpdated(const std::string& app_id, const gfx::ImageSkia& image) override; @@ -79,6 +72,7 @@ Profile* profile, DataRemovalConfirmationCallback confirm_callback) : profile_(profile), confirm_callback_(std::move(confirm_callback)) { + SetTitle(l10n_util::GetStringUTF16(IDS_ARC_DATA_REMOVAL_CONFIRMATION_TITLE)); SetButtonLabel( ui::DIALOG_BUTTON_OK, l10n_util::GetStringUTF16(IDS_ARC_DATA_REMOVAL_CONFIRMATION_OK_BUTTON)); @@ -90,6 +84,10 @@ SetCancelCallback( base::BindOnce(run_callback, base::Unretained(this), false)); + SetModalType(ui::MODAL_TYPE_WINDOW); + set_fixed_width(views::LayoutProvider::Get()->GetDistanceMetric( + views::DISTANCE_MODAL_DIALOG_PREFERRED_WIDTH)); + ChromeLayoutProvider* provider = ChromeLayoutProvider::Get(); std::unique_ptr<views::BoxLayout> layout = std::make_unique<views::BoxLayout>( @@ -130,20 +128,6 @@ g_current_data_removal_confirmation = nullptr; } -base::string16 DataRemovalConfirmationDialog::GetWindowTitle() const { - return l10n_util::GetStringUTF16(IDS_ARC_DATA_REMOVAL_CONFIRMATION_TITLE); -} - -ui::ModalType DataRemovalConfirmationDialog::GetModalType() const { - return ui::MODAL_TYPE_WINDOW; -} - -gfx::Size DataRemovalConfirmationDialog::CalculatePreferredSize() const { - const int default_width = views::LayoutProvider::Get()->GetDistanceMetric( - views::DISTANCE_MODAL_DIALOG_PREFERRED_WIDTH); - return gfx::Size(default_width, GetHeightForWidth(default_width)); -} - void DataRemovalConfirmationDialog::OnAppImageUpdated( const std::string& app_id, const gfx::ImageSkia& image) {
diff --git a/chrome/browser/ui/views/bubble_menu_item_factory.cc b/chrome/browser/ui/views/bubble_menu_item_factory.cc index a1c9b65e..1061eee 100644 --- a/chrome/browser/ui/views/bubble_menu_item_factory.cc +++ b/chrome/browser/ui/views/bubble_menu_item_factory.cc
@@ -49,24 +49,6 @@ return button; } -std::unique_ptr<views::LabelButton> CreateBubbleMenuItem( - int button_id, - const base::string16& name, - views::ButtonListener* listener) { - auto button = std::make_unique<views::LabelButton>( - listener, name, views::style::CONTEXT_BUTTON); - - ConfigureBubbleMenuItem(button.get(), button_id); - - button->SetButtonController(std::make_unique<HoverButtonController>( - button.get(), views::Button::PressedCallback(listener, button.get()), - std::make_unique<views::Button::DefaultButtonControllerDelegate>( - button.get()))); - button->SetBorder(views::CreateEmptyBorder(kDefaultBorderInsets)); - - return button; -} - std::unique_ptr<views::ImageButton> CreateBubbleMenuItem( int button_id, views::Button::PressedCallback callback) { @@ -74,11 +56,3 @@ ConfigureBubbleMenuItem(button.get(), button_id); return button; } - -std::unique_ptr<views::ImageButton> CreateBubbleMenuItem( - int button_id, - views::ButtonListener* listener) { - auto button = views::CreateVectorImageButton(listener); - ConfigureBubbleMenuItem(button.get(), button_id); - return button; -}
diff --git a/chrome/browser/ui/views/bubble_menu_item_factory.h b/chrome/browser/ui/views/bubble_menu_item_factory.h index 3b30baf..eb14c970 100644 --- a/chrome/browser/ui/views/bubble_menu_item_factory.h +++ b/chrome/browser/ui/views/bubble_menu_item_factory.h
@@ -24,17 +24,10 @@ int button_id, const base::string16& name, views::Button::PressedCallback callback); -std::unique_ptr<views::LabelButton> CreateBubbleMenuItem( - int button_id, - const base::string16& name, - views::ButtonListener* listener); // Convience method for creating a menu item used inside a bubble with an image. std::unique_ptr<views::ImageButton> CreateBubbleMenuItem( int id, views::Button::PressedCallback callback); -std::unique_ptr<views::ImageButton> CreateBubbleMenuItem( - int id, - views::ButtonListener* listener); #endif // CHROME_BROWSER_UI_VIEWS_BUBBLE_MENU_ITEM_FACTORY_H_
diff --git a/chrome/browser/ui/views/chrome_cleaner_dialog_win.cc b/chrome/browser/ui/views/chrome_cleaner_dialog_win.cc index 2568129..7de20673 100644 --- a/chrome/browser/ui/views/chrome_cleaner_dialog_win.cc +++ b/chrome/browser/ui/views/chrome_cleaner_dialog_win.cc
@@ -58,6 +58,7 @@ DCHECK(dialog_controller_); DCHECK(cleaner_controller_); + SetTitle(IDS_CHROME_CLEANUP_PROMPT_TITLE); SetButtonLabel( ui::DIALOG_BUTTON_OK, l10n_util::GetStringUTF16(IDS_CHROME_CLEANUP_PROMPT_REMOVE_BUTTON_LABEL)); @@ -77,6 +78,11 @@ base::Unretained(this), DialogInteractionResult::kClose)); + SetModalType(ui::MODAL_TYPE_WINDOW); + SetShowCloseButton(false); + set_fixed_width(views::LayoutProvider::Get()->GetDistanceMetric( + views::DISTANCE_MODAL_DIALOG_PREFERRED_WIDTH)); + ChromeLayoutProvider* layout_provider = ChromeLayoutProvider::Get(); set_margins( layout_provider->GetDialogInsetsForContentType(views::TEXT, views::TEXT)); @@ -117,7 +123,6 @@ DCHECK(browser); DCHECK(!browser_); DCHECK(dialog_controller_); - DCHECK(cleaner_controller_); DCHECK_EQ(safe_browsing::ChromeCleanerController::State::kInfected, cleaner_controller_->state()); @@ -133,17 +138,6 @@ cleaner_controller_->AddObserver(this); } -// WidgetDelegate overrides. - -ui::ModalType ChromeCleanerDialog::GetModalType() const { - return ui::MODAL_TYPE_WINDOW; -} - -base::string16 ChromeCleanerDialog::GetWindowTitle() const { - DCHECK(dialog_controller_); - return l10n_util::GetStringUTF16(IDS_CHROME_CLEANUP_PROMPT_TITLE); -} - views::View* ChromeCleanerDialog::GetInitiallyFocusedView() { // Set focus away from the Remove/OK button to prevent accidental prompt // acceptance if the user is typing as the dialog appears. @@ -151,21 +145,6 @@ return details_button_; } -bool ChromeCleanerDialog::ShouldShowCloseButton() const { - return false; -} - -// View overrides. - -gfx::Size ChromeCleanerDialog::CalculatePreferredSize() const { - const int dialog_width = ChromeLayoutProvider::Get()->GetDistanceMetric( - views::DISTANCE_MODAL_DIALOG_PREFERRED_WIDTH) - - margins().width(); - return gfx::Size(dialog_width, GetHeightForWidth(dialog_width)); -} - -// safe_browsing::ChromeCleanerController::Observer overrides - void ChromeCleanerDialog::OnIdle( safe_browsing::ChromeCleanerController::IdleReason idle_reason) { Abort();
diff --git a/chrome/browser/ui/views/chrome_cleaner_dialog_win.h b/chrome/browser/ui/views/chrome_cleaner_dialog_win.h index 85f5831e..f132d4f 100644 --- a/chrome/browser/ui/views/chrome_cleaner_dialog_win.h +++ b/chrome/browser/ui/views/chrome_cleaner_dialog_win.h
@@ -46,16 +46,10 @@ void Show(Browser* browser); - // views::WidgetDelegate overrides. - ui::ModalType GetModalType() const override; - base::string16 GetWindowTitle() const override; + // views::DialogDelegateView: views::View* GetInitiallyFocusedView() override; - bool ShouldShowCloseButton() const override; - // views::View overrides. - gfx::Size CalculatePreferredSize() const override; - - // safe_browsing::ChromeCleanerController::Observer overrides. + // safe_browsing::ChromeCleanerController::Observer: void OnIdle( safe_browsing::ChromeCleanerController::IdleReason idle_reason) override; void OnScanning() override; @@ -77,7 +71,7 @@ // The pointer will be set to nullptr once the controller has been notified of // user interaction since the controller can delete itself after that point. safe_browsing::ChromeCleanerDialogController* dialog_controller_ = nullptr; - safe_browsing::ChromeCleanerController* cleaner_controller_ = nullptr; + safe_browsing::ChromeCleanerController* const cleaner_controller_; views::LabelButton* details_button_ = nullptr; views::Checkbox* logs_permission_checkbox_ = nullptr;
diff --git a/chrome/browser/ui/views/extensions/extensions_menu_button.h b/chrome/browser/ui/views/extensions/extensions_menu_button.h index e0cd62a9..2c68b64 100644 --- a/chrome/browser/ui/views/extensions/extensions_menu_button.h +++ b/chrome/browser/ui/views/extensions/extensions_menu_button.h
@@ -44,7 +44,7 @@ } private: - // views::ButtonListener: + // views::LabelButton: const char* GetClassName() const override; // ToolbarActionViewDelegateViews:
diff --git a/chrome/browser/ui/views/folder_upload_confirmation_view.cc b/chrome/browser/ui/views/folder_upload_confirmation_view.cc index fcc2153c..ce5a4927 100644 --- a/chrome/browser/ui/views/folder_upload_confirmation_view.cc +++ b/chrome/browser/ui/views/folder_upload_confirmation_view.cc
@@ -22,6 +22,10 @@ std::vector<ui::SelectedFileInfo> selected_files) : callback_(std::move(callback)), selected_files_(std::move(selected_files)) { + SetTitle(l10n_util::GetPluralStringFUTF16( + IDS_CONFIRM_FILE_UPLOAD_TITLE, + base::saturated_cast<int>(selected_files_.size()))); + SetButtonLabel(ui::DIALOG_BUTTON_OK, l10n_util::GetStringUTF16(IDS_CONFIRM_FILE_UPLOAD_OK_BUTTON)); @@ -41,6 +45,11 @@ }, base::Unretained(this))); + SetModalType(ui::MODAL_TYPE_CHILD); + SetShowCloseButton(false); + set_fixed_width(views::LayoutProvider::Get()->GetDistanceMetric( + views::DISTANCE_MODAL_DIALOG_PREFERRED_WIDTH)); + SetLayoutManager(std::make_unique<views::FillLayout>()); auto label = std::make_unique<views::Label>( l10n_util::GetStringFUTF16(IDS_CONFIRM_FILE_UPLOAD_TEXT, @@ -71,31 +80,10 @@ web_contents); } -base::string16 FolderUploadConfirmationView::GetWindowTitle() const { - return l10n_util::GetPluralStringFUTF16( - IDS_CONFIRM_FILE_UPLOAD_TITLE, - base::saturated_cast<int>(selected_files_.size())); -} - views::View* FolderUploadConfirmationView::GetInitiallyFocusedView() { return GetCancelButton(); } -bool FolderUploadConfirmationView::ShouldShowCloseButton() const { - return false; -} - -gfx::Size FolderUploadConfirmationView::CalculatePreferredSize() const { - const int width = ChromeLayoutProvider::Get()->GetDistanceMetric( - views::DISTANCE_MODAL_DIALOG_PREFERRED_WIDTH) - - margins().width(); - return gfx::Size(width, GetHeightForWidth(width)); -} - -ui::ModalType FolderUploadConfirmationView::GetModalType() const { - return ui::MODAL_TYPE_CHILD; -} - void ShowFolderUploadConfirmationDialog( const base::FilePath& path, base::OnceCallback<void(const std::vector<ui::SelectedFileInfo>&)> callback,
diff --git a/chrome/browser/ui/views/folder_upload_confirmation_view.h b/chrome/browser/ui/views/folder_upload_confirmation_view.h index 54c2abe..8c7f6f7 100644 --- a/chrome/browser/ui/views/folder_upload_confirmation_view.h +++ b/chrome/browser/ui/views/folder_upload_confirmation_view.h
@@ -44,20 +44,11 @@ std::vector<ui::SelectedFileInfo> selected_files, content::WebContents* web_contents); - // views::DialogDelegateView: - base::string16 GetWindowTitle() const override; - // It's really important that this dialog *does not* accept by default / // when a user presses enter without looking as we're looking for explicit // approval to share this many files with the site. views::View* GetInitiallyFocusedView() override; - bool ShouldShowCloseButton() const override; - - gfx::Size CalculatePreferredSize() const override; - - ui::ModalType GetModalType() const override; - private: base::OnceCallback<void(const std::vector<ui::SelectedFileInfo>&)> callback_; std::vector<ui::SelectedFileInfo> selected_files_;
diff --git a/chrome/browser/ui/views/hover_button.cc b/chrome/browser/ui/views/hover_button.cc index 746298e..f40eac8 100644 --- a/chrome/browser/ui/views/hover_button.cc +++ b/chrome/browser/ui/views/hover_button.cc
@@ -95,10 +95,6 @@ views::ButtonController::NotifyAction::kOnRelease); } -HoverButton::HoverButton(views::ButtonListener* listener, - const base::string16& text) - : HoverButton(PressedCallback(listener, this), text) {} - HoverButton::HoverButton(PressedCallback callback, const gfx::ImageSkia& icon, const base::string16& text) @@ -106,11 +102,6 @@ SetImage(STATE_NORMAL, icon); } -HoverButton::HoverButton(views::ButtonListener* listener, - const gfx::ImageSkia& icon, - const base::string16& text) - : HoverButton(PressedCallback(listener, this), icon, text) {} - HoverButton::HoverButton(PressedCallback callback, std::unique_ptr<views::View> icon_view, const base::string16& title, @@ -202,21 +193,6 @@ SetBorder(CreateBorderWithVerticalSpacing(0)); } -HoverButton::HoverButton(views::ButtonListener* listener, - std::unique_ptr<views::View> icon_view, - const base::string16& title, - const base::string16& subtitle, - std::unique_ptr<views::View> secondary_view, - bool resize_row_for_secondary_view, - bool secondary_view_can_process_events) - : HoverButton(PressedCallback(listener, this), - std::move(icon_view), - title, - subtitle, - std::move(secondary_view), - resize_row_for_secondary_view, - secondary_view_can_process_events) {} - HoverButton::~HoverButton() = default; // static
diff --git a/chrome/browser/ui/views/hover_button.h b/chrome/browser/ui/views/hover_button.h index 03e41d6..a238ad4b 100644 --- a/chrome/browser/ui/views/hover_button.h +++ b/chrome/browser/ui/views/hover_button.h
@@ -37,15 +37,11 @@ // Creates a single line hover button with no icon. HoverButton(PressedCallback callback, const base::string16& text); - HoverButton(views::ButtonListener* listener, const base::string16& text); // Creates a single line hover button with an icon. HoverButton(PressedCallback callback, const gfx::ImageSkia& icon, const base::string16& text); - HoverButton(views::ButtonListener* listener, - const gfx::ImageSkia& icon, - const base::string16& text); // Creates a HoverButton with custom subviews. |icon_view| replaces the // LabelButton icon, and titles appear on separate rows. An empty |subtitle| @@ -61,13 +57,6 @@ std::unique_ptr<views::View> secondary_view = nullptr, bool resize_row_for_secondary_view = true, bool secondary_view_can_process_events = false); - HoverButton(views::ButtonListener* listener, - std::unique_ptr<views::View> icon_view, - const base::string16& title, - const base::string16& subtitle = base::string16(), - std::unique_ptr<views::View> secondary_view = nullptr, - bool resize_row_for_secondary_view = true, - bool secondary_view_can_process_events = false); ~HoverButton() override;
diff --git a/chrome/browser/ui/views/hover_button_unittest.cc b/chrome/browser/ui/views/hover_button_unittest.cc index cdc7d67..1ea6a7b 100644 --- a/chrome/browser/ui/views/hover_button_unittest.cc +++ b/chrome/browser/ui/views/hover_button_unittest.cc
@@ -102,8 +102,8 @@ SCOPED_TRACE(testing::Message() << "Index: " << i << ", expected_tooltip=" << (pair.tooltip ? "true" : "false")); auto button = std::make_unique<HoverButton>( - nullptr, CreateIcon(), base::ASCIIToUTF16(pair.title), - base::ASCIIToUTF16(pair.subtitle)); + views::Button::PressedCallback(), CreateIcon(), + base::ASCIIToUTF16(pair.title), base::ASCIIToUTF16(pair.subtitle)); button->SetSize(gfx::Size(kButtonWidth, 40)); ui::AXNodeData data; @@ -132,7 +132,7 @@ std::unique_ptr<views::View> secondary_icon = CreateIcon(); views::View* secondary_icon_raw = secondary_icon.get(); - HoverButton button(nullptr, std::move(primary_icon), + HoverButton button(views::Button::PressedCallback(), std::move(primary_icon), base::ASCIIToUTF16("Title"), base::ASCIIToUTF16("Subtitle"), std::move(secondary_icon)); EXPECT_TRUE(button.Contains(primary_icon_raw));
diff --git a/chrome/browser/ui/views/md_text_button_with_down_arrow.cc b/chrome/browser/ui/views/md_text_button_with_down_arrow.cc index 450ac8db..94088b0 100644 --- a/chrome/browser/ui/views/md_text_button_with_down_arrow.cc +++ b/chrome/browser/ui/views/md_text_button_with_down_arrow.cc
@@ -29,10 +29,6 @@ DISTANCE_DROPDOWN_BUTTON_RIGHT_MARGIN))); } -MdTextButtonWithDownArrow::MdTextButtonWithDownArrow(ButtonListener* listener, - const base::string16& text) - : MdTextButton(PressedCallback(listener, this), text) {} - MdTextButtonWithDownArrow::~MdTextButtonWithDownArrow() = default; void MdTextButtonWithDownArrow::OnThemeChanged() {
diff --git a/chrome/browser/ui/views/md_text_button_with_down_arrow.h b/chrome/browser/ui/views/md_text_button_with_down_arrow.h index 5779e12..59d712f4 100644 --- a/chrome/browser/ui/views/md_text_button_with_down_arrow.h +++ b/chrome/browser/ui/views/md_text_button_with_down_arrow.h
@@ -11,16 +11,12 @@ namespace views { -class ButtonListener; - // The material design themed text button with a drop arrow displayed on the // right side. class MdTextButtonWithDownArrow : public MdTextButton { public: MdTextButtonWithDownArrow(PressedCallback callback, const base::string16& text); - MdTextButtonWithDownArrow(ButtonListener* listener, - const base::string16& text); ~MdTextButtonWithDownArrow() override; protected:
diff --git a/chrome/browser/ui/views/payments/credit_card_editor_view_controller.cc b/chrome/browser/ui/views/payments/credit_card_editor_view_controller.cc index b9bd886..e2b5ec4 100644 --- a/chrome/browser/ui/views/payments/credit_card_editor_view_controller.cc +++ b/chrome/browser/ui/views/payments/credit_card_editor_view_controller.cc
@@ -160,7 +160,6 @@ base::WeakPtr<PaymentRequestState> state, base::WeakPtr<PaymentRequestDialogView> dialog, BackNavigationType back_navigation, - int next_ui_tag, base::OnceClosure on_edited, base::OnceCallback<void(const autofill::CreditCard&)> on_added, autofill::CreditCard* credit_card, @@ -168,8 +167,7 @@ : EditorViewController(spec, state, dialog, back_navigation, is_incognito), on_edited_(std::move(on_edited)), on_added_(std::move(on_added)), - credit_card_to_edit_(credit_card), - add_billing_address_button_tag_(next_ui_tag) { + credit_card_to_edit_(credit_card) { if (spec) supported_card_networks_ = spec->supported_card_networks_set(); } @@ -361,9 +359,15 @@ // The button to add new billing addresses. auto add_button = std::make_unique<views::MdTextButton>( - this, l10n_util::GetStringUTF16(IDS_ADD)); + base::BindRepeating( + &PaymentRequestDialogView::ShowShippingAddressEditor, dialog(), + BackNavigationType::kOneStep, base::RepeatingClosure(), + base::BindRepeating( + &CreditCardEditorViewController::AddAndSelectNewBillingAddress, + weak_ptr_factory_.GetWeakPtr()), + nullptr), + l10n_util::GetStringUTF16(IDS_ADD)); add_button->SetID(static_cast<int>(DialogViewID::ADD_BILLING_ADDRESS_BUTTON)); - add_button->set_tag(add_billing_address_button_tag_); add_button->SetFocusBehavior(views::View::FocusBehavior::ALWAYS); button_view->AddChildView(std::move(add_button)); return button_view; @@ -605,23 +609,6 @@ : title; } -void CreditCardEditorViewController::ButtonPressed(views::Button* sender, - const ui::Event& event) { - if (sender->tag() == add_billing_address_button_tag_) { - dialog()->ShowShippingAddressEditor( - BackNavigationType::kOneStep, - /*on_edited=*/ - base::OnceClosure(), - /*on_added=*/ - base::BindOnce( - &CreditCardEditorViewController::AddAndSelectNewBillingAddress, - weak_ptr_factory_.GetWeakPtr()), - /*profile=*/nullptr); - } else { - EditorViewController::ButtonPressed(sender, event); - } -} - void CreditCardEditorViewController::AddAndSelectNewBillingAddress( const autofill::AutofillProfile& profile) { state()->AddAutofillShippingProfile(false, profile);
diff --git a/chrome/browser/ui/views/payments/credit_card_editor_view_controller.h b/chrome/browser/ui/views/payments/credit_card_editor_view_controller.h index 9d3efe1..b395455 100644 --- a/chrome/browser/ui/views/payments/credit_card_editor_view_controller.h +++ b/chrome/browser/ui/views/payments/credit_card_editor_view_controller.h
@@ -41,7 +41,6 @@ base::WeakPtr<PaymentRequestState> state, base::WeakPtr<PaymentRequestDialogView> dialog, BackNavigationType back_navigation, - int next_ui_tag, base::OnceClosure on_edited, base::OnceCallback<void(const autofill::CreditCard&)> on_added, autofill::CreditCard* credit_card, @@ -79,7 +78,6 @@ // PaymentRequestSheetController: void FillContentView(views::View* content_view) override; base::string16 GetSheetTitle() override; - void ButtonPressed(views::Button* sender, const ui::Event& event) override; private: class CreditCardValidationDelegate : public ValidationDelegate { @@ -140,9 +138,6 @@ // network. std::map<std::string, views::View*> card_icons_; - // The value to use for the add billing address button tag. - int add_billing_address_button_tag_; - // The list of supported basic card networks. std::set<std::string> supported_card_networks_;
diff --git a/chrome/browser/ui/views/payments/cvc_unmask_view_controller.cc b/chrome/browser/ui/views/payments/cvc_unmask_view_controller.cc index 572ed215..0ea3044b 100644 --- a/chrome/browser/ui/views/payments/cvc_unmask_view_controller.cc +++ b/chrome/browser/ui/views/payments/cvc_unmask_view_controller.cc
@@ -42,10 +42,6 @@ namespace payments { -enum class Tags { - CONFIRM_TAG = static_cast<int>(PaymentRequestCommonTags::PAY_BUTTON_TAG), -}; - CvcUnmaskViewController::CvcUnmaskViewController( base::WeakPtr<PaymentRequestSpec> spec, base::WeakPtr<PaymentRequestState> state, @@ -262,8 +258,10 @@ return l10n_util::GetStringUTF16(IDS_CONFIRM); } -int CvcUnmaskViewController::GetPrimaryButtonTag() { - return static_cast<int>(Tags::CONFIRM_TAG); +views::Button::PressedCallback +CvcUnmaskViewController::GetPrimaryButtonCallback() { + return base::BindRepeating(&CvcUnmaskViewController::CvcConfirmed, + base::Unretained(this)); } int CvcUnmaskViewController::GetPrimaryButtonId() { @@ -279,24 +277,6 @@ return false; } -void CvcUnmaskViewController::ButtonPressed(views::Button* sender, - const ui::Event& event) { - if (!dialog()->IsInteractive()) - return; - - switch (sender->tag()) { - case static_cast<int>(Tags::CONFIRM_TAG): - CvcConfirmed(); - break; - case static_cast<int>(PaymentRequestCommonTags::BACK_BUTTON_TAG): - unmask_delegate_->OnUnmaskPromptClosed(); - dialog()->GoBack(); - break; - default: - PaymentRequestSheetController::ButtonPressed(sender, event); - } -} - void CvcUnmaskViewController::CvcConfirmed() { const base::string16& cvc = cvc_field_->GetText(); if (unmask_delegate_) { @@ -385,6 +365,13 @@ return cvc_field_; } +void CvcUnmaskViewController::BackButtonPressed() { + if (dialog()->IsInteractive()) { + unmask_delegate_->OnUnmaskPromptClosed(); + dialog()->GoBack(); + } +} + void CvcUnmaskViewController::ContentsChanged( views::Textfield* sender, const base::string16& new_contents) {
diff --git a/chrome/browser/ui/views/payments/cvc_unmask_view_controller.h b/chrome/browser/ui/views/payments/cvc_unmask_view_controller.h index ea0c977..3c860e3 100644 --- a/chrome/browser/ui/views/payments/cvc_unmask_view_controller.h +++ b/chrome/browser/ui/views/payments/cvc_unmask_view_controller.h
@@ -68,11 +68,10 @@ base::string16 GetSheetTitle() override; void FillContentView(views::View* content_view) override; base::string16 GetPrimaryButtonLabel() override; - int GetPrimaryButtonTag() override; + views::Button::PressedCallback GetPrimaryButtonCallback() override; int GetPrimaryButtonId() override; bool GetPrimaryButtonEnabled() override; bool ShouldShowSecondaryButton() override; - void ButtonPressed(views::Button* sender, const ui::Event& event) override; private: // Called when the user confirms their CVC. This will pass the value to the @@ -88,6 +87,9 @@ bool GetSheetId(DialogViewID* sheet_id) override; views::View* GetFirstFocusedView() override; + // PaymentRequestSheetController: + void BackButtonPressed() override; + // views::TextfieldController: void ContentsChanged(views::Textfield* sender, const base::string16& new_contents) override;
diff --git a/chrome/browser/ui/views/payments/editor_view_controller.cc b/chrome/browser/ui/views/payments/editor_view_controller.cc index bcce73d..d6151509 100644 --- a/chrome/browser/ui/views/payments/editor_view_controller.cc +++ b/chrome/browser/ui/views/payments/editor_view_controller.cc
@@ -36,14 +36,6 @@ namespace payments { namespace { -enum class EditorViewControllerTags : int { - // The tag for the button that saves the model being edited. Starts - // at PAYMENT_REQUEST_COMMON_TAG_MAX not to conflict with tags - // common to all views. - SAVE_BUTTON = static_cast<int>( - PaymentRequestCommonTags::PAYMENT_REQUEST_COMMON_TAG_MAX), -}; - std::unique_ptr<views::View> CreateErrorLabelView( const base::string16& error, autofill::ServerFieldType type) { @@ -132,8 +124,10 @@ return l10n_util::GetStringUTF16(IDS_DONE); } -int EditorViewController::GetPrimaryButtonTag() { - return static_cast<int>(EditorViewControllerTags::SAVE_BUTTON); +views::Button::PressedCallback +EditorViewController::GetPrimaryButtonCallback() { + return base::BindRepeating(&EditorViewController::SaveButtonPressed, + base::Unretained(this)); } int EditorViewController::GetPrimaryButtonId() { @@ -173,27 +167,6 @@ dialog()->EditorViewUpdated(); } -void EditorViewController::ButtonPressed(views::Button* sender, - const ui::Event& event) { - switch (sender->tag()) { - case static_cast<int>(EditorViewControllerTags::SAVE_BUTTON): - if (ValidateModelAndSave()) { - switch (back_navigation_type_) { - case BackNavigationType::kOneStep: - dialog()->GoBack(); - break; - case BackNavigationType::kPaymentSheet: - dialog()->GoBackToPaymentSheet(); - break; - } - } - break; - default: - PaymentRequestSheetController::ButtonPressed(sender, event); - break; - } -} - views::View* EditorViewController::GetFirstFocusedView() { if (initial_focus_field_view_) return initial_focus_field_view_; @@ -523,4 +496,15 @@ } } +void EditorViewController::SaveButtonPressed() { + if (!ValidateModelAndSave()) + return; + if (back_navigation_type_ == BackNavigationType::kOneStep) { + dialog()->GoBack(); + } else { + DCHECK_EQ(BackNavigationType::kPaymentSheet, back_navigation_type_); + dialog()->GoBackToPaymentSheet(); + } +} + } // namespace payments
diff --git a/chrome/browser/ui/views/payments/editor_view_controller.h b/chrome/browser/ui/views/payments/editor_view_controller.h index 90e89b9a..42d6c2a7 100644 --- a/chrome/browser/ui/views/payments/editor_view_controller.h +++ b/chrome/browser/ui/views/payments/editor_view_controller.h
@@ -147,7 +147,7 @@ // PaymentRequestSheetController: base::string16 GetPrimaryButtonLabel() override; - int GetPrimaryButtonTag() override; + views::Button::PressedCallback GetPrimaryButtonCallback() override; int GetPrimaryButtonId() override; bool GetPrimaryButtonEnabled() override; bool ShouldShowSecondaryButton() override; @@ -163,7 +163,6 @@ virtual void UpdateEditorView(); // PaymentRequestSheetController: - void ButtonPressed(views::Button* sender, const ui::Event& event) override; views::View* GetFirstFocusedView() override; // Will create a combobox according to the |field| definition. Will also keep @@ -202,6 +201,8 @@ void AddOrUpdateErrorMessageForField(autofill::ServerFieldType type, const base::string16& error_message); + void SaveButtonPressed(); + // Used to remember the association between the input field UI element and the // original field definition. The ValidatingTextfield* and ValidatingCombobox* // are owned by their parent view, this only keeps a reference that is good as
diff --git a/chrome/browser/ui/views/payments/error_message_view_controller.cc b/chrome/browser/ui/views/payments/error_message_view_controller.cc index e44d9a342..43b85d1 100644 --- a/chrome/browser/ui/views/payments/error_message_view_controller.cc +++ b/chrome/browser/ui/views/payments/error_message_view_controller.cc
@@ -29,8 +29,10 @@ return l10n_util::GetStringUTF16(IDS_CLOSE); } -int ErrorMessageViewController::GetPrimaryButtonTag() { - return static_cast<int>(PaymentRequestCommonTags::CLOSE_BUTTON_TAG); +views::Button::PressedCallback +ErrorMessageViewController::GetPrimaryButtonCallback() { + return base::BindRepeating(&ErrorMessageViewController::CloseButtonPressed, + base::Unretained(this)); } int ErrorMessageViewController::GetPrimaryButtonId() {
diff --git a/chrome/browser/ui/views/payments/error_message_view_controller.h b/chrome/browser/ui/views/payments/error_message_view_controller.h index 33b29d4..87278a7 100644 --- a/chrome/browser/ui/views/payments/error_message_view_controller.h +++ b/chrome/browser/ui/views/payments/error_message_view_controller.h
@@ -33,7 +33,7 @@ private: // PaymentRequestSheetController: base::string16 GetPrimaryButtonLabel() override; - int GetPrimaryButtonTag() override; + views::Button::PressedCallback GetPrimaryButtonCallback() override; int GetPrimaryButtonId() override; bool GetPrimaryButtonEnabled() override; bool ShouldShowHeaderBackArrow() override;
diff --git a/chrome/browser/ui/views/payments/payment_method_view_controller.cc b/chrome/browser/ui/views/payments/payment_method_view_controller.cc index b53fda3..a018c6f7 100644 --- a/chrome/browser/ui/views/payments/payment_method_view_controller.cc +++ b/chrome/browser/ui/views/payments/payment_method_view_controller.cc
@@ -39,16 +39,6 @@ namespace { -enum class PaymentMethodViewControllerTags : int { - // The tag for the button that triggers the "add card" flow. Starts at - // |PAYMENT_REQUEST_COMMON_TAG_MAX| not to conflict with tags common to all - // views. - ADD_CREDIT_CARD_BUTTON = static_cast<int>( - PaymentRequestCommonTags::PAYMENT_REQUEST_COMMON_TAG_MAX), - // This value is passed to inner views so they can use it as a starting tag. - MAX_TAG, -}; - class PaymentMethodListItem : public PaymentRequestItemList::Item { public: // Does not take ownership of |app|, which should not be null and should @@ -80,7 +70,6 @@ // Since we are a list item, we only care about the on_edited callback. dialog_->ShowCreditCardEditor( BackNavigationType::kPaymentSheet, - static_cast<int>(PaymentMethodViewControllerTags::MAX_TAG), /*on_edited=*/ base::BindOnce(&PaymentRequestState::SetSelectedApp, state(), app_), /*on_added=*/ @@ -215,22 +204,6 @@ content_view->AddChildView(list_view.release()); } -void PaymentMethodViewController::ButtonPressed(views::Button* sender, - const ui::Event& event) { - if (sender->tag() == GetSecondaryButtonTag()) { - // Only provide the |on_added| callback, in response to this button. - dialog()->ShowCreditCardEditor( - BackNavigationType::kPaymentSheet, - static_cast<int>(PaymentMethodViewControllerTags::MAX_TAG), - base::OnceClosure(), - base::BindOnce(&PaymentRequestState::AddAutofillPaymentApp, state(), - true), - nullptr); - } else { - PaymentRequestSheetController::ButtonPressed(sender, event); - } -} - bool PaymentMethodViewController::ShouldShowPrimaryButton() { return false; } @@ -243,9 +216,14 @@ return l10n_util::GetStringUTF16(IDS_PAYMENTS_ADD_CARD); } -int PaymentMethodViewController::GetSecondaryButtonTag() { - return static_cast<int>( - PaymentMethodViewControllerTags::ADD_CREDIT_CARD_BUTTON); +views::Button::PressedCallback +PaymentMethodViewController::GetSecondaryButtonCallback() { + return base::BindRepeating( + &PaymentRequestDialogView::ShowCreditCardEditor, dialog(), + BackNavigationType::kPaymentSheet, base::RepeatingClosure(), + base::BindRepeating(&PaymentRequestState::AddAutofillPaymentApp, state(), + true), + nullptr); } int PaymentMethodViewController::GetSecondaryButtonId() {
diff --git a/chrome/browser/ui/views/payments/payment_method_view_controller.h b/chrome/browser/ui/views/payments/payment_method_view_controller.h index 4450c4d3..1fcb172 100644 --- a/chrome/browser/ui/views/payments/payment_method_view_controller.h +++ b/chrome/browser/ui/views/payments/payment_method_view_controller.h
@@ -29,11 +29,10 @@ // PaymentRequestSheetController: base::string16 GetSheetTitle() override; void FillContentView(views::View* content_view) override; - void ButtonPressed(views::Button* sender, const ui::Event& event) override; bool ShouldShowPrimaryButton() override; bool ShouldShowSecondaryButton() override; base::string16 GetSecondaryButtonLabel() override; - int GetSecondaryButtonTag() override; + views::Button::PressedCallback GetSecondaryButtonCallback() override; int GetSecondaryButtonId() override; PaymentRequestItemList payment_method_list_;
diff --git a/chrome/browser/ui/views/payments/payment_request_dialog_view.cc b/chrome/browser/ui/views/payments/payment_request_dialog_view.cc index 22eea8ce..4fd84739 100644 --- a/chrome/browser/ui/views/payments/payment_request_dialog_view.cc +++ b/chrome/browser/ui/views/payments/payment_request_dialog_view.cc
@@ -386,7 +386,6 @@ void PaymentRequestDialogView::ShowCreditCardEditor( BackNavigationType back_navigation_type, - int next_ui_tag, base::OnceClosure on_edited, base::OnceCallback<void(const autofill::CreditCard&)> on_added, autofill::CreditCard* credit_card) { @@ -397,7 +396,7 @@ CreateViewAndInstallController( std::make_unique<CreditCardEditorViewController>( request_->spec(), request_->state(), - weak_ptr_factory_.GetWeakPtr(), back_navigation_type, next_ui_tag, + weak_ptr_factory_.GetWeakPtr(), back_navigation_type, std::move(on_edited), std::move(on_added), credit_card, request_->IsOffTheRecord()), &controller_map_),
diff --git a/chrome/browser/ui/views/payments/payment_request_dialog_view.h b/chrome/browser/ui/views/payments/payment_request_dialog_view.h index f819916..90f68e8 100644 --- a/chrome/browser/ui/views/payments/payment_request_dialog_view.h +++ b/chrome/browser/ui/views/payments/payment_request_dialog_view.h
@@ -138,11 +138,9 @@ // |on_added| is called when a new credit card was added (the reference is // short-lived; callee should make a copy of the CreditCard object). // |back_navigation_type| identifies the type of navigation to execute once - // the editor has completed successfully. |next_ui_tag| is the lowest value - // that the credit card editor can use to assign to custom controls. + // the editor has completed successfully. void ShowCreditCardEditor( BackNavigationType back_navigation_type, - int next_ui_tag, base::OnceClosure on_edited, base::OnceCallback<void(const autofill::CreditCard&)> on_added, autofill::CreditCard* credit_card = nullptr);
diff --git a/chrome/browser/ui/views/payments/payment_request_item_list.cc b/chrome/browser/ui/views/payments/payment_request_item_list.cc index b272eb13..b9bac233 100644 --- a/chrome/browser/ui/views/payments/payment_request_item_list.cc +++ b/chrome/browser/ui/views/payments/payment_request_item_list.cc
@@ -51,7 +51,10 @@ bool selected, bool clickable, bool show_edit_button) - : PaymentRequestRowView(this, clickable, kRowInsets), + : PaymentRequestRowView( + base::BindRepeating(&Item::ButtonPressed, base::Unretained(this)), + clickable, + kRowInsets), spec_(spec), state_(state), list_(list), @@ -105,7 +108,8 @@ layout->AddView(std::move(extra_view)); if (show_edit_button_) { - auto edit_button = views::CreateVectorImageButton(this); + auto edit_button = views::CreateVectorImageButton( + base::BindRepeating(&Item::EditButtonPressed, base::Unretained(this))); const SkColor icon_color = color_utils::DeriveDefaultIconColor(SK_ColorBLACK); edit_button->SetImage(views::Button::STATE_NORMAL, @@ -154,21 +158,6 @@ return nullptr; } -void PaymentRequestItemList::Item::ButtonPressed(views::Button* sender, - const ui::Event& event) { - if (sender->GetID() == static_cast<int>(DialogViewID::EDIT_ITEM_BUTTON)) { - EditButtonPressed(); - } else if (selected_) { - // |dialog()| may be null in tests - if (list_->dialog()) - list_->dialog()->GoBack(); - } else if (CanBeSelected()) { - list()->SelectItem(this); - } else { - PerformSelectionFallback(); - } -} - void PaymentRequestItemList::Item::UpdateAccessibleName() { base::string16 accessible_content = selected_ ? l10n_util::GetStringFUTF16( @@ -180,6 +169,18 @@ SetAccessibleName(accessible_content); } +void PaymentRequestItemList::Item::ButtonPressed() { + if (selected_) { + // |dialog()| may be null in tests + if (list_->dialog()) + list_->dialog()->GoBack(); + } else if (CanBeSelected()) { + list()->SelectItem(this); + } else { + PerformSelectionFallback(); + } +} + PaymentRequestItemList::PaymentRequestItemList( base::WeakPtr<PaymentRequestDialogView> dialog) : selected_item_(nullptr), dialog_(dialog) {}
diff --git a/chrome/browser/ui/views/payments/payment_request_item_list.h b/chrome/browser/ui/views/payments/payment_request_item_list.h index c9afb6c4..b33806b2 100644 --- a/chrome/browser/ui/views/payments/payment_request_item_list.h +++ b/chrome/browser/ui/views/payments/payment_request_item_list.h
@@ -10,7 +10,6 @@ #include "base/macros.h" #include "chrome/browser/ui/views/payments/payment_request_row_view.h" -#include "ui/views/controls/button/button.h" namespace views { class ImageView; @@ -31,7 +30,7 @@ class PaymentRequestItemList { public: // Represents an item in the item list. - class Item : public views::ButtonListener, public PaymentRequestRowView { + class Item : public PaymentRequestRowView { public: // Creates an item that will be owned by `list` with the initial state set // to `selected`. `clickable` indicates whether or not the user can interact @@ -103,13 +102,12 @@ virtual void EditButtonPressed() = 0; private: - // views::ButtonListener: - void ButtonPressed(views::Button* sender, const ui::Event& event) override; - // Updates the accessible description of this item to reflect its current // status (selected/not). void UpdateAccessibleName(); + void ButtonPressed(); + base::WeakPtr<PaymentRequestSpec> spec_; base::WeakPtr<PaymentRequestState> state_; PaymentRequestItemList* list_;
diff --git a/chrome/browser/ui/views/payments/payment_request_row_view.cc b/chrome/browser/ui/views/payments/payment_request_row_view.cc index 9b9ab70..f1a5533 100644 --- a/chrome/browser/ui/views/payments/payment_request_row_view.cc +++ b/chrome/browser/ui/views/payments/payment_request_row_view.cc
@@ -16,10 +16,10 @@ // static constexpr char PaymentRequestRowView::kClassName[]; -PaymentRequestRowView::PaymentRequestRowView(views::ButtonListener* listener, +PaymentRequestRowView::PaymentRequestRowView(PressedCallback callback, bool clickable, const gfx::Insets& insets) - : views::Button(listener), + : views::Button(std::move(callback)), clickable_(clickable), insets_(insets), previous_row_(nullptr) {
diff --git a/chrome/browser/ui/views/payments/payment_request_row_view.h b/chrome/browser/ui/views/payments/payment_request_row_view.h index b093ac77..b586d37ea 100644 --- a/chrome/browser/ui/views/payments/payment_request_row_view.h +++ b/chrome/browser/ui/views/payments/payment_request_row_view.h
@@ -21,7 +21,7 @@ // Creates a row view. If |clickable| is true, the row will be shaded on hover // and handle click events. |insets| are used as padding around the content. - PaymentRequestRowView(views::ButtonListener* listener, + PaymentRequestRowView(PressedCallback callback, bool clickable, const gfx::Insets& insets); ~PaymentRequestRowView() override;
diff --git a/chrome/browser/ui/views/payments/payment_request_sheet_controller.cc b/chrome/browser/ui/views/payments/payment_request_sheet_controller.cc index 1dbf5c126..3a35146f 100644 --- a/chrome/browser/ui/views/payments/payment_request_sheet_controller.cc +++ b/chrome/browser/ui/views/payments/payment_request_sheet_controller.cc
@@ -28,8 +28,8 @@ namespace { -// This event is used to pass to ButtonPressed when its event parameter doesn't -// matter, only the sender. +// This event is used to run the Button callback when its event parameter +// doesn't matter, only the sender. class DummyEvent : public ui::Event { public: DummyEvent() : ui::Event(ui::ET_UNKNOWN, base::TimeTicks(), 0) {} @@ -236,9 +236,11 @@ layout->StartRow(views::GridLayout::kFixedSize, 0); header_view_ = layout->AddView(std::make_unique<views::View>()); - PopulateSheetHeaderView(ShouldShowHeaderBackArrow(), - CreateHeaderContentView(header_view_), this, - header_view_, GetHeaderBackground(header_view_)); + PopulateSheetHeaderView( + ShouldShowHeaderBackArrow(), CreateHeaderContentView(header_view_), + base::BindRepeating(&PaymentRequestSheetController::BackButtonPressed, + base::Unretained(this)), + header_view_, GetHeaderBackground(header_view_)); layout->StartRow(views::GridLayout::kFixedSize, 0); header_content_separator_container_ = @@ -292,9 +294,11 @@ void PaymentRequestSheetController::UpdateHeaderView() { header_view_->RemoveAllChildViews(true); - PopulateSheetHeaderView(ShouldShowHeaderBackArrow(), - CreateHeaderContentView(header_view_), this, - header_view_, GetHeaderBackground(header_view_)); + PopulateSheetHeaderView( + ShouldShowHeaderBackArrow(), CreateHeaderContentView(header_view_), + base::BindRepeating(&PaymentRequestSheetController::BackButtonPressed, + base::Unretained(this)), + header_view_, GetHeaderBackground(header_view_)); header_view_->Layout(); header_view_->SchedulePaint(); } @@ -333,8 +337,14 @@ continue_button ? IDS_PAYMENTS_CONTINUE_BUTTON : IDS_PAYMENTS_PAY_BUTTON); } -int PaymentRequestSheetController::GetPrimaryButtonTag() { - return static_cast<int>(PaymentRequestCommonTags::PAY_BUTTON_TAG); +views::Button::PressedCallback +PaymentRequestSheetController::GetPrimaryButtonCallback() { + return base::BindRepeating( + [](const base::WeakPtr<PaymentRequestDialogView>& dialog) { + if (dialog->IsInteractive()) + dialog->Pay(); + }, + dialog()); } int PaymentRequestSheetController::GetPrimaryButtonId() { @@ -353,8 +363,10 @@ return l10n_util::GetStringUTF16(IDS_PAYMENTS_CANCEL_PAYMENT); } -int PaymentRequestSheetController::GetSecondaryButtonTag() { - return static_cast<int>(PaymentRequestCommonTags::CLOSE_BUTTON_TAG); +views::Button::PressedCallback +PaymentRequestSheetController::GetSecondaryButtonCallback() { + return base::BindRepeating(&PaymentRequestSheetController::CloseButtonPressed, + base::Unretained(this)); } int PaymentRequestSheetController::GetSecondaryButtonId() { @@ -387,27 +399,6 @@ header_view, ui::NativeTheme::kColorId_DialogBackground); } -void PaymentRequestSheetController::ButtonPressed(views::Button* sender, - const ui::Event& event) { - if (!dialog()->IsInteractive()) - return; - - switch (static_cast<PaymentRequestCommonTags>(sender->tag())) { - case PaymentRequestCommonTags::CLOSE_BUTTON_TAG: - dialog()->CloseDialog(); - break; - case PaymentRequestCommonTags::BACK_BUTTON_TAG: - dialog()->GoBack(); - break; - case PaymentRequestCommonTags::PAY_BUTTON_TAG: - dialog()->Pay(); - break; - case PaymentRequestCommonTags::PAYMENT_REQUEST_COMMON_TAG_MAX: - NOTREACHED(); - break; - } -} - std::unique_ptr<views::View> PaymentRequestSheetController::CreateFooterView() { auto container = std::make_unique<views::View>(); @@ -478,11 +469,16 @@ return true; } +void PaymentRequestSheetController::CloseButtonPressed() { + if (dialog()->IsInteractive()) + dialog()->CloseDialog(); +} + void PaymentRequestSheetController::AddPrimaryButton(views::View* container) { if (ShouldShowPrimaryButton()) { - primary_button_ = container->AddChildView( - std::make_unique<views::MdTextButton>(this, GetPrimaryButtonLabel())); - primary_button_->set_tag(GetPrimaryButtonTag()); + primary_button_ = + container->AddChildView(std::make_unique<views::MdTextButton>( + GetPrimaryButtonCallback(), GetPrimaryButtonLabel())); primary_button_->SetID(GetPrimaryButtonId()); primary_button_->SetEnabled(GetPrimaryButtonEnabled()); primary_button_->SetFocusBehavior(views::View::FocusBehavior::ALWAYS); @@ -492,9 +488,9 @@ void PaymentRequestSheetController::AddSecondaryButton(views::View* container) { if (ShouldShowSecondaryButton()) { - secondary_button_ = container->AddChildView( - std::make_unique<views::MdTextButton>(this, GetSecondaryButtonLabel())); - secondary_button_->set_tag(GetSecondaryButtonTag()); + secondary_button_ = + container->AddChildView(std::make_unique<views::MdTextButton>( + GetSecondaryButtonCallback(), GetSecondaryButtonLabel())); secondary_button_->SetID(GetSecondaryButtonId()); secondary_button_->SetFocusBehavior(views::View::FocusBehavior::ALWAYS); } @@ -506,8 +502,16 @@ *is_enabled = true; if (dialog()->IsInteractive() && primary_button_ && - primary_button_->GetEnabled()) - ButtonPressed(primary_button_, DummyEvent()); + primary_button_->GetEnabled()) { + views::Button::PressedCallback callback = GetPrimaryButtonCallback(); + if (callback) + callback.Run(DummyEvent()); + } +} + +void PaymentRequestSheetController::BackButtonPressed() { + if (dialog()->IsInteractive()) + dialog()->GoBack(); } } // namespace payments
diff --git a/chrome/browser/ui/views/payments/payment_request_sheet_controller.h b/chrome/browser/ui/views/payments/payment_request_sheet_controller.h index 6dd89eaa..50f37bf 100644 --- a/chrome/browser/ui/views/payments/payment_request_sheet_controller.h +++ b/chrome/browser/ui/views/payments/payment_request_sheet_controller.h
@@ -25,7 +25,7 @@ // The base class for objects responsible for the creation and event handling in // views shown in the PaymentRequestDialog. -class PaymentRequestSheetController : public views::ButtonListener { +class PaymentRequestSheetController { public: // Objects of this class are owned by |dialog|, so it's a non-owned pointer // that should be valid throughout this object's lifetime. @@ -34,7 +34,7 @@ PaymentRequestSheetController(base::WeakPtr<PaymentRequestSpec> spec, base::WeakPtr<PaymentRequestState> state, base::WeakPtr<PaymentRequestDialogView> dialog); - ~PaymentRequestSheetController() override; + virtual ~PaymentRequestSheetController(); // Creates a view to be displayed in the PaymentRequestDialog. The header view // is the view displayed on top of the dialog, containing title, (optional) @@ -86,7 +86,7 @@ // button. By default the dialog shows a "pay" button. virtual bool ShouldShowPrimaryButton(); virtual base::string16 GetPrimaryButtonLabel(); - virtual int GetPrimaryButtonTag(); + virtual views::Button::PressedCallback GetPrimaryButtonCallback(); virtual int GetPrimaryButtonId(); virtual bool GetPrimaryButtonEnabled(); @@ -94,7 +94,7 @@ // button. By default the dialog shows a "cancel payment" button. virtual bool ShouldShowSecondaryButton(); virtual base::string16 GetSecondaryButtonLabel(); - virtual int GetSecondaryButtonTag(); + virtual views::Button::PressedCallback GetSecondaryButtonCallback(); virtual int GetSecondaryButtonId(); // Returns whether this sheet should display a back arrow in the header next @@ -130,9 +130,6 @@ virtual std::unique_ptr<views::Background> GetHeaderBackground( views::View* header_view); - // views::ButtonListener: - void ButtonPressed(views::Button* sender, const ui::Event& event) override; - // Creates the row of button containing the Pay, cancel, and extra buttons. // |controller| is installed as the listener for button events. std::unique_ptr<views::View> CreateFooterView(); @@ -152,6 +149,8 @@ // Returns true to display dynamic top and bottom border for hidden contents. virtual bool DisplayDynamicBorderForHiddenContents(); + void CloseButtonPressed(); + views::MdTextButton* primary_button() { return primary_button_; } views::View* header_content_separator_container() { @@ -173,6 +172,8 @@ // values. void PerformPrimaryButtonAction(bool* is_enabled); + virtual void BackButtonPressed(); + base::WeakPtr<PaymentRequestSpec> const spec_; base::WeakPtr<PaymentRequestState> const state_; base::WeakPtr<PaymentRequestDialogView> const dialog_;
diff --git a/chrome/browser/ui/views/payments/payment_request_views_util.cc b/chrome/browser/ui/views/payments/payment_request_views_util.cc index 470e8e6..1f9874e 100644 --- a/chrome/browser/ui/views/payments/payment_request_views_util.cc +++ b/chrome/browser/ui/views/payments/payment_request_views_util.cc
@@ -41,7 +41,6 @@ #include "ui/views/background.h" #include "ui/views/border.h" #include "ui/views/bubble/bubble_frame_view.h" -#include "ui/views/controls/button/button.h" #include "ui/views/controls/button/image_button.h" #include "ui/views/controls/button/image_button_factory.h" #include "ui/views/controls/image_view.h" @@ -179,7 +178,7 @@ void PopulateSheetHeaderView(bool show_back_arrow, std::unique_ptr<views::View> header_content_view, - views::ButtonListener* listener, + views::Button::PressedCallback back_arrow_callback, views::View* container, std::unique_ptr<views::Background> background) { SkColor background_color = background->get_color(); @@ -212,15 +211,14 @@ if (!show_back_arrow) { layout->SkipColumns(1); } else { - auto back_arrow = views::CreateVectorImageButton(listener); + auto back_arrow = + views::CreateVectorImageButton(std::move(back_arrow_callback)); views::SetImageFromVectorIcon( back_arrow.get(), vector_icons::kBackArrowIcon, color_utils::GetColorWithMaxContrast(background_color)); constexpr int kBackArrowSize = 16; back_arrow->SetSize(gfx::Size(kBackArrowSize, kBackArrowSize)); back_arrow->SetFocusBehavior(views::View::FocusBehavior::ALWAYS); - back_arrow->set_tag( - static_cast<int>(PaymentRequestCommonTags::BACK_BUTTON_TAG)); back_arrow->SetID(static_cast<int>(DialogViewID::BACK_BUTTON)); back_arrow->SetAccessibleName(l10n_util::GetStringUTF16(IDS_PAYMENTS_BACK)); layout->AddView(std::move(back_arrow));
diff --git a/chrome/browser/ui/views/payments/payment_request_views_util.h b/chrome/browser/ui/views/payments/payment_request_views_util.h index 2812999..d6f567b 100644 --- a/chrome/browser/ui/views/payments/payment_request_views_util.h +++ b/chrome/browser/ui/views/payments/payment_request_views_util.h
@@ -14,6 +14,7 @@ #include "ui/gfx/geometry/insets.h" #include "ui/gfx/image/image_skia.h" #include "ui/gfx/text_constants.h" +#include "ui/views/controls/button/button.h" namespace autofill { class AutofillProfile; @@ -22,7 +23,6 @@ namespace views { class Background; class Border; -class ButtonListener; class ImageView; class Label; class View; @@ -53,27 +53,17 @@ // sheet, in pixels. constexpr int kAmountSectionWidth = 96; -enum class PaymentRequestCommonTags { - BACK_BUTTON_TAG = 0, - CLOSE_BUTTON_TAG, - PAY_BUTTON_TAG, - // This is the max value of tags for controls common to multiple - // PaymentRequest contexts. Individual screens that handle both common and - // specific events with tags can start their specific tags at this value. - PAYMENT_REQUEST_COMMON_TAG_MAX -}; - // Creates and returns a header for all the sheets in the PaymentRequest dialog. // The header contains an optional back arrow button (if |show_back_arrow| is -// true), a |title| label. |delegate| becomes the delegate for the back and -// close buttons. |background| is applied to |container| and its color is used -// to decide which color to use to paint the arrow. +// true) and a |header_content_view|. |back_arrow_callback| is called when +// pressing the back button. |background| is applied to |container| and its +// color is used to decide which color to use to paint the arrow. // +---------------------------+ // | <- | header_content_view | // +---------------------------+ void PopulateSheetHeaderView(bool show_back_arrow, std::unique_ptr<views::View> header_content_view, - views::ButtonListener* delegate, + views::Button::PressedCallback back_arrow_callback, views::View* container, std::unique_ptr<views::Background> background);
diff --git a/chrome/browser/ui/views/payments/payment_sheet_view_controller.cc b/chrome/browser/ui/views/payments/payment_sheet_view_controller.cc index 4164eb5..e3b93dc5 100644 --- a/chrome/browser/ui/views/payments/payment_sheet_view_controller.cc +++ b/chrome/browser/ui/views/payments/payment_sheet_view_controller.cc
@@ -1,4 +1,4 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. +// Copyright 2016 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -63,25 +63,6 @@ namespace payments { namespace { -// Tags for the buttons in the payment sheet. Starts at -// |PAYMENT_REQUEST_COMMON_TAG_MAX| not to conflict with tags common -// to all views. -enum class PaymentSheetViewControllerTags { - SHOW_ORDER_SUMMARY_BUTTON = static_cast<int>( - PaymentRequestCommonTags::PAYMENT_REQUEST_COMMON_TAG_MAX), // Navigate to - // order - // summary - SHOW_SHIPPING_BUTTON, // Navigate to the shipping address screen - ADD_SHIPPING_BUTTON, // Navigate to the shipping address editor - SHOW_PAYMENT_METHOD_BUTTON, // Navigate to the payment method screen - ADD_PAYMENT_METHOD_BUTTON, // Navigate to the payment method editor - SHOW_CONTACT_INFO_BUTTON, // Navigate to the contact info screen - ADD_CONTACT_INFO_BUTTON, // Navigate to the contact info editor - SHOW_SHIPPING_OPTION_BUTTON, // Navigate to the shipping options screen - PAY_BUTTON, - MAX_TAG, // Always keep last. -}; - // A class that ensures proper elision of labels in the form // "[preview] and N more" where preview might be elided to allow "and N more" to // be always visible. @@ -134,7 +115,7 @@ }; std::unique_ptr<PaymentRequestRowView> CreatePaymentSheetRow( - base::WeakPtr<views::ButtonListener> listener, + views::Button::PressedCallback callback, const base::string16& section_name, const base::string16& accessible_content, std::unique_ptr<views::View> content_view, @@ -152,7 +133,7 @@ kPaymentRequestRowVerticalInsets, kPaymentRequestRowHorizontalInsets, kPaymentRequestRowVerticalInsets, trailing_inset); std::unique_ptr<PaymentRequestRowView> row = - std::make_unique<PaymentRequestRowView>(listener.get(), clickable, + std::make_unique<PaymentRequestRowView>(std::move(callback), clickable, row_insets); views::GridLayout* layout = row->SetLayoutManager(std::make_unique<views::GridLayout>()); @@ -258,12 +239,12 @@ // functions to create the row view. class PaymentSheetRowBuilder { public: - PaymentSheetRowBuilder(base::WeakPtr<views::ButtonListener> listener, + PaymentSheetRowBuilder(PaymentSheetViewController* controller, const base::string16& section_name) - : listener_(listener), section_name_(section_name) {} + : controller_(controller), section_name_(section_name) {} - PaymentSheetRowBuilder& Tag(PaymentSheetViewControllerTags tag) { - tag_ = static_cast<int>(tag); + PaymentSheetRowBuilder& Closure(base::RepeatingClosure closure) { + closure_ = std::move(closure); return *this; } @@ -296,10 +277,9 @@ gfx::GetDefaultSizeOfVectorIcon(views::kSubmenuArrowIcon)); chevron->SetCanProcessEventsWithinSubtree(false); std::unique_ptr<PaymentRequestRowView> section = CreatePaymentSheetRow( - listener_, section_name_, accessible_content_, std::move(content_view), - std::move(extra_content_view), std::move(chevron), - /*clickable=*/true, /*extra_trailing_inset=*/true); - section->set_tag(tag_); + GetPressedCallback(), section_name_, accessible_content_, + std::move(content_view), std::move(extra_content_view), + std::move(chevron), /*clickable=*/true, /*extra_trailing_inset=*/true); section->SetID(id_); return section; } @@ -348,23 +328,28 @@ std::unique_ptr<views::View> content_view, const base::string16& button_string, bool button_enabled) { - auto button = - std::make_unique<views::MdTextButton>(listener_.get(), button_string); + auto button = std::make_unique<views::MdTextButton>(GetPressedCallback(), + button_string); button->SetProminent(true); - button->set_tag(tag_); button->SetID(id_); button->SetFocusBehavior(views::View::FocusBehavior::ALWAYS); button->SetEnabled(button_enabled); return CreatePaymentSheetRow( - nullptr, section_name_, accessible_content_, std::move(content_view), - nullptr, std::move(button), /*clickable=*/false, + views::Button::PressedCallback(), section_name_, accessible_content_, + std::move(content_view), nullptr, std::move(button), + /*clickable=*/false, /*extra_trailing_inset=*/false, views::GridLayout::CENTER); } - base::WeakPtr<views::ButtonListener> listener_; + views::Button::PressedCallback GetPressedCallback() const { + return base::BindRepeating(&PaymentSheetViewController::ButtonPressed, + base::Unretained(controller_), closure_); + } + + PaymentSheetViewController* const controller_; base::string16 section_name_; base::string16 accessible_content_; - int tag_; + base::RepeatingClosure closure_; int id_; DISALLOW_COPY_AND_ASSIGN(PaymentSheetRowBuilder); }; @@ -399,6 +384,18 @@ UpdateContentView(); } +void PaymentSheetViewController::ButtonPressed(base::RepeatingClosure closure) { + if (!dialog()->IsInteractive() || !spec()) + return; + + std::move(closure).Run(); + + if (!spec()->retry_error_message().empty()) { + spec()->reset_retry_error_message(); + UpdateContentView(); + } +} + base::string16 PaymentSheetViewController::GetSecondaryButtonLabel() { return l10n_util::GetStringUTF16(IDS_CANCEL); } @@ -486,80 +483,6 @@ return CreateProductLogoFooterView(); } -void PaymentSheetViewController::ButtonPressed(views::Button* sender, - const ui::Event& event) { - if (!dialog()->IsInteractive() || !spec()) - return; - - switch (sender->tag()) { - case static_cast<int>( - PaymentSheetViewControllerTags::SHOW_ORDER_SUMMARY_BUTTON): - dialog()->ShowOrderSummary(); - break; - - case static_cast<int>(PaymentSheetViewControllerTags::SHOW_SHIPPING_BUTTON): - dialog()->ShowShippingProfileSheet(); - break; - - case static_cast<int>(PaymentSheetViewControllerTags::ADD_SHIPPING_BUTTON): - dialog()->ShowShippingAddressEditor( - BackNavigationType::kPaymentSheet, - /*on_edited=*/base::OnceClosure(), // This is always an add. - /*on_added=*/ - base::BindOnce(&PaymentRequestState::AddAutofillShippingProfile, - state()->AsWeakPtr(), /*selected=*/true), - nullptr); - break; - - case static_cast<int>( - PaymentSheetViewControllerTags::SHOW_PAYMENT_METHOD_BUTTON): - dialog()->ShowPaymentMethodSheet(); - break; - - case static_cast<int>( - PaymentSheetViewControllerTags::ADD_PAYMENT_METHOD_BUTTON): - dialog()->ShowCreditCardEditor( - BackNavigationType::kPaymentSheet, - static_cast<int>(PaymentSheetViewControllerTags::MAX_TAG), - /*on_edited=*/base::OnceClosure(), // This is always an add. - /*on_added=*/ - base::BindOnce(&PaymentRequestState::AddAutofillPaymentApp, - state()->AsWeakPtr(), /*selected=*/true), - /*credit_card=*/nullptr); - - break; - - case static_cast<int>( - PaymentSheetViewControllerTags::SHOW_CONTACT_INFO_BUTTON): - dialog()->ShowContactProfileSheet(); - break; - - case static_cast<int>( - PaymentSheetViewControllerTags::ADD_CONTACT_INFO_BUTTON): - dialog()->ShowContactInfoEditor( - BackNavigationType::kPaymentSheet, - /*on_edited=*/base::OnceClosure(), // This is always an add. - /*on_added=*/ - base::BindOnce(&PaymentRequestState::AddAutofillContactProfile, - state()->AsWeakPtr(), /*selected=*/true)); - break; - - case static_cast<int>( - PaymentSheetViewControllerTags::SHOW_SHIPPING_OPTION_BUTTON): - dialog()->ShowShippingOptionSheet(); - break; - - default: - PaymentRequestSheetController::ButtonPressed(sender, event); - return; - } - - if (!spec()->retry_error_message().empty()) { - spec()->reset_retry_error_message(); - UpdateContentView(); - } -} - // Creates the Order Summary row, which contains an "Order Summary" label, // an inline list of display items, a Total Amount label, and a Chevron. Returns // nullptr if WeakPtr<PaymentRequestSpec> has become null. @@ -645,9 +568,10 @@ total_amount, false, true)); PaymentSheetRowBuilder builder( - weak_ptr_factory_.GetWeakPtr(), - l10n_util::GetStringUTF16(IDS_PAYMENTS_ORDER_SUMMARY_LABEL)); - builder.Tag(PaymentSheetViewControllerTags::SHOW_ORDER_SUMMARY_BUTTON) + this, l10n_util::GetStringUTF16(IDS_PAYMENTS_ORDER_SUMMARY_LABEL)); + builder + .Closure(base::BindRepeating(&PaymentRequestDialogView::ShowOrderSummary, + dialog())) .Id(DialogViewID::PAYMENT_SHEET_SUMMARY_SECTION) .AccessibleContent(l10n_util::GetStringFUTF16( IDS_PAYMENTS_ORDER_SUMMARY_ACCESSIBLE_LABEL, @@ -686,15 +610,18 @@ std::unique_ptr<views::Button> section; PaymentSheetRowBuilder builder( - weak_ptr_factory_.GetWeakPtr(), - GetShippingAddressSectionString(spec()->shipping_type())); + this, GetShippingAddressSectionString(spec()->shipping_type())); builder .Id(state()->selected_shipping_profile() ? DialogViewID::PAYMENT_SHEET_SHIPPING_ADDRESS_SECTION : DialogViewID::PAYMENT_SHEET_SHIPPING_ADDRESS_SECTION_BUTTON) - .Tag(state()->shipping_profiles().empty() - ? PaymentSheetViewControllerTags::ADD_SHIPPING_BUTTON - : PaymentSheetViewControllerTags::SHOW_SHIPPING_BUTTON); + .Closure(state()->shipping_profiles().empty() + ? base::BindRepeating( + &PaymentSheetViewController::AddShippingButtonPressed, + base::Unretained(this)) + : base::BindRepeating( + &PaymentRequestDialogView::ShowShippingProfileSheet, + dialog())); if (state()->selected_shipping_profile()) { base::string16 accessible_content; std::unique_ptr<views::View> content = @@ -707,7 +634,7 @@ l10n_util::GetStringUTF16(IDS_ADD), /*button_enabled=*/true); } - base::string16 label = GetShippingAddressLabelFromAutofillProfile( + const base::string16 label = GetShippingAddressLabelFromAutofillProfile( *state()->shipping_profiles()[0], state()->GetApplicationLocale()); if (state()->shipping_profiles().size() == 1) { return builder.CreateWithButton(label, @@ -737,16 +664,20 @@ PaymentApp* selected_app = state()->selected_app(); PaymentSheetRowBuilder builder( - weak_ptr_factory_.GetWeakPtr(), - l10n_util::GetStringUTF16( - IDS_PAYMENT_REQUEST_PAYMENT_METHOD_SECTION_NAME)); + this, l10n_util::GetStringUTF16( + IDS_PAYMENT_REQUEST_PAYMENT_METHOD_SECTION_NAME)); builder .Id(selected_app ? DialogViewID::PAYMENT_SHEET_PAYMENT_METHOD_SECTION : DialogViewID::PAYMENT_SHEET_PAYMENT_METHOD_SECTION_BUTTON) - .Tag(state()->available_apps().empty() - ? PaymentSheetViewControllerTags::ADD_PAYMENT_METHOD_BUTTON - : PaymentSheetViewControllerTags::SHOW_PAYMENT_METHOD_BUTTON); + .Closure( + state()->available_apps().empty() + ? base::BindRepeating( + &PaymentSheetViewController::AddPaymentMethodButtonPressed, + base::Unretained(this)) + : base::BindRepeating( + &PaymentRequestDialogView::ShowPaymentMethodSheet, + dialog())); if (selected_app) { auto content_view = std::make_unique<views::View>(); @@ -815,15 +746,20 @@ std::unique_ptr<PaymentRequestRowView> PaymentSheetViewController::CreateContactInfoRow() { PaymentSheetRowBuilder builder( - weak_ptr_factory_.GetWeakPtr(), + this, l10n_util::GetStringUTF16(IDS_PAYMENT_REQUEST_CONTACT_INFO_SECTION_NAME)); builder .Id(state()->selected_contact_profile() ? DialogViewID::PAYMENT_SHEET_CONTACT_INFO_SECTION : DialogViewID::PAYMENT_SHEET_CONTACT_INFO_SECTION_BUTTON) - .Tag(state()->contact_profiles().empty() - ? PaymentSheetViewControllerTags::ADD_CONTACT_INFO_BUTTON - : PaymentSheetViewControllerTags::SHOW_CONTACT_INFO_BUTTON); + .Closure( + state()->contact_profiles().empty() + ? base::BindRepeating( + &PaymentSheetViewController::AddContactInfoButtonPressed, + base::Unretained(this)) + : base::BindRepeating( + &PaymentRequestDialogView::ShowContactProfileSheet, + dialog())); if (state()->selected_contact_profile()) { base::string16 accessible_content; std::unique_ptr<views::View> content = @@ -879,9 +815,9 @@ // is one. It's not possible to select an option without selecting an address // first. PaymentSheetRowBuilder builder( - weak_ptr_factory_.GetWeakPtr(), - GetShippingOptionSectionString(spec()->shipping_type())); - builder.Tag(PaymentSheetViewControllerTags::SHOW_SHIPPING_OPTION_BUTTON); + this, GetShippingOptionSectionString(spec()->shipping_type())); + builder.Closure(base::BindRepeating( + &PaymentRequestDialogView::ShowShippingOptionSheet, dialog())); mojom::PaymentShippingOption* selected_option = spec()->selected_shipping_option(); @@ -988,4 +924,28 @@ return content_view; } +void PaymentSheetViewController::AddShippingButtonPressed() { + dialog()->ShowShippingAddressEditor( + BackNavigationType::kPaymentSheet, base::RepeatingClosure(), + base::BindRepeating(&PaymentRequestState::AddAutofillShippingProfile, + state(), true), + nullptr); +} + +void PaymentSheetViewController::AddPaymentMethodButtonPressed() { + dialog()->ShowCreditCardEditor( + BackNavigationType::kPaymentSheet, base::RepeatingClosure(), + base::BindRepeating(&PaymentRequestState::AddAutofillPaymentApp, state(), + true), + nullptr); +} + +void PaymentSheetViewController::AddContactInfoButtonPressed() { + dialog()->ShowContactInfoEditor( + BackNavigationType::kPaymentSheet, base::RepeatingClosure(), + base::BindRepeating(&PaymentRequestState::AddAutofillContactProfile, + state(), true), + nullptr); +} + } // namespace payments
diff --git a/chrome/browser/ui/views/payments/payment_sheet_view_controller.h b/chrome/browser/ui/views/payments/payment_sheet_view_controller.h index 32e29de..cbd91e0 100644 --- a/chrome/browser/ui/views/payments/payment_sheet_view_controller.h +++ b/chrome/browser/ui/views/payments/payment_sheet_view_controller.h
@@ -38,6 +38,8 @@ void OnGetAllPaymentAppsFinished() override {} void OnSelectedInformationChanged() override; + void ButtonPressed(base::RepeatingClosure closure); + private: // PaymentRequestSheetController: base::string16 GetSecondaryButtonLabel() override; @@ -45,7 +47,6 @@ base::string16 GetSheetTitle() override; void FillContentView(views::View* content_view) override; std::unique_ptr<views::View> CreateExtraFooterView() override; - void ButtonPressed(views::Button* sender, const ui::Event& event) override; // These functions create the various sections and rows of the payment sheet. // Where applicable, they also populate |accessible_content|, which shouldn't @@ -61,7 +62,9 @@ std::unique_ptr<PaymentRequestRowView> CreateShippingOptionRow(); std::unique_ptr<views::View> CreateDataSourceRow(); - base::WeakPtrFactory<PaymentSheetViewController> weak_ptr_factory_{this}; + void AddShippingButtonPressed(); + void AddPaymentMethodButtonPressed(); + void AddContactInfoButtonPressed(); DISALLOW_COPY_AND_ASSIGN(PaymentSheetViewController); };
diff --git a/chrome/browser/ui/views/payments/profile_list_view_controller.cc b/chrome/browser/ui/views/payments/profile_list_view_controller.cc index 80d47a4..3df0ec4 100644 --- a/chrome/browser/ui/views/payments/profile_list_view_controller.cc +++ b/chrome/browser/ui/views/payments/profile_list_view_controller.cc
@@ -32,15 +32,6 @@ namespace { -enum class ProfileListViewControllerTags : int { - // The tag for the button that triggers the "add address" - // flow. Starts at |PAYMENT_REQUEST_COMMON_TAG_MAX| not to conflict - // with tags common to all views. - ADD_SHIPPING_ADDRESS_BUTTON = static_cast<int>( - PaymentRequestCommonTags::PAYMENT_REQUEST_COMMON_TAG_MAX), - ADD_CONTACT_BUTTON, -}; - class ProfileItem : public PaymentRequestItemList::Item { public: // Constructs an object owned by |parent_list|, representing one element in @@ -200,11 +191,6 @@ return l10n_util::GetStringUTF16(IDS_PAYMENTS_ADD_ADDRESS); } - int GetSecondaryButtonTag() override { - return static_cast<int>( - ProfileListViewControllerTags::ADD_SHIPPING_ADDRESS_BUTTON); - } - int GetSecondaryButtonId() override { return static_cast<int>(DialogViewID::PAYMENT_METHOD_ADD_SHIPPING_BUTTON); } @@ -311,10 +297,6 @@ return l10n_util::GetStringUTF16(IDS_PAYMENTS_ADD_CONTACT); } - int GetSecondaryButtonTag() override { - return static_cast<int>(ProfileListViewControllerTags::ADD_CONTACT_BUTTON); - } - int GetSecondaryButtonId() override { return static_cast<int>(DialogViewID::PAYMENT_METHOD_ADD_CONTACT_BUTTON); } @@ -378,6 +360,12 @@ return false; } +views::Button::PressedCallback +ProfileListViewController::GetSecondaryButtonCallback() { + return base::BindRepeating(&ProfileListViewController::ShowEditor, + base::Unretained(this), nullptr); +} + void ProfileListViewController::FillContentView(views::View* content_view) { auto layout = std::make_unique<views::BoxLayout>( views::BoxLayout::Orientation::kVertical); @@ -393,12 +381,4 @@ content_view->AddChildView(list_view.release()); } -void ProfileListViewController::ButtonPressed(views::Button* sender, - const ui::Event& event) { - if (sender->tag() == GetSecondaryButtonTag()) - ShowEditor(nullptr); - else - PaymentRequestSheetController::ButtonPressed(sender, event); -} - } // namespace payments
diff --git a/chrome/browser/ui/views/payments/profile_list_view_controller.h b/chrome/browser/ui/views/payments/profile_list_view_controller.h index 1721aaa..d4ee9b1 100644 --- a/chrome/browser/ui/views/payments/profile_list_view_controller.h +++ b/chrome/browser/ui/views/payments/profile_list_view_controller.h
@@ -51,9 +51,6 @@ base::WeakPtr<PaymentRequestState> state, base::WeakPtr<PaymentRequestDialogView> dialog); - // PaymentRequestSheetController: - void ButtonPressed(views::Button* sender, const ui::Event& event) override; - // Returns a representation of the given profile appropriate for display // in this context. Populates |accessible_string|, which shouldn't be null, // with the screen reader string representing the returned label. @@ -94,6 +91,7 @@ // PaymentRequestSheetController: bool ShouldShowPrimaryButton() override; + views::Button::PressedCallback GetSecondaryButtonCallback() override; void FillContentView(views::View* content_view) override; private:
diff --git a/chrome/browser/ui/views/settings_reset_prompt_dialog.cc b/chrome/browser/ui/views/settings_reset_prompt_dialog.cc index 7051231d..75278747 100644 --- a/chrome/browser/ui/views/settings_reset_prompt_dialog.cc +++ b/chrome/browser/ui/views/settings_reset_prompt_dialog.cc
@@ -28,17 +28,20 @@ void ShowSettingsResetPrompt( Browser* browser, safe_browsing::SettingsResetPromptController* controller) { - SettingsResetPromptDialog* dialog = new SettingsResetPromptDialog(controller); + SettingsResetPromptDialog* dialog = + new SettingsResetPromptDialog(browser, controller); // The dialog will delete itself, as implemented in // |DialogDelegateView::DeleteDelegate()|, when its widget is closed. - dialog->Show(browser); + dialog->Show(); } } // namespace chrome SettingsResetPromptDialog::SettingsResetPromptDialog( + Browser* browser, safe_browsing::SettingsResetPromptController* controller) - : browser_(nullptr), controller_(controller) { + : browser_(browser), controller_(controller) { + DCHECK(browser_); DCHECK(controller_); SetShowIcon(false); @@ -64,11 +67,16 @@ }, base::Unretained(this))); + SetModalType(ui::MODAL_TYPE_WINDOW); + SetShowCloseButton(false); + set_fixed_width(views::LayoutProvider::Get()->GetDistanceMetric( + views::DISTANCE_MODAL_DIALOG_PREFERRED_WIDTH)); + set_margins(ChromeLayoutProvider::Get()->GetDialogInsetsForContentType( views::TEXT, views::TEXT)); SetLayoutManager(std::make_unique<views::FillLayout>()); - views::StyledLabel* dialog_label = + views::StyledLabel* const dialog_label = AddChildView(std::make_unique<views::StyledLabel>()); dialog_label->SetText(controller_->GetMainText()); dialog_label->SetTextContext(views::style::CONTEXT_DIALOG_BODY_TEXT); @@ -85,37 +93,16 @@ controller_->Close(); } -void SettingsResetPromptDialog::Show(Browser* browser) { - DCHECK(browser); +void SettingsResetPromptDialog::Show() { DCHECK(controller_); - - browser_ = browser; - BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser); + BrowserView* const browser_view = + BrowserView::GetBrowserViewForBrowser(browser_); constrained_window::CreateBrowserModalDialogViews( this, browser_view->GetNativeWindow()) ->Show(); controller_->DialogShown(); } -// WidgetDelegate overrides. - -ui::ModalType SettingsResetPromptDialog::GetModalType() const { - return ui::MODAL_TYPE_WINDOW; -} - -bool SettingsResetPromptDialog::ShouldShowCloseButton() const { - return false; -} - base::string16 SettingsResetPromptDialog::GetWindowTitle() const { return controller_ ? controller_->GetWindowTitle() : base::string16(); } - -// View overrides. - -gfx::Size SettingsResetPromptDialog::CalculatePreferredSize() const { - const int width = ChromeLayoutProvider::Get()->GetDistanceMetric( - views::DISTANCE_MODAL_DIALOG_PREFERRED_WIDTH) - - margins().width(); - return gfx::Size(width, GetHeightForWidth(width)); -}
diff --git a/chrome/browser/ui/views/settings_reset_prompt_dialog.h b/chrome/browser/ui/views/settings_reset_prompt_dialog.h index 8ef7ba3..b439fd55 100644 --- a/chrome/browser/ui/views/settings_reset_prompt_dialog.h +++ b/chrome/browser/ui/views/settings_reset_prompt_dialog.h
@@ -17,10 +17,6 @@ class SettingsResetPromptController; } -namespace views { -class View; -} - // A dialog intended for prompting users to reset some of their settings to // their original default values. The dialog has two sections: // 1. Main section with an explanation text @@ -28,22 +24,18 @@ // operation. class SettingsResetPromptDialog : public views::DialogDelegateView { public: - explicit SettingsResetPromptDialog( + SettingsResetPromptDialog( + Browser* browser, safe_browsing::SettingsResetPromptController* controller); ~SettingsResetPromptDialog() override; - void Show(Browser* browser); + void Show(); - // views::WidgetDelegate overrides. - ui::ModalType GetModalType() const override; + // views::DialogDelegateView: base::string16 GetWindowTitle() const override; - bool ShouldShowCloseButton() const override; - - // views::View overrides. - gfx::Size CalculatePreferredSize() const override; private: - Browser* browser_; + Browser* const browser_; safe_browsing::SettingsResetPromptController* controller_; DISALLOW_COPY_AND_ASSIGN(SettingsResetPromptDialog);
diff --git a/chrome/browser/ui/views/settings_reset_prompt_dialog_browsertest.cc b/chrome/browser/ui/views/settings_reset_prompt_dialog_browsertest.cc index 2a907d8..e390b61 100644 --- a/chrome/browser/ui/views/settings_reset_prompt_dialog_browsertest.cc +++ b/chrome/browser/ui/views/settings_reset_prompt_dialog_browsertest.cc
@@ -180,9 +180,10 @@ ModelParams{SettingType::DEFAULT_SEARCH_ENGINE, 0}); dialog_ = new SettingsResetPromptDialog( + browser(), new safe_browsing::SettingsResetPromptController( std::move(model), std::make_unique<BrandcodedDefaultSettings>())); - dialog_->Show(browser()); + dialog_->Show(); } void DismissUi() override { dialog_->Close(); }
diff --git a/chrome/browser/ui/views/test/view_event_test_base.cc b/chrome/browser/ui/views/test/view_event_test_base.cc index ea517ab7..caefa134 100644 --- a/chrome/browser/ui/views/test/view_event_test_base.cc +++ b/chrome/browser/ui/views/test/view_event_test_base.cc
@@ -66,9 +66,11 @@ // views::WidgetDelegate: void WindowClosing() override { harness_->window_ = nullptr; } - views::Widget* GetWidget() override { return contents_->GetWidget(); } + views::Widget* GetWidget() override { + return contents_ ? contents_->GetWidget() : nullptr; + } const views::Widget* GetWidget() const override { - return contents_->GetWidget(); + return contents_ ? contents_->GetWidget() : nullptr; } views::View* GetContentsView() override { // This will first be called by Widget::Init(), which passes the returned
diff --git a/chrome/browser/ui/views/touch_selection_menu_chromeos.cc b/chrome/browser/ui/views/touch_selection_menu_chromeos.cc index b4d85f9..adf1c3e 100644 --- a/chrome/browser/ui/views/touch_selection_menu_chromeos.cc +++ b/chrome/browser/ui/views/touch_selection_menu_chromeos.cc
@@ -51,10 +51,10 @@ void TouchSelectionMenuChromeOS::CreateButtons() { if (action_) { - views::LabelButton* button = - CreateButton(base::UTF8ToUTF16(action_->title)); - button->set_tag(kSmartTextSelectionActionTag); - + views::LabelButton* button = CreateButton( + base::UTF8ToUTF16(action_->title), + base::BindRepeating(&TouchSelectionMenuChromeOS::ActionButtonPressed, + base::Unretained(this))); if (action_->bitmap_icon) { gfx::ImageSkia original( gfx::ImageSkia::CreateFrom1xBitmap(action_->bitmap_icon.value())); @@ -63,20 +63,21 @@ gfx::Size(kSmallIconSizeInDip, kSmallIconSizeInDip)); button->SetImage(views::Button::ButtonState::STATE_NORMAL, icon); } - - AddChildView(button); } views::TouchSelectionMenuViews::CreateButtons(); } -void TouchSelectionMenuChromeOS::ButtonPressed(views::Button* sender, - const ui::Event& event) { - if (sender->tag() != kSmartTextSelectionActionTag) { - views::TouchSelectionMenuViews::ButtonPressed(sender, event); - return; - } +void TouchSelectionMenuChromeOS::OnBeforeBubbleWidgetInit( + views::Widget::InitParams* params, + views::Widget* widget) const { + ash_util::SetupWidgetInitParamsForContainer( + params, ash::kShellWindowId_SettingBubbleContainer); +} +TouchSelectionMenuChromeOS::~TouchSelectionMenuChromeOS() = default; + +void TouchSelectionMenuChromeOS::ActionButtonPressed() { auto* arc_service_manager = arc::ArcServiceManager::Get(); if (!arc_service_manager) return; @@ -88,12 +89,3 @@ instance->HandleIntent(std::move(action_->action_intent), std::move(action_->activity)); } - -void TouchSelectionMenuChromeOS::OnBeforeBubbleWidgetInit( - views::Widget::InitParams* params, - views::Widget* widget) const { - ash_util::SetupWidgetInitParamsForContainer( - params, ash::kShellWindowId_SettingBubbleContainer); -} - -TouchSelectionMenuChromeOS::~TouchSelectionMenuChromeOS() = default;
diff --git a/chrome/browser/ui/views/touch_selection_menu_chromeos.h b/chrome/browser/ui/views/touch_selection_menu_chromeos.h index 3558d833..8d3c77e 100644 --- a/chrome/browser/ui/views/touch_selection_menu_chromeos.h +++ b/chrome/browser/ui/views/touch_selection_menu_chromeos.h
@@ -19,10 +19,6 @@ // user's text selection. class TouchSelectionMenuChromeOS : public views::TouchSelectionMenuViews { public: - // Tag used to mark added actions/buttons as generated by the smart text - // selection feature. - enum { kSmartTextSelectionActionTag = -2 }; - TouchSelectionMenuChromeOS(views::TouchSelectionMenuRunnerViews* owner, ui::TouchSelectionMenuClient* client, aura::Window* context, @@ -34,13 +30,14 @@ protected: // views:TouchSelectionMenuViews. void CreateButtons() override; - void ButtonPressed(views::Button* sender, const ui::Event& event) override; void OnBeforeBubbleWidgetInit(views::Widget::InitParams* params, views::Widget* widget) const override; private: ~TouchSelectionMenuChromeOS() override; + void ActionButtonPressed(); + arc::mojom::TextSelectionActionPtr action_; int64_t display_id_;
diff --git a/chrome/browser/ui/webui/chromeos/edu_coexistence_login_handler_chromeos.cc b/chrome/browser/ui/webui/chromeos/edu_coexistence_login_handler_chromeos.cc index 9a467e457..27c6a92 100644 --- a/chrome/browser/ui/webui/chromeos/edu_coexistence_login_handler_chromeos.cc +++ b/chrome/browser/ui/webui/chromeos/edu_coexistence_login_handler_chromeos.cc
@@ -36,6 +36,7 @@ #include "google_apis/gaia/gaia_urls.h" #include "google_apis/gaia/google_service_auth_error.h" #include "google_apis/gaia/oauth2_access_token_manager.h" +#include "net/base/url_util.h" #include "ui/base/webui/web_ui_util.h" namespace chromeos { @@ -214,6 +215,24 @@ base::SysInfo::OperatingSystemVersion()); params.SetStringKey("releaseChannel", chrome::GetChannelName()); + // If the secondary edu account is being reauthenticated, the email address + // will be provided via the url of the webcontent. Example + // chrome://chrome-signin/edu-coexistence?email=testuser1%40gmail.com + content::WebContents* web_contents = web_ui()->GetWebContents(); + if (web_contents) { + const GURL& current_url = web_contents->GetURL(); + std::string default_email; + if (net::GetValueForKeyInQuery(current_url, "email", &default_email)) { + params.SetStringKey("email", default_email); + + std::string read_only_email; + if (net::GetValueForKeyInQuery(current_url, "readOnlyEmail", + &read_only_email)) { + params.SetStringKey("readOnlyEmail", read_only_email); + } + } + } + ResolveJavascriptCallback(base::Value(initialize_edu_args_callback_.value()), std::move(params)); initialize_edu_args_callback_ = base::nullopt;
diff --git a/chrome/browser/ui/webui/settings/chromeos/constants/setting.mojom b/chrome/browser/ui/webui/settings/chromeos/constants/setting.mojom index a1382d3de..d55c6bc 100644 --- a/chrome/browser/ui/webui/settings/chromeos/constants/setting.mojom +++ b/chrome/browser/ui/webui/settings/chromeos/constants/setting.mojom
@@ -35,6 +35,8 @@ kWifiMetered = 24, kCellularMetered = 25, kCellularAddNetwork = 26, + kCellularRemoveESimNetwork = 27, + kCellularRenameESimNetwork = 28, // Bluetooth section. kBluetoothOnOff = 100,
diff --git a/chrome/browser/ui/webui/settings/chromeos/internet_section.cc b/chrome/browser/ui/webui/settings/chromeos/internet_section.cc index 94e348e..fab78ee 100644 --- a/chrome/browser/ui/webui/settings/chromeos/internet_section.cc +++ b/chrome/browser/ui/webui/settings/chromeos/internet_section.cc
@@ -330,9 +330,10 @@ return *tags; } -// TODO(1093185): Merge GetCellularSetupSearchConcepts() with +// TODO(1093185): Merge GetCellularSetupAndDetailMenuSearchConcepts() with // GetCellularConnectedSearchConcepts() when flag is enabled. -const std::vector<SearchConcept>& GetCellularSetupSearchConcepts() { +const std::vector<SearchConcept>& +GetCellularSetupAndDetailMenuSearchConcepts() { static const base::NoDestructor<std::vector<SearchConcept>> tags({ {IDS_OS_SETTINGS_TAG_ADD_CELLULAR, mojom::kMobileDataNetworksSubpagePath, @@ -342,6 +343,22 @@ {.setting = mojom::Setting::kCellularAddNetwork}, {IDS_OS_SETTINGS_TAG_ADD_CELLULAR_ALT1, IDS_OS_SETTINGS_TAG_ADD_CELLULAR_ALT2, SearchConcept::kAltTagEnd}}, + {IDS_OS_SETTINGS_TAG_CELLULAR_REMOVE_PROFILE, + mojom::kCellularDetailsSubpagePath, + mojom::SearchResultIcon::kCellular, + mojom::SearchResultDefaultRank::kMedium, + mojom::SearchResultType::kSetting, + {.setting = mojom::Setting::kCellularRemoveESimNetwork}, + {IDS_OS_SETTINGS_TAG_CELLULAR_REMOVE_PROFILE_ALT1, + SearchConcept::kAltTagEnd}}, + {IDS_OS_SETTINGS_TAG_CELLULAR_RENAME_PROFILE, + mojom::kCellularDetailsSubpagePath, + mojom::SearchResultIcon::kCellular, + mojom::SearchResultDefaultRank::kMedium, + mojom::SearchResultType::kSetting, + {.setting = mojom::Setting::kCellularRenameESimNetwork}, + {IDS_OS_SETTINGS_TAG_CELLULAR_RENAME_PROFILE_ALT1, + SearchConcept::kAltTagEnd}}, }); return *tags; } @@ -464,6 +481,8 @@ mojom::Setting::kCellularAutoConnectToNetwork, mojom::Setting::kCellularMetered, mojom::Setting::kCellularAddNetwork, + mojom::Setting::kCellularRemoveESimNetwork, + mojom::Setting::kCellularRenameESimNetwork, }); return *settings; } @@ -608,6 +627,10 @@ {"networkPrefer", IDS_SETTINGS_INTERNET_NETWORK_PREFER}, {"networkPrimaryUserControlled", IDS_SETTINGS_INTERNET_NETWORK_PRIMARY_USER_CONTROLLED}, + {"networkDetailMenuRemoveESim", + IDS_SETTINGS_INTERNET_NETWORK_MENU_REMOVE}, + {"networkDetailMenuRenameESim", + IDS_SETTINGS_INTERNET_NETWORK_MENU_RENAME}, {"networkScanningLabel", IDS_NETWORK_SCANNING_MESSAGE}, {"networkSectionAdvanced", IDS_SETTINGS_INTERNET_NETWORK_SECTION_ADVANCED}, @@ -954,7 +977,7 @@ updater.RemoveSearchTags(GetWifiMeteredSearchConcepts()); updater.RemoveSearchTags(GetCellularSearchConcepts()); updater.RemoveSearchTags(GetCellularConnectedSearchConcepts()); - updater.RemoveSearchTags(GetCellularSetupSearchConcepts()); + updater.RemoveSearchTags(GetCellularSetupAndDetailMenuSearchConcepts()); updater.RemoveSearchTags(GetCellularMeteredSearchConcepts()); updater.RemoveSearchTags(GetInstantTetheringConnectedSearchConcepts()); updater.RemoveSearchTags(GetVpnConnectedSearchConcepts()); @@ -998,7 +1021,7 @@ if (base::FeatureList::IsEnabled( chromeos::features::kUpdatedCellularActivationUi)) { - updater.AddSearchTags(GetCellularSetupSearchConcepts()); + updater.AddSearchTags(GetCellularSetupAndDetailMenuSearchConcepts()); } break;
diff --git a/chrome/browser/ui/webui/settings/chromeos/main_section.cc b/chrome/browser/ui/webui/settings/chromeos/main_section.cc index 7563a44..ba36c9d 100644 --- a/chrome/browser/ui/webui/settings/chromeos/main_section.cc +++ b/chrome/browser/ui/webui/settings/chromeos/main_section.cc
@@ -27,7 +27,6 @@ #include "chrome/grit/chromium_strings.h" #include "chrome/grit/generated_resources.h" #include "chrome/grit/os_settings_resources.h" -#include "chromeos/components/web_applications/manifest_request_filter.h" #include "chromeos/constants/chromeos_features.h" #include "components/strings/grit/components_strings.h" #include "components/user_manager/user_manager.h" @@ -173,9 +172,6 @@ // Add the System Web App resources for Settings. html_source->AddResourcePath("icon-192.png", IDR_SETTINGS_LOGO_192); - html_source->AddResourcePath("pwa.html", IDR_PWA_HTML); - web_app::SetManifestRequestFilter(html_source, IDR_OS_SETTINGS_MANIFEST, - IDS_SETTINGS_SETTINGS); html_source->AddResourcePath("constants/routes.mojom-lite.js", IDR_OS_SETTINGS_ROUTES_MOJOM_LITE_JS);
diff --git a/chrome/browser/web_applications/system_web_app_manager.cc b/chrome/browser/web_applications/system_web_app_manager.cc index f92cd61..95d0fb4e 100644 --- a/chrome/browser/web_applications/system_web_app_manager.cc +++ b/chrome/browser/web_applications/system_web_app_manager.cc
@@ -50,6 +50,7 @@ #include "chrome/browser/chromeos/web_applications/diagnostics_system_web_app_info.h" #include "chrome/browser/chromeos/web_applications/help_app_web_app_info.h" #include "chrome/browser/chromeos/web_applications/media_web_app_info.h" +#include "chrome/browser/chromeos/web_applications/os_settings_web_app_info.h" #include "chrome/browser/chromeos/web_applications/print_management_web_app_info.h" #include "chrome/browser/chromeos/web_applications/scanning_system_web_app_info.h" #include "chrome/browser/chromeos/web_applications/terminal_source.h" @@ -97,7 +98,6 @@ return origin; } - #endif // OS_CHROMEOS base::flat_map<SystemAppType, SystemAppInfo> CreateSystemWebApps() { @@ -137,9 +137,10 @@ base::BindRepeating(&CreateWebAppInfoForDiagnosticsSystemWebApp))); } - infos.emplace( - SystemAppType::SETTINGS, - SystemAppInfo("OSSettings", GURL("chrome://os-settings/pwa.html"))); + infos.emplace(SystemAppType::SETTINGS, + SystemAppInfo("OSSettings", GURL(chrome::kChromeUISettingsURL), + base::BindRepeating( + &CreateWebAppInfoForOSSettingsSystemWebApp))); infos.at(SystemAppType::SETTINGS).uninstall_and_replace = { chromeos::default_web_apps::kSettingsAppId, ash::kInternalAppIdSettings}; // Large enough to see the heading text "Settings" in the top-left.
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt index 3a42b391..3bab15e 100644 --- a/chrome/build/linux.pgo.txt +++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@ -chrome-linux-master-1603195140-c129f14cb6d511df5580572a9de378cf815e87d7.profdata +chrome-linux-master-1603216608-9fdc3766d62145cb23e4981f379b4b4bd1eab8ae.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt index 6893945..3b56323 100644 --- a/chrome/build/mac.pgo.txt +++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@ -chrome-mac-master-1603195140-e7f1aee2c0a50a929699520496ae0e25b15e94bf.profdata +chrome-mac-master-1603216608-7529e831dfcfdc3eeb93d3e8d9f23aaded5766b2.profdata
diff --git a/chrome/common/extensions/api/_api_features.json b/chrome/common/extensions/api/_api_features.json index 37be7d4..8c7ecab 100644 --- a/chrome/common/extensions/api/_api_features.json +++ b/chrome/common/extensions/api/_api_features.json
@@ -261,6 +261,28 @@ "dependencies": ["permission:cookies"], "contexts": ["blessed_extension"] }, + "crashReportPrivate": [{ + "dependencies": ["permission:crashReportPrivate"], + "contexts": ["blessed_extension"], + "default_parent": true + }, + { + "channel": "stable", + "contexts": [ + "webui" + ], + "matches": [ + "chrome://media-app/*" + ] + }, + { + "channel": "stable", + "contexts": ["webui_untrusted"], + "matches": [ + "chrome-untrusted://help-app/*", + "chrome-untrusted://media-app/*" + ] + }], "cryptotokenPrivate": { "dependencies": ["permission:cryptotokenPrivate"], "contexts": ["blessed_extension"]
diff --git a/chrome/common/extensions/api/_permission_features.json b/chrome/common/extensions/api/_permission_features.json index 2a072c70..edc41e4a 100644 --- a/chrome/common/extensions/api/_permission_features.json +++ b/chrome/common/extensions/api/_permission_features.json
@@ -180,6 +180,17 @@ "channel": "stable", "extension_types": ["extension", "legacy_packaged_app"] }, + "crashReportPrivate": { + "channel": "dev", + "extension_types": ["extension", "legacy_packaged_app", "platform_app"], + "whitelist": [ + "0EA6B717932AD64C469C1CCB6911457733295907", // Secure Shell App (stable) + "58B0C2968C335964D5433E89CA4D86628A0E3D4B", // Secure Shell App (dev) + "3BC1ED0B3E6EFDC7BD4D3D1D75D44B52DEE0A226", // Secure Shell Ext (stable) + "38C361D4A0726CE45D3572D65071B6BDB3092371", // Secure Shell Ext (dev) + "06BE211D5F014BAB34BC22D9DDA09C63A81D828E" // http://crbug.com/946241 + ] + }, "cryptotokenPrivate": { "channel": "stable", "extension_types": ["extension"],
diff --git a/chrome/common/extensions/api/api_sources.gni b/chrome/common/extensions/api/api_sources.gni index 2f672c5..a5676755 100644 --- a/chrome/common/extensions/api/api_sources.gni +++ b/chrome/common/extensions/api/api_sources.gni
@@ -29,6 +29,7 @@ "debugger.json", "desktop_capture.json", "developer_private.idl", + "crash_report_private.idl", "downloads.idl", "downloads_internal.idl", "enterprise_hardware_platform.idl",
diff --git a/extensions/common/api/crash_report_private.idl b/chrome/common/extensions/api/crash_report_private.idl similarity index 100% rename from extensions/common/api/crash_report_private.idl rename to chrome/common/extensions/api/crash_report_private.idl
diff --git a/chrome/common/extensions/api/generated_externs_list.txt b/chrome/common/extensions/api/generated_externs_list.txt index 4da5bd1..dc4ec11 100644 --- a/chrome/common/extensions/api/generated_externs_list.txt +++ b/chrome/common/extensions/api/generated_externs_list.txt
@@ -6,6 +6,7 @@ bookmark_manager_private.json chromeos_info_private.json command_line_private.json +crash_report_private.idl developer_private.idl file_manager_private.idl file_system_provider.idl
diff --git a/chrome/services/cups_proxy/ipp_attribute_validator.cc b/chrome/services/cups_proxy/ipp_attribute_validator.cc index 3f8a0af..2965460c 100644 --- a/chrome/services/cups_proxy/ipp_attribute_validator.cc +++ b/chrome/services/cups_proxy/ipp_attribute_validator.cc
@@ -135,9 +135,9 @@ {"printer-make-and-model", {false, ValueType::STRING}}, {"printer-more-info", {false, ValueType::STRING}}, {"printer-name", {false, ValueType::STRING}}, - {"printer-resolution", {true, ValueType::INTEGER}}, - {"printer-resolution-default", {true, ValueType::INTEGER}}, - {"printer-resolution-supported", {true, ValueType::INTEGER}}, + {"printer-resolution", {false, ValueType::RESOLUTION}}, + {"printer-resolution-default", {false, ValueType::RESOLUTION}}, + {"printer-resolution-supported", {true, ValueType::RESOLUTION}}, {"printer-state", {false, ValueType::INTEGER}}, {"printer-state-reasons", {true, ValueType::STRING}}, {"printer-type", {false, ValueType::INTEGER}},
diff --git a/chrome/services/cups_proxy/ipp_validator.cc b/chrome/services/cups_proxy/ipp_validator.cc index 8f009a8..f2ec6fdb 100644 --- a/chrome/services/cups_proxy/ipp_validator.cc +++ b/chrome/services/cups_proxy/ipp_validator.cc
@@ -34,7 +34,7 @@ // Converting to vector<char> for libCUPS API: // ippAddBooleans(..., int num_values, const char *values) -std::vector<char> ConvertBooleans(std::vector<bool> bools) { +std::vector<char> ConvertBooleans(const std::vector<bool>& bools) { std::vector<char> ret; for (bool value : bools) { ret.push_back(value ? 1 : 0); @@ -55,6 +55,18 @@ return ret; } +std::array<std::vector<int>, 2> ConvertResolutions( + const std::vector<ipp_parser::mojom::ResolutionPtr>& resolutions) { + std::array<std::vector<int>, 2> ret; + for (auto& res : resolutions) { + if (res->xres <= 0 || res->yres <= 0) + continue; + ret[0].push_back(res->xres); + ret[1].push_back(res->yres); + } + return ret; +} + // Depending on |type|, returns the number of values associated with |attr|. size_t GetAttributeValuesSize(const ipp_parser::mojom::IppAttributePtr& attr) { const auto& attr_value = attr->value; @@ -74,6 +86,9 @@ case ValueType::OCTET: DCHECK(attr_value->is_octets()); return attr_value->get_octets().size(); + case ValueType::RESOLUTION: + DCHECK(attr_value->is_resolutions()); + return attr_value->get_resolutions().size(); default: break; @@ -277,6 +292,19 @@ } break; } + case ValueType::RESOLUTION: { + DCHECK(attribute->value->is_resolutions()); + std::array<std::vector<int>, 2> res = + ConvertResolutions(attribute->value->get_resolutions()); + auto* attr = ippAddResolutions( + ipp.get(), static_cast<ipp_tag_t>(attribute->group_tag), + attribute->name.c_str(), res[0].size(), IPP_RES_PER_INCH, + res[0].data(), res[1].data()); + if (!attr) { + return nullptr; + } + break; + } default: NOTREACHED() << "Unknown IPP attribute type found."; }
diff --git a/chrome/services/ipp_parser/public/cpp/ipp_converter.cc b/chrome/services/ipp_parser/public/cpp/ipp_converter.cc index 53b6283..438961c8 100644 --- a/chrome/services/ipp_parser/public/cpp/ipp_converter.cc +++ b/chrome/services/ipp_parser/public/cpp/ipp_converter.cc
@@ -110,6 +110,9 @@ case IPP_TAG_STRING: return ValueType::OCTET; + case IPP_TAG_RESOLUTION: + return ValueType::RESOLUTION; + default: break; } @@ -179,6 +182,28 @@ } return ret; } + +base::Optional<std::vector<ipp_parser::mojom::ResolutionPtr>> IppGetResolutions( + ipp_attribute_t* attr) { + const size_t count = ippGetCount(attr); + + std::vector<ipp_parser::mojom::ResolutionPtr> ret; + ret.reserve(count); + for (size_t i = 0; i < count; ++i) { + int xres = 0; + int yres = 0; + ipp_res_t units{}; + xres = ippGetResolution(attr, i, &yres, &units); + if (xres <= 0 || yres <= 0 || units != IPP_RES_PER_INCH) { + LOG(ERROR) << "bad resolution: " << xres << ", " << yres << ", " + << int(units); + return base::nullopt; + } + ret.push_back(ipp_parser::mojom::Resolution(xres, yres).Clone()); + } + return ret; +} + } // namespace base::Optional<std::vector<std::string>> ParseRequestLine( @@ -425,6 +450,14 @@ attrptr->value->set_octets(*vals); break; } + case ValueType::RESOLUTION: { + auto vals = IppGetResolutions(attr); + if (!vals.has_value()) { + return nullptr; + } + attrptr->value->set_resolutions(std::move(*vals)); + break; + } default: NOTREACHED(); }
diff --git a/chrome/services/ipp_parser/public/cpp/ipp_message_parser_fuzzer.dict b/chrome/services/ipp_parser/public/cpp/ipp_message_parser_fuzzer.dict index 8a212a7..7bc8317 100644 --- a/chrome/services/ipp_parser/public/cpp/ipp_message_parser_fuzzer.dict +++ b/chrome/services/ipp_parser/public/cpp/ipp_message_parser_fuzzer.dict
@@ -87,6 +87,7 @@ "printer-name" "printer-organization" "printer-organizational-unit" +"printer-resolution" "printer-resolution-default" "printer-resolution-supported" "pwg-raster-document-resolution-supported"
diff --git a/chrome/services/ipp_parser/public/mojom/ipp_parser.mojom b/chrome/services/ipp_parser/public/mojom/ipp_parser.mojom index c431a41..629d304 100644 --- a/chrome/services/ipp_parser/public/mojom/ipp_parser.mojom +++ b/chrome/services/ipp_parser/public/mojom/ipp_parser.mojom
@@ -14,6 +14,12 @@ INTEGER, STRING, OCTET, + RESOLUTION, +}; + +struct Resolution { + int32 xres; + int32 yres; }; union IppAttributeValue { @@ -26,6 +32,7 @@ array<int32> ints; array<string> strings; array<array<uint8>> octets; + array<Resolution> resolutions; }; struct IppAttribute {
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index c04f5f4..631c0e48 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -2085,6 +2085,7 @@ "../browser/accessibility/accessibility_extension_api_browsertest.cc", "../browser/apps/platform_apps/api/arc_apps_private/arc_apps_private_apitest.cc", "../browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_apitest_chromeos.cc", + "../browser/extensions/api/crash_report_private/crash_report_private_apitest.cc", "../browser/extensions/api/enterprise_device_attributes/enterprise_device_attributes_apitest.cc", "../browser/extensions/api/enterprise_networking_attributes/enterprise_networking_attributes_apitest.cc", "../browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_apitest_nss.cc",
diff --git a/chrome/test/data/webui/chromeos/crostini_installer_app_test.js b/chrome/test/data/webui/chromeos/crostini_installer_app_test.js index 617eea1..aafa899 100644 --- a/chrome/test/data/webui/chromeos/crostini_installer_app_test.js +++ b/chrome/test/data/webui/chromeos/crostini_installer_app_test.js
@@ -21,7 +21,7 @@ /** @override */ install(diskSize, username) { - this.methodCalled('install', [diskSize, username]); + this.methodCalled('install', [Number(diskSize), username]); } /** @override */ @@ -236,7 +236,7 @@ await clickInstall(); await fakeBrowserProxy.handler.whenCalled('install').then( ([diskSize, username]) => { - assertEquals(diskSize, diskTicks[defaultIndex].value); + assertEquals(Number(diskSize), diskTicks[defaultIndex].value); }); expectEquals(fakeBrowserProxy.handler.getCallCount('install'), 1); }); @@ -261,7 +261,7 @@ await clickInstall(); await fakeBrowserProxy.handler.whenCalled('install').then( ([diskSize, username]) => { - assertEquals(diskSize, diskTicks[1].value); + assertEquals(Number(diskSize), diskTicks[1].value); }); expectEquals(fakeBrowserProxy.handler.getCallCount('install'), 1); });
diff --git a/chrome/test/data/webui/chromeos/diagnostics/realtime_cpu_chart_test.js b/chrome/test/data/webui/chromeos/diagnostics/realtime_cpu_chart_test.js index 0f83ba812..4eb053d 100644 --- a/chrome/test/data/webui/chromeos/diagnostics/realtime_cpu_chart_test.js +++ b/chrome/test/data/webui/chromeos/diagnostics/realtime_cpu_chart_test.js
@@ -37,7 +37,24 @@ document.body.appendChild(realtimeCpuChartElement); realtimeCpuChartElement.user = user; realtimeCpuChartElement.system = system; - return flushTasks(); + + return refreshGraph(); + } + + /** + * Promise that resolves once at least one refresh interval has passed. + * @return {!Promise} + */ + function refreshGraph() { + assertTrue(!!realtimeCpuChartElement); + + return new Promise(resolve => { + setTimeout(() => { + flushTasks().then(() => { + resolve(); + }); + }, realtimeCpuChartElement.refreshInterval_); + }); } test('InitializeRealtimeCpuChart', () => { @@ -81,10 +98,10 @@ }); }); - // Flaky: https://crbug.com/1139523 - test.skip('InitializePlot', () => { + test('InitializePlot', () => { const user = 10; const system = 30; + return initializeRealtimeCpuChart(user, system).then(() => { // yAxis is drawn. assertTrue(!!realtimeCpuChartElement.$$('#gridLines>path.domain')); @@ -97,9 +114,9 @@ .length); // Plot lines are drawn. - assertTrue(!!realtimeCpuChartElement.$$('#plotGroup>path.user-line') + assertTrue(!!realtimeCpuChartElement.$$('#plotGroup>path.user-area') .getAttribute('d')); - assertTrue(!!realtimeCpuChartElement.$$('#plotGroup>path.system-line') + assertTrue(!!realtimeCpuChartElement.$$('#plotGroup>path.system-area') .getAttribute('d')); }); });
diff --git a/chrome/test/data/webui/nearby_share/nearby_confirmation_page_test.js b/chrome/test/data/webui/nearby_share/nearby_confirmation_page_test.js index cfa2596e..db3bea3 100644 --- a/chrome/test/data/webui/nearby_share/nearby_confirmation_page_test.js +++ b/chrome/test/data/webui/nearby_share/nearby_confirmation_page_test.js
@@ -89,7 +89,7 @@ test('renders share target name', function() { const name = 'Device Name'; confirmationPageElement.shareTarget = { - id: {high: 0, low: 0}, + id: {high: BigInt(0), low: BigInt(0)}, name, type: nearbyShare.mojom.ShareTargetType.kPhone, };
diff --git a/chrome/test/data/webui/nearby_share/nearby_discovery_page_test.js b/chrome/test/data/webui/nearby_share/nearby_discovery_page_test.js index f6b9a5e..678ae62c 100644 --- a/chrome/test/data/webui/nearby_share/nearby_discovery_page_test.js +++ b/chrome/test/data/webui/nearby_share/nearby_discovery_page_test.js
@@ -85,7 +85,7 @@ */ function createShareTarget(name) { return { - id: {high: 0, low: nextId++}, + id: {high: BigInt(0), low: BigInt(nextId++)}, name, type: nearbyShare.mojom.ShareTargetType.kPhone, };
diff --git a/chrome/test/data/webui/new_tab_page/most_visited_test.js b/chrome/test/data/webui/new_tab_page/most_visited_test.js index bb2a760..54c2d03 100644 --- a/chrome/test/data/webui/new_tab_page/most_visited_test.js +++ b/chrome/test/data/webui/new_tab_page/most_visited_test.js
@@ -61,7 +61,7 @@ source: i, titleSource: i, isQueryTile: false, - dataGenerationTime: {internalValue: 0}, + dataGenerationTime: {internalValue: BigInt(0)}, }; }); const tilesRendered = eventToPromise('dom-change', mostVisited.$.tiles); @@ -734,7 +734,7 @@ source: 0, titleSource: 0, isQueryTile: false, - dataGenerationTime: {internalValue: 0}, + dataGenerationTime: {internalValue: BigInt(0)}, }], visible: true, }); @@ -756,7 +756,7 @@ source: 0, titleSource: 0, isQueryTile: false, - dataGenerationTime: {internalValue: 0}, + dataGenerationTime: {internalValue: BigInt(0)}, }], visible: true, }); @@ -828,7 +828,7 @@ source: 0, titleSource: 0, isQueryTile: false, - dataGenerationTime: {internalValue: 0}, + dataGenerationTime: {internalValue: BigInt(0)}, }); assertDeepEquals(tiles[1], { title: 'b', @@ -837,7 +837,7 @@ source: 1, titleSource: 1, isQueryTile: false, - dataGenerationTime: {internalValue: 0}, + dataGenerationTime: {internalValue: BigInt(0)}, }); }); @@ -862,7 +862,7 @@ source: 0, titleSource: 0, isQueryTile: false, - dataGenerationTime: {internalValue: 0}, + dataGenerationTime: {internalValue: BigInt(0)}, }); });
diff --git a/chromeos/components/camera_app_ui/resources/js/mojo/chrome_helper.js b/chromeos/components/camera_app_ui/resources/js/mojo/chrome_helper.js index 937a2c05..5357641 100644 --- a/chromeos/components/camera_app_ui/resources/js/mojo/chrome_helper.js +++ b/chromeos/components/camera_app_ui/resources/js/mojo/chrome_helper.js
@@ -204,8 +204,12 @@ }); const idleManager = blink.mojom.IdleManager.getRemote(); - // Set a large threshold since we don't care about user idle. - const threshold = {microseconds: 86400000000}; + // Set a large threshold since we don't care about user idle. Note that + // ESLint does not yet seem to know about BigInt, so it complains about an + // uppercase "function" being used as something other than a constructor, + // and about BigInt not existing. + // eslint-disable-next-line new-cap, no-undef + const threshold = {microseconds: BigInt(86400000000)}; const {state} = await idleManager.addMonitor( threshold, monitorCallbackRouter.$.bindNewPipeAndPassRemote()); callback(state.screen === blink.mojom.ScreenIdleState.kLocked);
diff --git a/chromeos/components/camera_app_ui/resources/strings/camera_strings_id.xtb b/chromeos/components/camera_app_ui/resources/strings/camera_strings_id.xtb index 0ba719e9..5ffa051 100644 --- a/chromeos/components/camera_app_ui/resources/strings/camera_strings_id.xtb +++ b/chromeos/components/camera_app_ui/resources/strings/camera_strings_id.xtb
@@ -31,7 +31,7 @@ <translation id="3517926952904427380">Tidak dapat mengambil foto potret</translation> <translation id="3569311554794739032">Yakin ingin menghapus <ph name="FILE" />?</translation> <translation id="3810838688059735925">Video</translation> -<translation id="4000398125663085899">Foto dan video baru kini akan disimpan ke folder di aplikasi File: File saya > Kamera.</translation> +<translation id="4000398125663085899">Foto dan video baru kini akan disimpan ke folder di aplikasi File: File saya > Kamera</translation> <translation id="4118525110028899586">Jeda rekaman</translation> <translation id="4279490309300973883">Mencerminkan</translation> <translation id="4329152592498422850">Beralih ke mode mengambil foto persegi</translation>
diff --git a/chromeos/components/camera_app_ui/resources/strings/camera_strings_km.xtb b/chromeos/components/camera_app_ui/resources/strings/camera_strings_km.xtb index f08f1c9..ab3f259 100644 --- a/chromeos/components/camera_app_ui/resources/strings/camera_strings_km.xtb +++ b/chromeos/components/camera_app_ui/resources/strings/camera_strings_km.xtb
@@ -3,7 +3,7 @@ <translationbundle lang="km"> <translation id="1276998909102132017">រូបភាពក្នុងសាលរូបភាព</translation> <translation id="1430915738399379752">បោះពុម្ព</translation> -<translation id="1473110567575736769">កម្មវិធីកំណត់ពេល 3 វិនាទី</translation> +<translation id="1473110567575736769">កម្មវិធីកំណត់ម៉ោងរាប់ថយក្រោយ 3 វិនាទី</translation> <translation id="1620510694547887537">កាមេរ៉ា</translation> <translation id="1627744224761163218">4 x 4</translation> <translation id="1664224225747386870">មិនបានថតអ្វីសោះ</translation> @@ -64,7 +64,7 @@ <translation id="6965382102122355670">យល់ព្រម</translation> <translation id="698156982839284926">3 វិនាទី</translation> <translation id="712848772518857951">តើអ្នកពិតជាចង់លុបធាតុ <ph name="COUNT" /> មែនឬ?</translation> -<translation id="7134221860976209830">កម្មវិធីកំណត់ពេល 10 វិនាទី</translation> +<translation id="7134221860976209830">កម្មវិធីកំណត់ម៉ោងរាប់ថយក្រោយ 10 វិនាទី</translation> <translation id="7243947652761655814">កម្រិតច្បាស់នៃវីដេអូ</translation> <translation id="7337660886763914220">បញ្ហាប្រព័ន្ធឯកសារ។</translation> <translation id="7557677699350329807">ប្ដូរទៅកាមេរ៉ាបន្ទាប់</translation>
diff --git a/chromeos/components/telemetry_extension_ui/resources/trusted.js b/chromeos/components/telemetry_extension_ui/resources/trusted.js index e801301..0e532d2 100644 --- a/chromeos/components/telemetry_extension_ui/resources/trusted.js +++ b/chromeos/components/telemetry_extension_ui/resources/trusted.js
@@ -562,7 +562,7 @@ (message); this.assertNumberIsPositive(request.lengthSeconds); return await getOrCreateDiagnosticsService().runPrimeSearchRoutine( - request.lengthSeconds, request.maximumNumber); + request.lengthSeconds, BigInt(request.maximumNumber)); }; /** @@ -813,9 +813,10 @@ // At this point, closure compiler knows that the input is {!Object}. // Rule #2: convert objects like { value: X } to X, where X is either a - // number or a boolean. + // number, a bigint, or a boolean. if (Object.entries(input).length === 1 && (typeof input['value'] === 'number' || + typeof input['value'] === typeof BigInt(0) || typeof input['value'] === 'boolean')) { return input['value']; }
diff --git a/chromeos/components/telemetry_extension_ui/test/BUILD.gn b/chromeos/components/telemetry_extension_ui/test/BUILD.gn index 37ff224..56b424c46 100644 --- a/chromeos/components/telemetry_extension_ui/test/BUILD.gn +++ b/chromeos/components/telemetry_extension_ui/test/BUILD.gn
@@ -85,6 +85,8 @@ "untrusted_test_handlers.js", ] deps = [ "//chromeos/components/telemetry_extension_ui/resources:untrusted" ] - externs_list = - [ "//chromeos/components/web_applications/js2gtest_support.externs.js" ] + externs_list = [ + "$externs_path/pending.js", + "//chromeos/components/web_applications/js2gtest_support.externs.js", + ] }
diff --git a/chromeos/components/telemetry_extension_ui/test/untrusted_browsertest.js b/chromeos/components/telemetry_extension_ui/test/untrusted_browsertest.js index 94a8e02..783283ce 100644 --- a/chromeos/components/telemetry_extension_ui/test/untrusted_browsertest.js +++ b/chromeos/components/telemetry_extension_ui/test/untrusted_browsertest.js
@@ -548,13 +548,13 @@ ]); // Rounded down to the nearest 100MiB due to privacy requirement. - const availableSpace = - Math.floor(1125899906842624 / (100 * 1024 * 1024)) * (100 * 1024 * 1024); + const availableSpace = BigInt( + Math.floor(1125899906842624 / (100 * 1024 * 1024)) * (100 * 1024 * 1024)); assertDeepEquals(response, { batteryResult: { batteryInfo: { - cycleCount: 100000000000000, + cycleCount: BigInt(100000000000000), voltageNow: 1234567890.123456, vendor: 'Google', serialNumber: 'abcdef', @@ -567,23 +567,23 @@ technology: 'Li-ion', status: 'Charging', manufactureDate: '2020-07-30', - temperature: 7777777777777777, + temperature: BigInt(7777777777777777), } }, blockDeviceResult: { blockDeviceInfo: [{ path: '/dev/device1', - size: 5555555555555555, + size: BigInt(5555555555555555), type: 'NVMe', manufacturerId: 200, name: 'goog', serial: '4287654321', - bytesReadSinceLastBoot: 9000000000000000, - bytesWrittenSinceLastBoot: 8000000000000000, - readTimeSecondsSinceLastBoot: 7000000000000000, - writeTimeSecondsSinceLastBoot: 6666666666666666, - ioTimeSecondsSinceLastBoot: 1111111111111, - discardTimeSecondsSinceLastBoot: 77777777777777 + bytesReadSinceLastBoot: BigInt(9000000000000000), + bytesWrittenSinceLastBoot: BigInt(8000000000000000), + readTimeSecondsSinceLastBoot: BigInt(7000000000000000), + writeTimeSecondsSinceLastBoot: BigInt(6666666666666666), + ioTimeSecondsSinceLastBoot: BigInt(1111111111111), + discardTimeSecondsSinceLastBoot: BigInt(77777777777777) }] }, vpdResult: {vpdInfo: {skuNumber: 'sku-18'}}, @@ -599,17 +599,23 @@ maxClockSpeedKhz: 2147494759, scalingMaxFrequencyKhz: 1073764046, scalingCurrentFrequencyKhz: 536904245, - idleTimeMs: 0, + idleTimeMs: BigInt(0), cStates: [ - {name: 'C1', timeInStateSinceLastBootUs: 1125899906875957}, - {name: 'C2', timeInStateSinceLastBootUs: 1125899906877777} + { + name: 'C1', + timeInStateSinceLastBootUs: BigInt(1125899906875957) + }, + { + name: 'C2', + timeInStateSinceLastBootUs: BigInt(1125899906877777) + } ] }, { maxClockSpeedKhz: 1147494759, scalingMaxFrequencyKhz: 1063764046, scalingCurrentFrequencyKhz: 936904246, - idleTimeMs: 0, + idleTimeMs: BigInt(0), cStates: [] } ] @@ -629,7 +635,7 @@ totalMemoryKib: 2147483648, freeMemoryKib: 2147573648, availableMemoryKib: 2147571148, - pageFaultsSinceLastBoot: 2199971148 + pageFaultsSinceLastBoot: BigInt(2199971148), } }, backlightResult: { @@ -647,7 +653,7 @@ statefulPartitionResult: { partitionInfo: { availableSpace: availableSpace, - totalSpace: 1125900006842624, + totalSpace: BigInt(1125900006842624), } }, bluetoothResult: {
diff --git a/chromeos/profiles/atom.afdo.newest.txt b/chromeos/profiles/atom.afdo.newest.txt index 9cc6b96..066dc14 100644 --- a/chromeos/profiles/atom.afdo.newest.txt +++ b/chromeos/profiles/atom.afdo.newest.txt
@@ -1 +1 @@ -chromeos-chrome-amd64-atom-88-4280.20-1603104419-benchmark-88.0.4296.0-r1-redacted.afdo.xz +chromeos-chrome-amd64-atom-88-4280.20-1603104419-benchmark-88.0.4296.6-r1-redacted.afdo.xz
diff --git a/chromeos/profiles/bigcore.afdo.newest.txt b/chromeos/profiles/bigcore.afdo.newest.txt index 9098e79f..de229126 100644 --- a/chromeos/profiles/bigcore.afdo.newest.txt +++ b/chromeos/profiles/bigcore.afdo.newest.txt
@@ -1 +1 @@ -chromeos-chrome-amd64-bigcore-88-4280.20-1603100572-benchmark-88.0.4296.0-r1-redacted.afdo.xz +chromeos-chrome-amd64-bigcore-88-4280.20-1603100572-benchmark-88.0.4296.6-r1-redacted.afdo.xz
diff --git a/chromeos/strings/chromeos_strings_fr.xtb b/chromeos/strings/chromeos_strings_fr.xtb index 739044c2..61788fc 100644 --- a/chromeos/strings/chromeos_strings_fr.xtb +++ b/chromeos/strings/chromeos_strings_fr.xtb
@@ -3,6 +3,7 @@ <translationbundle lang="fr"> <translation id="1018656279737460067">Annulé</translation> <translation id="1195447618553298278">Erreur inconnue</translation> +<translation id="1330426557709298164">JPG</translation> <translation id="1413240736185167732">Échec – Problème au niveau du filtre</translation> <translation id="1468664791493211953">Offres</translation> <translation id="1478594628797167447">Scanner</translation> @@ -46,6 +47,7 @@ <translation id="4227825898293920515">Le mot de passe arrive à expiration dans <ph name="TIME" /></translation> <translation id="4238516577297848345">Aucune tâche d'impression en cours</translation> <translation id="4297501883039923494">Tâche suspendue - Erreur inconnue</translation> +<translation id="4382484599443659549">PDF</translation> <translation id="4429881212383817840">Le ticket Kerberos arrive bientôt à expiration</translation> <translation id="445059817448385655">Ancien mot de passe</translation> <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> sur <ph name="TOTAL_PAGE_NUMBER" />. Appuyez sur Entrée pour annuler la tâche d'impression.</translation> @@ -73,6 +75,7 @@ <translation id="6058625436358447366">Pour terminer, saisissez votre ancien mot de passe et le nouveau</translation> <translation id="6106186594183574873">Pour terminer, saisissez votre ancien mot de passe</translation> <translation id="6146993107019042706">Pour terminer, saisissez votre nouveau mot de passe</translation> +<translation id="6147514244879357420">PNG</translation> <translation id="636850387210749493">Inscription d'entreprise</translation> <translation id="649050271426829538">Tâche suspendue - Bourrage papier</translation> <translation id="6517239166834772319">Explorer</translation>
diff --git a/chromeos/strings/chromeos_strings_gl.xtb b/chromeos/strings/chromeos_strings_gl.xtb index 924d2934c..0c12846 100644 --- a/chromeos/strings/chromeos_strings_gl.xtb +++ b/chromeos/strings/chromeos_strings_gl.xtb
@@ -3,6 +3,7 @@ <translationbundle lang="gl"> <translation id="1018656279737460067">Cancelados</translation> <translation id="1195447618553298278">Erro descoñecido.</translation> +<translation id="1330426557709298164">JPG</translation> <translation id="1413240736185167732">Produciuse un erro: fallo no filtro</translation> <translation id="1468664791493211953">Ofertas</translation> <translation id="1478594628797167447">Escáner</translation> @@ -46,6 +47,7 @@ <translation id="4227825898293920515">O contrasinal caduca en <ph name="TIME" /></translation> <translation id="4238516577297848345">Non hai ningunha tarefa de impresión en curso</translation> <translation id="4297501883039923494">Detívose (produciuse un erro descoñecido)</translation> +<translation id="4382484599443659549">PDF</translation> <translation id="4429881212383817840">O tícket de Kerberos caduca pronto</translation> <translation id="445059817448385655">Contrasinal antigo</translation> <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" /> de <ph name="TOTAL_PAGE_NUMBER" />. Para cancelar o traballo de impresión, preme Intro.</translation> @@ -73,6 +75,7 @@ <translation id="6058625436358447366">Para finalizar, introduce o teu antigo contrasinal e o novo</translation> <translation id="6106186594183574873">Para finalizar, introduce o teu antigo contrasinal</translation> <translation id="6146993107019042706">Para finalizar, introduce o teu novo contrasinal</translation> +<translation id="6147514244879357420">PNG</translation> <translation id="636850387210749493">Inscrición corporativa</translation> <translation id="649050271426829538">Detívose (atasco de papel)</translation> <translation id="6517239166834772319">Explorar</translation> @@ -82,6 +85,7 @@ <translation id="6747215703636344499">Detívose (a saída está chea)</translation> <translation id="7162487448488904999">Galería</translation> <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation> +<translation id="7359657277149375382">Tipo de ficheiro</translation> <translation id="7561454561030345039">O teu administrador xestiona esta acción</translation> <translation id="7658239707568436148">Cancelar</translation> <translation id="7690294790491645610">Confirmar contrasinal novo</translation>
diff --git a/chromeos/strings/chromeos_strings_gu.xtb b/chromeos/strings/chromeos_strings_gu.xtb index b6d1a28..ba18245 100644 --- a/chromeos/strings/chromeos_strings_gu.xtb +++ b/chromeos/strings/chromeos_strings_gu.xtb
@@ -3,6 +3,7 @@ <translationbundle lang="gu"> <translation id="1018656279737460067">રદ કરેલા</translation> <translation id="1195447618553298278">અજ્ઞાત ભૂલ.</translation> +<translation id="1330426557709298164">JPG</translation> <translation id="1413240736185167732">નિષ્ફળ થયું - ફિલ્ટર નિષ્ફળ થયું</translation> <translation id="1468664791493211953">ઑફરો</translation> <translation id="1478594628797167447">સ્કૅનર</translation> @@ -46,6 +47,7 @@ <translation id="4227825898293920515"><ph name="TIME" />માં પાસવર્ડની સમયસીમા સમાપ્ત થાય છે</translation> <translation id="4238516577297848345">કોઈ પ્રિન્ટ કામ ચાલુ નથી</translation> <translation id="4297501883039923494">બંધ - અજાણી ભૂલ</translation> +<translation id="4382484599443659549">PDF</translation> <translation id="4429881212383817840">ટૂંક સમયમાં Kerberos ટિકિટની સમયસીમા સમાપ્ત થશે</translation> <translation id="445059817448385655">જૂનો પાસવર્ડ</translation> <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="TOTAL_PAGE_NUMBER" />માંથી <ph name="PRINTED_PAGE_NUMBER" />. પ્રિન્ટ કરવાનું અટકાવવા માટે, Enter કી દબાવો.</translation> @@ -72,6 +74,7 @@ <translation id="6058625436358447366">સમાપ્ત કરવા માટે, તમારા જૂના અને નવા પાસવર્ડ દાખલ કરો</translation> <translation id="6106186594183574873">સમાપ્ત કરવા માટે, તમારો જૂનો પાસવર્ડ દાખલ કરો</translation> <translation id="6146993107019042706">સમાપ્ત કરવા માટે, તમારો નવો પાસવર્ડ દાખલ કરો</translation> +<translation id="6147514244879357420">PNG</translation> <translation id="636850387210749493">સંગઠન નોંધણી</translation> <translation id="649050271426829538">બંધ - કાગળ ફસાયો</translation> <translation id="6517239166834772319">શોધખોળ કરો</translation>
diff --git a/chromeos/strings/chromeos_strings_iw.xtb b/chromeos/strings/chromeos_strings_iw.xtb index 319d8be..6922e12 100644 --- a/chromeos/strings/chromeos_strings_iw.xtb +++ b/chromeos/strings/chromeos_strings_iw.xtb
@@ -70,7 +70,7 @@ <translation id="5457599981699367932">גלוש כאורח</translation> <translation id="54609108002486618">מנוהל</translation> <translation id="5832805196449965646">הוספת משתמש</translation> -<translation id="5895138241574237353">הפעל מחדש</translation> +<translation id="5895138241574237353">הפעלה מחדש</translation> <translation id="6048107060512778456">נכשלה – חסימת נייר</translation> <translation id="6058625436358447366">כדי לסיים יש להזין את הסיסמה הישנה והחדשה</translation> <translation id="6106186594183574873">כדי לסיים יש להזין את הסיסמה הישנה</translation> @@ -94,7 +94,7 @@ <translation id="8208861521865154048">הטבות</translation> <translation id="8294431847097064396">מקור</translation> <translation id="8347227221149377169">משימות הדפסה</translation> -<translation id="8352772353338965963">הוסף חשבון לכניסה עם מספר חשבונות. כל החשבונות שאליהם נכנסת נגישים ללא סיסמה, לכן יש להשתמש בתכונה זו עם חשבונות אמינים בלבד.</translation> +<translation id="8352772353338965963">יש להוסיף חשבון לכניסה עם מספר חשבונות. כל החשבונות שאליהם נכנסת נגישים ללא סיסמה, לכן יש להשתמש בתכונה זו עם חשבונות אמינים בלבד.</translation> <translation id="8668052347555487755">מצב הצבעים</translation> <translation id="8701136875688985581">משתמש זה מנוהל על ידי <ph name="ENROLLMENT_DOMAIN" />. הדומיין עשוי לנהל מרחוק את ההגדרות ולעקוב אחרי פעילות המשתמש.</translation> <translation id="871560550817059752">נכשלה – הדיו נגמר</translation>
diff --git a/chromeos/strings/chromeos_strings_pa.xtb b/chromeos/strings/chromeos_strings_pa.xtb index d5c73df..dc608048 100644 --- a/chromeos/strings/chromeos_strings_pa.xtb +++ b/chromeos/strings/chromeos_strings_pa.xtb
@@ -3,6 +3,7 @@ <translationbundle lang="pa"> <translation id="1018656279737460067">ਰੱਦ ਕੀਤਾ</translation> <translation id="1195447618553298278">ਅਗਿਆਤ ਗੜਬੜ।</translation> +<translation id="1330426557709298164">JPG</translation> <translation id="1413240736185167732">ਅਸਫਲ ਰਹੀ - ਫਿਲਟਰ ਅਸਫਲ ਰਿਹਾ</translation> <translation id="1468664791493211953">ਪੇਸ਼ਕਸ਼ਾਂ</translation> <translation id="1478594628797167447">ਸਕੈਨਰ</translation> @@ -45,6 +46,7 @@ <translation id="4227825898293920515">ਪਾਸਵਰਡ ਦੀ ਮਿਆਦ <ph name="TIME" /> ਵਿੱਚ ਮੁੱਕ ਜਾਵੇਗੀ</translation> <translation id="4238516577297848345">ਕੋਈ ਪ੍ਰਿੰਟ ਜੌਬ ਪ੍ਰਕਿਰਿਆ-ਅਧੀਨ ਨਹੀਂ ਹੈ</translation> <translation id="4297501883039923494">ਬੰਦ ਹੋ ਗਿਆ - ਅਗਿਆਤ ਗੜਬੜ</translation> +<translation id="4382484599443659549">PDF</translation> <translation id="4429881212383817840">Kerberos ਟਿਕਟ ਦੀ ਮਿਆਦ ਜਲਦ ਹੀ ਮੁੱਕ ਜਾਵੇਗੀ</translation> <translation id="445059817448385655">ਪੁਰਾਣਾ ਪਾਸਵਰਡ</translation> <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="TOTAL_PAGE_NUMBER" /> ਵਿੱਚੋਂ <ph name="PRINTED_PAGE_NUMBER" />। ਪ੍ਰਿੰਟ ਜੌਬ ਨੂੰ ਰੱਦ ਕਰਨ ਲਈ Enter ਦਬਾਓ।</translation> @@ -71,6 +73,7 @@ <translation id="6058625436358447366">ਪੂਰਾ ਕਰਨ ਲਈ, ਆਪਣਾ ਪੁਰਾਣਾ ਅਤੇ ਨਵਾਂ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ</translation> <translation id="6106186594183574873">ਪੂਰਾ ਕਰਨ ਲਈ, ਆਪਣਾ ਪੁਰਾਣਾ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ</translation> <translation id="6146993107019042706">ਪੂਰਾ ਕਰਨ ਲਈ, ਆਪਣਾ ਨਵਾਂ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ</translation> +<translation id="6147514244879357420">PNG</translation> <translation id="636850387210749493">ਐਂਟਰਪ੍ਰਾਈਜ਼ ਐਨਰੌਲਮੈਂਟ</translation> <translation id="649050271426829538">ਬੰਦ ਹੋ ਗਿਆ - ਕਾਗਜ਼ ਫਸ ਗਿਆ ਹੈ</translation> <translation id="6517239166834772319">ਪੜਚੋਲ ਕਰੋ</translation> @@ -80,6 +83,7 @@ <translation id="6747215703636344499">ਬੰਦ ਹੋ ਗਿਆ - ਆਊਟਪੁੱਟ ਭਰ ਗਿਆ ਹੈ</translation> <translation id="7162487448488904999">ਗੈਲਰੀ</translation> <translation id="7274587244503383581"><ph name="PRINTED_PAGES_NUMBER" />/<ph name="TOTAL_PAGES_NUMBER" /></translation> +<translation id="7359657277149375382">ਫ਼ਾਈਲ ਦੀ ਕਿਸਮ</translation> <translation id="7561454561030345039">ਤੁਹਾਡਾ ਪ੍ਰਸ਼ਾਸਕ ਇਸ ਕਾਰਵਾਈ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਦਾ ਹੈ</translation> <translation id="7658239707568436148">ਰੱਦ ਕਰੋ</translation> <translation id="7690294790491645610">ਨਵੇਂ ਪਾਸਵਰਡ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</translation>
diff --git a/chromeos/strings/chromeos_strings_vi.xtb b/chromeos/strings/chromeos_strings_vi.xtb index b6df0b3d..b6878a3 100644 --- a/chromeos/strings/chromeos_strings_vi.xtb +++ b/chromeos/strings/chromeos_strings_vi.xtb
@@ -48,7 +48,7 @@ <translation id="4238516577297848345">Không có lệnh in nào đang xử lý</translation> <translation id="4297501883039923494">Đã dừng – Lỗi không xác định</translation> <translation id="4382484599443659549">PDF</translation> -<translation id="4429881212383817840">Phiếu Kerberos sẽ sớm hết hạn</translation> +<translation id="4429881212383817840">Vé Kerberos sẽ sớm hết hạn</translation> <translation id="445059817448385655">Mật khẩu cũ</translation> <translation id="4627232916386272576"><ph name="DOCUMENT_TITLE" />, <ph name="PRINTER_NAME" />, <ph name="CREATION_TIME" />, <ph name="PRINTED_PAGE_NUMBER" />/<ph name="TOTAL_PAGE_NUMBER" />. Hãy nhấn để hủy lệnh in.</translation> <translation id="467510802200863975">Mật khẩu không khớp</translation>
diff --git a/components/arc/DIR_METADATA b/components/arc/DIR_METADATA new file mode 100644 index 0000000..e568bf01 --- /dev/null +++ b/components/arc/DIR_METADATA
@@ -0,0 +1,3 @@ +monorail { + component: "Platform>Apps>ARC" +}
diff --git a/components/arc/OWNERS b/components/arc/OWNERS index 30b8279..f054fde 100644 --- a/components/arc/OWNERS +++ b/components/arc/OWNERS
@@ -2,5 +2,3 @@ jhorwich@chromium.org yhanada@chromium.org yusukes@chromium.org - -# COMPONENT: Platform>Apps>ARC
diff --git a/components/arc/ime/DIR_METADATA b/components/arc/ime/DIR_METADATA new file mode 100644 index 0000000..e40e2774 --- /dev/null +++ b/components/arc/ime/DIR_METADATA
@@ -0,0 +1,3 @@ +monorail { + component: "UI>Input>Text>IME" +}
diff --git a/components/arc/ime/OWNERS b/components/arc/ime/OWNERS index 537633a..b7c37fd 100644 --- a/components/arc/ime/OWNERS +++ b/components/arc/ime/OWNERS
@@ -1,5 +1,3 @@ kinaba@chromium.org tetsui@chromium.org yhanada@chromium.org - -# COMPONENT: UI>Input>Text>IME
diff --git a/components/arc/intent_helper/DIR_METADATA b/components/arc/intent_helper/DIR_METADATA new file mode 100644 index 0000000..cf53bee --- /dev/null +++ b/components/arc/intent_helper/DIR_METADATA
@@ -0,0 +1,3 @@ +monorail { + component: "Platform>Apps>Foundation" +}
diff --git a/components/arc/intent_helper/OWNERS b/components/arc/intent_helper/OWNERS index d2e1c35..aaa0a699 100644 --- a/components/arc/intent_helper/OWNERS +++ b/components/arc/intent_helper/OWNERS
@@ -3,4 +3,3 @@ per-file *_mojom_traits*.*=set noparent per-file *_mojom_traits*.*=file://ipc/SECURITY_OWNERS per-file *_mojom_traits*.*=file://components/arc/mojom/ARC_SECURITY_OWNERS -# COMPONENT: Platform>Apps>Foundation
diff --git a/components/arc/media_session/DIR_METADATA b/components/arc/media_session/DIR_METADATA new file mode 100644 index 0000000..49ac631 --- /dev/null +++ b/components/arc/media_session/DIR_METADATA
@@ -0,0 +1,3 @@ +monorail { + component: "Internals>Media>Session" +}
diff --git a/components/arc/media_session/OWNERS b/components/arc/media_session/OWNERS index 162fbc21..593ec6f 100644 --- a/components/arc/media_session/OWNERS +++ b/components/arc/media_session/OWNERS
@@ -1,3 +1 @@ file://services/media_session/OWNERS - -# COMPONENT: Internals>Media>Session
diff --git a/components/arc/net/DIR_METADATA b/components/arc/net/DIR_METADATA new file mode 100644 index 0000000..e568bf01 --- /dev/null +++ b/components/arc/net/DIR_METADATA
@@ -0,0 +1,3 @@ +monorail { + component: "Platform>Apps>ARC" +}
diff --git a/components/arc/net/OWNERS b/components/arc/net/OWNERS index 522f9d4..3b02b06 100644 --- a/components/arc/net/OWNERS +++ b/components/arc/net/OWNERS
@@ -1,3 +1 @@ hugobenichi@google.com - -# COMPONENT: Platform>Apps>ARC
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fr.xtb index 5d4bfc1c..ffa9f23 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_fr.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fr.xtb
@@ -38,6 +38,7 @@ <translation id="1994173015038366702">URL du site</translation> <translation id="2025115093177348061">Réalité augmentée</translation> <translation id="2030769033451695672">Appuyez pour revenir à l'adresse <ph name="URL_OF_THE_CURRENT_TAB" /></translation> +<translation id="2054665754582400095">Votre présence</translation> <translation id="2079545284768500474">Annuler</translation> <translation id="2091887806945687916">Son</translation> <translation id="2107397443965016585">Demander avant d'autoriser les sites à lire les contenus protégés (recommandé)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_gl.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_gl.xtb index 4dccc47..3d5fb96 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_gl.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_gl.xtb
@@ -38,6 +38,7 @@ <translation id="1994173015038366702">URL do sitio</translation> <translation id="2025115093177348061">Realidade aumentada</translation> <translation id="2030769033451695672">Toca para volver a <ph name="URL_OF_THE_CURRENT_TAB" /></translation> +<translation id="2054665754582400095">A túa presenza</translation> <translation id="2079545284768500474">Desfacer</translation> <translation id="2091887806945687916">Son</translation> <translation id="2107397443965016585">Preguntar antes de permitir que os sitios reproduzan contido protexido (recomendado)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb index 8c5c5d4..46bbc9d 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb
@@ -38,6 +38,7 @@ <translation id="1994173015038366702">સાઈટ URL</translation> <translation id="2025115093177348061">ઑગ્મેન્ટેડ રિયાલિટી</translation> <translation id="2030769033451695672"><ph name="URL_OF_THE_CURRENT_TAB" /> પર પરત ફરવા માટે, ટૅપ કરો</translation> +<translation id="2054665754582400095">તમારી હાજરી</translation> <translation id="2079545284768500474">છેલ્લો ફેરફાર રદ કરો</translation> <translation id="2091887806945687916">ધ્વનિ</translation> <translation id="2107397443965016585">સાઇટને સંરક્ષિત કન્ટેન્ટ ચલાવવાની મંજૂરી આપતા પહેલાંં પૂછો (સુઝાવ આપેલ)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb index 8692dac1..b161475 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb
@@ -91,7 +91,7 @@ <translation id="3386292677130313581">יש לשאול לפני שמאפשרים לאתרים לדעת מה המיקום שלך (מומלץ)</translation> <translation id="3538390592868664640">חסימה של יצירת מפה בתלת ממד של הסביבה שלך או של מעקב אחר מיקום המצלמה על ידי אתרים.</translation> <translation id="3586500876634962664">שימוש במצלמה ובמיקרופון</translation> -<translation id="3587482841069643663">הכל</translation> +<translation id="3587482841069643663">הכול</translation> <translation id="358794129225322306">מתן הרשאה לאתר להוריד קבצים מרובים באופן אוטומטי.</translation> <translation id="3594780231884063836">השתקת הסרטון</translation> <translation id="3596414637720633074">חסימת קובצי cookie של צד שלישי במצב אנונימי</translation> @@ -141,7 +141,7 @@ <translation id="528192093759286357">כדי לצאת ממסך מלא, גרור מלמעלה וגע בלחצן 'הקודם'.</translation> <translation id="5300589172476337783">הצגה</translation> <translation id="5301954838959518834">בסדר, הבנתי</translation> -<translation id="5313967007315987356">הוסף אתר</translation> +<translation id="5313967007315987356">הוספת אתר</translation> <translation id="5317780077021120954">שמור</translation> <translation id="5335288049665977812">אפשר לאתרים להריץ JavaScript (מומלץ)</translation> <translation id="534295439873310000">מכשירי NFC</translation> @@ -204,7 +204,7 @@ <translation id="6697925417670533197">הורדות פעילות</translation> <translation id="6746124502594467657">העברה למטה</translation> <translation id="6766622839693428701">החלקה מטה סוגרת.</translation> -<translation id="6790428901817661496">הפעל</translation> +<translation id="6790428901817661496">הפעלה</translation> <translation id="6818926723028410516">בחירת פריטים</translation> <translation id="6864395892908308021">NFC לא נתמך במכשיר הזה</translation> <translation id="6910211073230771657">נמחק</translation> @@ -221,7 +221,7 @@ <translation id="7128222689758636196">יופעלו במנוע החיפוש הנוכחי</translation> <translation id="7141896414559753902">חסימה של חלונות קופצים והפניות אוטומטיות באתרים (מומלץ)</translation> <translation id="7176368934862295254"><ph name="KILOBYTES" /> KB</translation> -<translation id="723171743924126238">בחר תמונות</translation> +<translation id="723171743924126238">בחירת תמונות</translation> <translation id="7243308994586599757">אפשרויות הזמינות באזור החלק התחתון של המסך</translation> <translation id="7250468141469952378">נבחרו <ph name="ITEM_COUNT" /></translation> <translation id="7260727271532453612">פועלות: <ph name="PERMISSION_1" /> וגם <ph name="PERMISSION_2" /></translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_pa.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_pa.xtb index 9cc0b10c..8d58832 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_pa.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_pa.xtb
@@ -38,6 +38,7 @@ <translation id="1994173015038366702">ਸਾਈਟ URL</translation> <translation id="2025115093177348061">ਆਗਮੈਂਟਿਡ ਰਿਐਲਿਟੀ</translation> <translation id="2030769033451695672"><ph name="URL_OF_THE_CURRENT_TAB" /> 'ਤੇ ਵਾਪਸ ਜਾਣ ਲਈ ਟੈਪ ਕਰੋ</translation> +<translation id="2054665754582400095">ਤੁਹਾਡੀ ਮੌਜੂਦਗੀ</translation> <translation id="2079545284768500474">ਅਣਕੀਤਾ ਕਰੋ</translation> <translation id="2091887806945687916">ਧੁਨੀ</translation> <translation id="2107397443965016585">ਸਾਈਟਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕੀਤੀ ਸਮੱਗਰੀ ਚਲਾਉਣ ਦੇਣ ਤੋਂ ਪਹਿਲਾਂ ਪੁੱਛੋ (ਸਿਫ਼ਾਰਸ਼ੀ)</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-HK.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-HK.xtb index d83dff3f..2ca5c82 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_zh-HK.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_zh-HK.xtb
@@ -38,7 +38,7 @@ <translation id="1994173015038366702">網站網址</translation> <translation id="2025115093177348061">擴張實境</translation> <translation id="2030769033451695672">輕按即可返回 <ph name="URL_OF_THE_CURRENT_TAB" /></translation> -<translation id="2054665754582400095">你的使用狀態</translation> +<translation id="2054665754582400095">您的狀態</translation> <translation id="2079545284768500474">復原</translation> <translation id="2091887806945687916">音效</translation> <translation id="2107397443965016585">網站播放受保護內容前先詢問您 (建議)</translation>
diff --git a/components/feature_engagement/public/feature_constants.cc b/components/feature_engagement/public/feature_constants.cc index fdb77939..839e15d 100644 --- a/components/feature_engagement/public/feature_constants.cc +++ b/components/feature_engagement/public/feature_constants.cc
@@ -122,7 +122,7 @@ const base::Feature kIPHChromeReengagementNotification3Feature{ "IPH_ChromeReengagementNotification3", base::FEATURE_DISABLED_BY_DEFAULT}; const base::Feature kIPHPwaInstallAvailableFeature{ - "IPH_PwaInstallAvailable", base::FEATURE_ENABLED_BY_DEFAULT}; + "IPH_PwaInstallAvailable", base::FEATURE_DISABLED_BY_DEFAULT}; #endif // defined(OS_ANDROID) #if defined(OS_IOS)
diff --git a/components/media_message_center/media_notification_item.h b/components/media_message_center/media_notification_item.h index 9eeff97..6a939cc 100644 --- a/components/media_message_center/media_notification_item.h +++ b/components/media_message_center/media_notification_item.h
@@ -66,7 +66,7 @@ virtual void Dismiss() = 0; // Returns the type of source. - virtual SourceType SourceType() = 0; + virtual media_message_center::SourceType SourceType() = 0; }; } // namespace media_message_center
diff --git a/components/metrics/metrics_pref_names.cc b/components/metrics/metrics_pref_names.cc index 5109925a..4a037ed5 100644 --- a/components/metrics/metrics_pref_names.cc +++ b/components/metrics/metrics_pref_names.cc
@@ -118,16 +118,6 @@ const char kStabilityCrashCountDueToGmsCoreUpdate[] = "user_experience_metrics.stability.crash_count_due_to_gms_core_update"; -// Number of times the initial stability log upload was deferred to the next -// startup. -const char kStabilityDeferredCount[] = - "user_experience_metrics.stability.deferred_count"; - -// Number of times stability data was discarded. This is accumulated since the -// last report, even across versions. -const char kStabilityDiscardCount[] = - "user_experience_metrics.stability.discard_count"; - // Number of times the browser has been run under a debugger. const char kStabilityDebuggerPresent[] = "user_experience_metrics.stability.debugger_present"; @@ -233,11 +223,6 @@ const char kStabilitySystemCrashCount[] = "user_experience_metrics.stability.system_crash_count"; -// Number of times the version number stored in prefs did not match the -// serialized system profile version number. -const char kStabilityVersionMismatchCount[] = - "user_experience_metrics.stability.version_mismatch_count"; - // The keys below are strictly increasing counters over the lifetime of // a chrome installation. They are (optionally) sent up to the uninstall // survey in the event of uninstallation.
diff --git a/components/metrics/metrics_pref_names.h b/components/metrics/metrics_pref_names.h index bbaa4a3..2e4719a 100644 --- a/components/metrics/metrics_pref_names.h +++ b/components/metrics/metrics_pref_names.h
@@ -42,8 +42,6 @@ extern const char kStabilityCrashCountDueToGmsCoreUpdate[]; extern const char kStabilityDebuggerNotPresent[]; extern const char kStabilityDebuggerPresent[]; -extern const char kStabilityDeferredCount[]; -extern const char kStabilityDiscardCount[]; extern const char kStabilityExitedCleanly[]; extern const char kStabilityExtensionRendererCrashCount[]; extern const char kStabilityExtensionRendererFailedLaunchCount[]; @@ -65,7 +63,6 @@ extern const char kStabilityStatsBuildTime[]; extern const char kStabilityStatsVersion[]; extern const char kStabilitySystemCrashCount[]; -extern const char kStabilityVersionMismatchCount[]; // Preferences for generating metrics at uninstall time. extern const char kUninstallLaunchCount[];
diff --git a/components/metrics/metrics_service.cc b/components/metrics/metrics_service.cc index a63c847..a746310 100644 --- a/components/metrics/metrics_service.cc +++ b/components/metrics/metrics_service.cc
@@ -509,8 +509,6 @@ // provided UMA is enabled. if (state_manager_->IsMetricsReportingEnabled()) { has_initial_stability_log = PrepareInitialStabilityLog(previous_version); - if (!has_initial_stability_log) - provider.LogStabilityLogDeferred(); } } @@ -520,10 +518,8 @@ // number of different edge cases, such as if the last version crashed before // it could save off a system profile or if UMA reporting is disabled (which // normally results in stats being accumulated). - if (version_changed && !has_initial_stability_log) { + if (version_changed && !has_initial_stability_log) ClearSavedStabilityMetrics(); - provider.LogStabilityDataDiscarded(); - } // If the version changed, the system profile is obsolete and needs to be // cleared. This is to avoid the stability data misattribution that could @@ -754,8 +750,6 @@ local_state_, &system_profile_app_version)) { return false; } - if (system_profile_app_version != prefs_previous_version) - StabilityMetricsProvider(local_state_).LogStabilityVersionMismatch(); log_manager_.PauseCurrentLog(); log_manager_.BeginLoggingWithLog(std::move(initial_stability_log));
diff --git a/components/metrics/metrics_service.h b/components/metrics/metrics_service.h index b42bb61..5e28d30 100644 --- a/components/metrics/metrics_service.h +++ b/components/metrics/metrics_service.h
@@ -182,6 +182,10 @@ // Test hook to safely stage the current log in the log store. bool StageCurrentLogForTest(); + DelegatingProvider* GetDelegatingProviderForTesting() { + return &delegating_provider_; + } + protected: // Sets the persistent system profile. Virtual for tests. virtual void SetPersistentSystemProfile(const std::string& serialized_proto,
diff --git a/components/metrics/stability_metrics_provider.cc b/components/metrics/stability_metrics_provider.cc index ed9c7ee..c9ade4e 100644 --- a/components/metrics/stability_metrics_provider.cc +++ b/components/metrics/stability_metrics_provider.cc
@@ -66,9 +66,6 @@ 0); registry->RegisterIntegerPref(prefs::kStabilityDebuggerPresent, 0); registry->RegisterIntegerPref(prefs::kStabilityDebuggerNotPresent, 0); - registry->RegisterIntegerPref(prefs::kStabilityDeferredCount, 0); - registry->RegisterIntegerPref(prefs::kStabilityDiscardCount, 0); - registry->RegisterIntegerPref(prefs::kStabilityVersionMismatchCount, 0); registry->RegisterIntegerPref(prefs::kStabilityFileMetricsUnsentFilesCount, 0); registry->RegisterIntegerPref(prefs::kStabilityFileMetricsUnsentSamplesCount, @@ -101,10 +98,6 @@ local_state_->SetInteger(prefs::kStabilityDebuggerNotPresent, 0); local_state_->SetInteger(prefs::kStabilityLaunchCount, 0); local_state_->SetBoolean(prefs::kStabilitySessionEndCompleted, true); - local_state_->SetInteger(prefs::kStabilityDeferredCount, 0); - // Note: kStabilityDiscardCount is not cleared as its intent is to measure - // the number of times data is discarded, even across versions. - local_state_->SetInteger(prefs::kStabilityVersionMismatchCount, 0); // The 0 is a valid value for the below prefs, clears pref instead // of setting to default value. @@ -154,25 +147,6 @@ if (GetAndClearPrefValue(prefs::kStabilityDebuggerNotPresent, &pref_value)) stability->set_debugger_not_present_count(pref_value); - // Note: only logging the following histograms for non-zero values. - if (GetAndClearPrefValue(prefs::kStabilityDeferredCount, &pref_value)) { - UMA_STABILITY_HISTOGRAM_COUNTS_100( - "Stability.Internals.InitialStabilityLogDeferredCount", pref_value); - } - - // Note: only logging the following histograms for non-zero values. - if (GetAndClearPrefValue(prefs::kStabilityDiscardCount, &pref_value)) { - UMA_STABILITY_HISTOGRAM_COUNTS_100("Stability.Internals.DataDiscardCount", - pref_value); - } - - // Note: only logging the following histograms for non-zero values. - if (GetAndClearPrefValue(prefs::kStabilityVersionMismatchCount, - &pref_value)) { - UMA_STABILITY_HISTOGRAM_COUNTS_100( - "Stability.Internals.VersionMismatchCount", pref_value); - } - if (local_state_->HasPrefPath(prefs::kStabilityFileMetricsUnsentFilesCount)) { UMA_STABILITY_HISTOGRAM_COUNTS_100( "Stability.Internals.FileMetricsProvider.BrowserMetrics." @@ -246,22 +220,10 @@ #endif } -void StabilityMetricsProvider::LogStabilityLogDeferred() { - IncrementPrefValue(prefs::kStabilityDeferredCount); -} - -void StabilityMetricsProvider::LogStabilityDataDiscarded() { - IncrementPrefValue(prefs::kStabilityDiscardCount); -} - void StabilityMetricsProvider::LogLaunch() { IncrementPrefValue(prefs::kStabilityLaunchCount); } -void StabilityMetricsProvider::LogStabilityVersionMismatch() { - IncrementPrefValue(prefs::kStabilityVersionMismatchCount); -} - #if defined(OS_WIN) bool StabilityMetricsProvider::IsUncleanSystemSession( base::Time last_live_timestamp) {
diff --git a/components/metrics/stability_metrics_provider.h b/components/metrics/stability_metrics_provider.h index 65cde34..6556885 100644 --- a/components/metrics/stability_metrics_provider.h +++ b/components/metrics/stability_metrics_provider.h
@@ -31,10 +31,7 @@ void MarkSessionEndCompleted(bool end_completed); void LogCrash(base::Time last_live_timestamp); - void LogStabilityLogDeferred(); - void LogStabilityDataDiscarded(); void LogLaunch(); - void LogStabilityVersionMismatch(); private: #if defined(OS_WIN)
diff --git a/components/payments/content/android/java/src/org/chromium/components/payments/PaymentRequestService.java b/components/payments/content/android/java/src/org/chromium/components/payments/PaymentRequestService.java index 0e41b96..d2365c0 100644 --- a/components/payments/content/android/java/src/org/chromium/components/payments/PaymentRequestService.java +++ b/components/payments/content/android/java/src/org/chromium/components/payments/PaymentRequestService.java
@@ -147,9 +147,9 @@ /** * Called after an instance of {@link PaymentRequestService} has been created. * - * @param componentPaymentRequest The newly created instance of PaymentRequestService. + * @param paymentRequestService The newly created instance of PaymentRequestService. */ - void onPaymentRequestCreated(PaymentRequestService componentPaymentRequest); + void onPaymentRequestCreated(PaymentRequestService paymentRequestService); /** * Called when an abort request was denied.
diff --git a/components/payments/content/android/java_templates/ErrorStrings.java.tmpl b/components/payments/content/android/java_templates/ErrorStrings.java.tmpl index ec12dd4e..97263d92 100644 --- a/components/payments/content/android/java_templates/ErrorStrings.java.tmpl +++ b/components/payments/content/android/java_templates/ErrorStrings.java.tmpl
@@ -59,6 +59,9 @@ public static final String UNATHORIZED_SERVICE_REQUEST = "Caller's signuature or package name does not match invoked app's."; + public static final String FAIL_TO_SHOW_PAYMENT_REQUEST_UI = + "Fails to show payment request UI. Please try again."; + // Prevent instantiation. private ErrorStrings() {{}} }}
diff --git a/components/performance_manager/persistence/site_data/site_data_cache_factory_unittest.cc b/components/performance_manager/persistence/site_data/site_data_cache_factory_unittest.cc index a8b23f6..9c66091 100644 --- a/components/performance_manager/persistence/site_data/site_data_cache_factory_unittest.cc +++ b/components/performance_manager/persistence/site_data/site_data_cache_factory_unittest.cc
@@ -29,9 +29,9 @@ PerformanceManager::GetTaskRunner()); content::TestBrowserContext browser_context; - cache_factory.Post(FROM_HERE, &SiteDataCacheFactory::OnBrowserContextCreated, - browser_context.UniqueId(), browser_context.GetPath(), - base::nullopt); + cache_factory.AsyncCall(&SiteDataCacheFactory::OnBrowserContextCreated) + .WithArgs(browser_context.UniqueId(), browser_context.GetPath(), + base::nullopt); { base::RunLoop run_loop; @@ -51,9 +51,8 @@ run_loop.Run(); } - cache_factory.Post(FROM_HERE, - &SiteDataCacheFactory::OnBrowserContextDestroyed, - browser_context.UniqueId()); + cache_factory.AsyncCall(&SiteDataCacheFactory::OnBrowserContextDestroyed) + .WithArgs(browser_context.UniqueId()); { base::RunLoop run_loop; cache_factory.PostTaskWithThisObject(
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb index 90efb046..6efa17d 100644 --- a/components/policy/resources/policy_templates_de.xtb +++ b/components/policy/resources/policy_templates_de.xtb
@@ -203,11 +203,6 @@ Ist für die Richtlinie "false" festgelegt, erlaubt <ph name="PRODUCT_NAME" /> das Erstellen von Gastprofilen nicht.</translation> <translation id="1363275621236827384">Abfragen an Quirks-Server für Hardwareprofile aktivieren</translation> <translation id="1376119291123231789">Intelligenten Akkulademodus aktivieren</translation> -<translation id="1378850678793136128">Sie können eine Liste mit URL-Mustern erstellen, die die Websites angeben, denen automatisch die Berechtigung für den Zugriff auf ein USB-Gerät mit den angegebenen Anbieter- und Produkt-IDs gewährt wird. Damit die Richtlinie gültig ist, müssen für jeden Eintrag auf der Liste die Felder „devices“ und „urls“ angegeben sein. Jeder Eintrag im Feld „devices“ kann ein Feld „vendor_id“ und „product_id“ haben. Bei Weglassen des Felds „vendor_id“ wird eine Richtlinie erstellt, die für jedes Gerät gilt. Bei Weglassen des Felds „product_id“ wird eine Richtlinie erstellt, die für jedes Gerät mit der angegebenen Anbieter-ID gilt. Eine Richtlinie, die ein Feld „product_id“ ohne das Feld „vendor_id“ hat, ist ungültig. - - Im USB-Berechtigungsmodell wird die URL der anfragenden Website („anfragende URL“) und die URL der Frame-Website der obersten Ebene („einbettende URL“) verwendet. Dabei wird der anfragenden URL die Berechtigung erteilt, auf das USB-Gerät zuzugreifen. Wird die anfragende Website in einen iFrame geladen, kann die anfragende von der einbettenden URL abweichen. Deshalb darf das Feld „urls“ bis zu zwei durch ein Komma voneinander getrennte URL-Strings enthalten: die anfragende URL und die einbettende URL. Falls nur eine einzige URL angegeben ist, wird der Zugriff auf die entsprechenden USB-Geräte gewährt, wenn unabhängig vom Einbettungsstatus die URL der anfragenden Website mit dieser URL übereinstimmt. Die URLs im Feld „urls“ müssen gültig sein, da ansonsten die Richtlinie ignoriert wird. - - Ist diese Richtlinie nicht konfiguriert, kommt für alle Websites der globale Standardwert zum Einsatz (kein automatischer Zugriff).</translation> <translation id="1384459581748403878">Referenz: <ph name="REFERENCE_URL" /></translation> <translation id="138847842893090358">Update-Status des Betriebssystems melden</translation> <translation id="1390901586107713894">Mit dieser Richtlinie können Sie festlegen, welche Erweiterungen Nutzer NICHT installieren dürfen. Bereits installierte Erweiterungen, die gesperrt sind, werden deaktiviert und Nutzer haben keine Möglichkeit, sie zu aktivieren. Sollte eine aufgrund der Sperrliste deaktivierte Erweiterung aus der Liste entfernt werden, wird sie automatisch wieder aktiviert. @@ -440,12 +435,6 @@ Wenn die Richtlinie nicht konfiguriert ist, schlägt die Installation von <ph name="PLUGIN_VM_NAME" /> fehl, wenn weniger als 20 GB (Standardwert) freier Speicherplatz auf dem Gerät verfügbar sind. Wenn die Richtlinie konfiguriert ist, schlägt die Installation von <ph name="PLUGIN_VM_NAME" /> fehl, wenn der freie Speicherplatz auf dem Gerät nicht dem in der Richtlinie angegebenen Mindestwert entspricht.</translation> -<translation id="1695708467571967752">Mit dieser Richtlinie wird festgelegt, ob Nutzer Medien wiedergeben können, wenn das Gerät gesperrt ist. - - Wird sie auf "false" gesetzt, werden die Mediensteuerelemente auf dem Sperrbildschirm deaktiviert. - - Wird sie auf "true" gesetzt oder nicht konfiguriert, werden die Mediensteuerelemente auf dem Sperrbildschirm angezeigt, wenn Nutzer das Gerät während der Medienwiedergabe sperren. - </translation> <translation id="1700811900332333712">Powerwash-Anfrage durch Gerät zulassen</translation> <translation id="1708496595873025510">Beschränkung für Abruf des Varianten-Seeds festlegen</translation> <translation id="171511968762040550">Wenn diese Richtlinie auf "True" gesetzt oder nicht konfiguriert ist, können Nutzer Lesezeichen hinzufügen, entfernen oder ändern. @@ -649,7 +638,6 @@ Wenn diese Einstellung deaktiviert ist, können keine Dateien übertragen werden. Ist die Einstellung aktiviert oder nicht konfiguriert, ist eine Dateiübertragung möglich.</translation> <translation id="2057317273526988987">Zugriff auf eine Liste mit URLs erlauben</translation> <translation id="2061810934846663491">Erforderliche Domainnamen für Remotezugriff-Hosts konfigurieren</translation> -<translation id="2067011586099792101">Zugriff auf Websites außerhalb von Inhaltspaketen blockieren</translation> <translation id="2069350366303315077">Wenn die Richtlinie aktiviert ist, erzwingt <ph name="PRODUCT_NAME" /> Gastsitzungen und verhindert die Anmeldung über Nutzerprofile. Gastsitzungen basieren auf <ph name="PRODUCT_NAME" />-Profilen, bei denen die Programmfenster im Inkognitomodus ausgeführt werden. Wenn die Richtlinie deaktiviert oder nicht konfiguriert ist bzw. der Gastmodus des Browsers durch <ph name="BROWSER_GUEST_MODE_ENABLED_POLICY_NAME" /> deaktiviert ist, können sowohl neue als auch vorhandene Profile verwendet werden.</translation> @@ -2096,7 +2084,6 @@ <translation id="4056910949759281379">SPDY-Protokoll deaktivieren</translation> <translation id="4061590579642538878">Informationen über Absturzberichte melden.</translation> <translation id="4075675819066819571">Ablage auf der linken Seite des Bildschirms anzeigen</translation> -<translation id="4075864623710596000">In dieser Liste aufgeführte Hostnamen sind vom HSTS-Richtliniencheck ausgenommen, der Anfragen von http auf https upgraden kann. Für diese Richtlinie sind nur Single-Label-Hostnamen zulässig. Hostnamen müssen kanonisiert werden: Alle IDNs müssen in ihr A-Label-Format konvertiert und alle ASCII-Buchstaben kleingeschrieben werden. Diese Richtlinie gilt nur für die angegebenen Hostnamen, aber nicht für Subdomains der angegebenen Namen.</translation> <translation id="408029843066770167">Abfragen an einen Google-Dienst für die Zeiteinstellung zulassen</translation> <translation id="408076456549153854">Browseranmeldung aktivieren</translation> <translation id="4082498585300984671">Funktion "Zum Anrufen klicken" aktivieren</translation> @@ -2206,9 +2193,6 @@ Ist die Richtlinie deaktiviert, wird <ph name="PRODUCT_NAME" /> deaktiviert.</translation> <translation id="4203879074082863035">Nur Drucker in der Zulassungsliste werden Nutzern angezeigt</translation> -<translation id="420512303455129789">Eine Art Wörterbuch, das URLs einem booleschen Parameter zuordnet und dadurch angibt, ob der Zugriff auf den Host erlaubt ("true") oder blockiert ("false") werden soll - - Diese Richtlinie dient ausschließlich zur internen Verwendung in <ph name="PRODUCT_NAME" />.</translation> <translation id="4209297478239988291">Mit dieser Richtlinie wird die Bedienungshilfe "Automatisch klicken" aktiviert. Mit dieser Funktion können Sie klicken, ohne die Maustaste zu drücken oder auf das Touchpad zu tippen. Dazu bewegen Sie den Mauszeiger einfach auf das Objekt, das angeklickt werden soll. @@ -2348,13 +2332,6 @@ <translation id="4494132853995232608">Wilco DTC</translation> <translation id="449423975179525290">Richtlinien für <ph name="PLUGIN_VM_NAME" /> konfigurieren.</translation> <translation id="4498493270899294764">URL-Muster, für die heruntergeladene Inhalte nicht auf Malware geprüft werden sollen</translation> -<translation id="450537894712826981">Konfiguriert die Cache-Größe, die <ph name="PRODUCT_NAME" /> zum Speichern von Mediendateien im Cache auf dem Datenträger verwendet. - - Wenn Sie diese Richtlinie festlegen, verwendet <ph name="PRODUCT_NAME" /> die angegebene Cache-Größe unabhängig davon, ob der Nutzer den Parameter "--media-cache-size" angegeben hat oder nicht. Der in dieser Richtlinie angegebene Wert ist keine festgelegte Grenze, sondern mehr ein Richtwert für das Caching-System. Werte, die unter wenigen Megabytes liegen, sind zu klein und werden auf einen sinnvollen Minimalwert aufgerundet. - - Wenn der Wert dieser Richtlinie 0 beträgt, wird die Standard-Cache-Größe verwendet. Der Nutzer kann diese jedoch nicht ändern. - - Wird diese Richtlinie nicht festgelegt, wird die Standardgröße verwendet und der Nutzer kann diese mit dem Parameter "--media-cache-size" überschreiben.</translation> <translation id="4508084713148633492">Ermöglicht die Aktivierung oder Deaktivierung einer Benachrichtigung, wenn nur noch wenig Speicherplatz verfügbar ist. Dies gilt für alle Nutzer auf diesem Gerät. Wenn es auf einem verwalteten Gerät genau ein Nutzerkonto gibt, wird diese Benachrichtigung immer angezeigt, unabhängig davon, auf welchen Wert diese Richtlinie gesetzt ist. Gibt es auf einem verwalteten Gerät mehrere Nutzerkonten, wird die Benachrichtigung nur dann angezeigt, wenn diese Richtlinie auf "True" gesetzt ist. @@ -2649,7 +2626,6 @@ Wird die Richtlinie deaktiviert, sendet <ph name="PRODUCT_NAME" /> solche Abfragen nicht mehr.</translation> <translation id="5032164758660626397">Verhindern, dass Nutzer große Dateien übertragen</translation> -<translation id="5047604665028708335">Zugriff auf Websites außerhalb von Inhaltspaketen erlauben</translation> <translation id="5056708224511062314">Lupe deaktiviert</translation> <translation id="5058573563327660283">Strategie auswählen, die bei der automatischen Bereinigung zur Freigabe von Festplattenspeicher verwendet wird (eingestellt)</translation> <translation id="5061114193960158745">Mithilfe dieser Richtlinie wird die Liste der Websites verwaltet, die unter keinen Umständen einen Browserwechsel auslösen. Jedes Element wird als Regel angesehen. Wenn es eine Übereinstimmung mit der Regel gibt, wird kein alternativer Browser geöffnet. Im Gegensatz zur Richtlinie "<ph name="URL_LIST_POLICY_NAME" />" gelten die Regeln in beide Richtungen. Wenn das <ph name="IE_PRODUCT_NAME" />-Add-in aktiviert ist, wird damit auch gesteuert, ob <ph name="IE_PRODUCT_NAME" /> diese URLs in <ph name="PRODUCT_NAME" /> öffnen soll. @@ -3122,10 +3098,6 @@ Beachten Sie, dass diese Einstellung nicht empfohlen wird, da hierdurch die "nameConstraints"-Erweiterung umgangen werden kann. Diese Erweiterung beschränkt die Hostnamen, für die ein bestimmtes Zertifikat autorisiert werden kann. Wenn diese Richtlinie nicht konfiguriert oder auf "false" eingestellt ist, werden Serverzertifikate ohne "subjectAlternativeName"-Erweiterung, die entweder einen DNS-Namen oder eine IP-Adresse enthalten, als nicht vertrauenswürdig eingestuft.</translation> -<translation id="5578571772998293651">Hiermit wird Nutzerfeedback zugelassen. - Wenn die Richtlinie auf "false" gesetzt ist, können Nutzer kein Feedback an Google senden. - - Ist sie nicht konfiguriert oder auf "true" gesetzt, dann können Nutzer über das Menü > "Hilfe" > "Problem melden" oder die entsprechende Tastenkombination Feedback an Google senden.</translation> <translation id="5579179012798142131">Wird "ArcEnabled" auf "True" gesetzt und sind sowohl der flüchtige Modus als auch Mehrfachanmeldung während einer Nutzersitzung deaktiviert, so ist ARC für den Nutzer aktiviert. Wenn die Richtlinie auf "False" gesetzt ist oder keine Einstellung gewählt wird, können Unternehmensnutzer ARC nicht verwenden.</translation> <translation id="5582429816116769246">Mit dieser Richtlinie können Sie festlegen, ob Nutzer auf Drucker außerhalb des Unternehmens zugreifen dürfen. @@ -3388,7 +3360,6 @@ <translation id="5951418260805607969">Benachrichtigung anzeigen, wenn nur wenig Speicherplatz verfügbar ist</translation> <translation id="5961137303188584693">MAC-Adresse der im Gerät verbauten NIC</translation> <translation id="5966615072639944554">Erweiterungen, die die Remote Attestation API zur Bestätigung der Nutzeridentität verwenden dürfen</translation> -<translation id="5983708779415553259">Standardverhalten für Websites, die nicht zu einem Inhaltspaket gehören</translation> <translation id="5997543603646547632">Standardmäßig 24-Stunden-Uhr verwenden</translation> <translation id="5997846976342452720">Angeben, ob Plug-in-Suchfunktion deaktiviert werden soll (eingestellt)</translation> <translation id="5998198091336830580">Diese Richtlinie ist Teil der folgenden Atomic-Gruppe (nur Richtlinien aus der Quelle mit der höchsten Priorität in der Gruppe werden angewendet):</translation> @@ -3427,9 +3398,6 @@ <translation id="603768430528561926">Wenn die Richtlinie aktiviert oder nicht konfiguriert ist, können Nutzer von Geräten in Unternehmen Angebote einlösen, indem sie <ph name="PRODUCT_OS_NAME" /> registrieren. Ist die Richtlinie deaktiviert, können solche Nutzer diese Angebote nicht einlösen.</translation> -<translation id="6038407313189625985">Wenn diese Richtlinie aktiviert oder nicht konfiguriert ist, ist Renderer-Codeintegrität aktiviert. Sie sollte nur deaktiviert werden, wenn Kompatibilitätsprobleme mit Drittanbieter-Software auftreten, die innerhalb der Rendererprozesse von Chrome ausgeführt werden muss. - - Eine Deaktivierung hat negative Auswirkungen auf die Sicherheit und Stabilität von Chrome, da dann unbekannter und potenziell schädlicher Code in den Rendererprozessen von Chrome geladen werden kann. Weitere Informationen finden Sie unter: https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies.</translation> <translation id="6048199181629830227">Energieverwaltung zum Umschalten bei Leistungsspitzen aktivieren</translation> <translation id="6054485492411959335">Gibt die Drucker an, die ein Nutzer verwenden kann. @@ -4729,9 +4697,6 @@ Hinweis: Automatische Neustarts sind derzeit nur aktiviert, wenn die Anmeldeseite angezeigt wird oder eine Kiosk-App-Sitzung läuft. Dies wird zukünftig geändert, sodass die Richtlinie immer gilt, unabhängig davon, ob und welche Sitzung aktiv ist.</translation> <translation id="7701341006446125684">Cache-Größe für Apps und Erweiterungen in Byte festlegen</translation> -<translation id="7709537117200051035">Eine Art Wörterbuch, das Hostnamen einem booleschen Parameter zuordnet und dadurch angibt, ob der Zugriff auf den Host erlaubt ("true") oder blockiert ("false") werden soll. - - Diese Richtlinie dient ausschließlich zur internen Verwendung in <ph name="PRODUCT_NAME" />.</translation> <translation id="7710950688502974809">Liste der Einstellungen für Chrome Enterprise Connectors-Services für den Enterprise Connector "<ph name="ON_BULK_DATA_ENTRY_ENTERPRISE_CONNECTOR" />". Dieser wird ausgelöst, wenn Daten aus der Zwischenablage oder durch Drag-and-drop von Webinhalten in Chrome eingegeben werden. Mit den Feldern "<ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />", "<ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />", "<ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" />" und "<ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" />" wird ermittelt, ob der Connector Daten zur Analyse senden soll, wenn sie auf einer bestimmten Seite eingegeben werden, und welche Tags für die Analyseanfrage verwendet werden sollen. Ein Tag, das einem "enable"-Muster entspricht, wird der Anfrage hinzugefügt, wenn die Seiten-URL mit einem für das jeweilige Tag passenden Muster übereinstimmt – jedoch nur, wenn kein "disable"-Muster mit demselben Tag mit der Seiten-URL übereinstimmt. Die Analyse wird durchgeführt, wenn die Anfrage mindestens ein Tag enthält. @@ -4879,7 +4844,6 @@ Wenn Sie diese Einstellung aktivieren oder deaktivieren, können Nutzer sie in <ph name="PRODUCT_NAME" /> nicht ändern oder überschreiben. Bleibt diese Richtlinie unkonfiguriert, wird die Einstellung aktiviert, kann jedoch vom Nutzer geändert werden.</translation> -<translation id="7953256619080733119">Manuell festgelegte Ausnahme-Hosts für verwalteten Nutzer</translation> <translation id="7956210013490975468">Konfiguriert den System-Proxy-Dienst für <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="7958537754689366707">Passworteingabe alle zwölf Stunden erforderlich</translation> <translation id="7961779417826583251">Erzwingung der Zertifikatstransparenz für eine Liste alter Zertifizierungsstellen deaktivieren</translation> @@ -5098,11 +5062,6 @@ Wenn Sie diese Richtlinie konfigurieren, kann sie vom Nutzer nicht geändert oder überschrieben werden. Ist die Richtlinie nicht konfiguriert, ist die Spracheingabe anfangs deaktiviert, kann jedoch vom Nutzer jederzeit aktiviert werden.</translation> -<translation id="829337533107201925">Ist diese Richtlinie aktiviert, werden Richtlinien aus atomischen Gruppen, die eine andere Quelle als die Quelle mit der höchsten Priorität der entsprechenden Gruppe haben, ignoriert. - - Wenn die Richtlinie deaktiviert ist, werden Richtlinien nicht aufgrund ihrer Quelle ignoriert. Sie werden dann nur ignoriert, wenn ein Konflikt besteht und sie nicht die höchste Priorität haben. - - Wird diese Richtlinie von einer cloudbasierten Quelle konfiguriert, kann sie nicht auf bestimmte einzelne Nutzer ausgerichtet werden.</translation> <translation id="8294750666104911727">Normalerweise werden Seiten, bei denen das Metatag "X-UA-Compatible" auf "chrome=1" gesetzt ist, unabhängig von der Richtlinie "ChromeFrameRendererSettings" in <ph name="PRODUCT_FRAME_NAME" /> gerendert. Bei aktivierter Einstellung werden die Seiten nicht nach Metatags durchsucht. @@ -5300,7 +5259,6 @@ <translation id="8544375438507658205">Standardanwendung für HTML-Darstellung in <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="8544465954173828789">Zulassen, dass SMS zwischen Smartphone mit Chromebook synchronisiert werden.</translation> <translation id="8548832052135586762">Damit wird festgelegt, ob nur in Farbe, nur in Schwarz-Weiß oder ohne Farbmodusbeschränkung gedruckt wird. Ist die Richtlinie nicht konfiguriert, wird keine Einschränkung angewendet.</translation> -<translation id="8549772397068118889">Vor dem Besuch von Websites außerhalb von Inhaltspaketen warnen</translation> <translation id="8566842294717252664">Web Store auf der "Neuer Tab"-Seite und im App Launcher ausblenden</translation> <translation id="8569734380847633643"> Wenn diese Richtlinie auf "false" gesetzt ist, wird WLAN unter <ph name="PRODUCT_OS_NAME" /> deaktiviert und Nutzer können die Funktion nicht wieder aktivieren. @@ -5420,7 +5378,6 @@ Wenn Sie diese Richtlinie konfigurieren, kann sie vom Nutzer nicht geändert oder überschrieben werden. Diese Richtlinie hat keinen Einfluss darauf, ob Nutzer auf einzelnen Geräten Drucker konfigurieren können. Sie ist als Ergänzung zu den Druckerkonfigurationen der einzelnen Nutzer gedacht.</translation> -<translation id="8764477907716150749">Diese Richtlinie ist zur internen Nutzung in <ph name="PRODUCT_NAME" /> vorgesehen.</translation> <translation id="8767743923206070405">Wenn die Richtlinie aktiviert ist, wird die Startbildschirmtaste in der Symbolleiste von <ph name="PRODUCT_NAME" /> angezeigt. Ist die Richtlinie deaktiviert, erscheint die Startbildschirmtaste nicht. Wenn Sie diese Richtlinie konfigurieren, kann sie von Nutzern in <ph name="PRODUCT_NAME" /> nicht geändert werden. Wenn die Richtlinie nicht konfiguriert ist, können Nutzer selbst entscheiden, ob die Startbildschirmtaste angezeigt werden soll.</translation>
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb index 9645f4a..606c0067 100644 --- a/components/policy/resources/policy_templates_es-419.xtb +++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -203,11 +203,6 @@ Si esta política se establece en false, <ph name="PRODUCT_NAME" /> no permitirá que se inicien perfiles de invitado.</translation> <translation id="1363275621236827384">Habilitar las consultas a Quirks Server para perfiles de hardware</translation> <translation id="1376119291123231789">Habilitar el modo avanzado de carga de la batería</translation> -<translation id="1378850678793136128">Permite establecer una lista de patrones de URL que indiquen los sitios a los cuales se les otorga permiso automáticamente para acceder a un dispositivo USB con los ID del producto y del proveedor especificados en la pantalla de acceso. Para que la política sea válida, cada elemento de la lista debe tener los campos "devices" y "urls". Cada elemento del campo "devices" puede tener los campos "vendor_id" y "product_id". Si omites el campo "vendor_id", se creará una política que funcione con cualquier dispositivo. Si omites el campo "product_id", se creará una política que funcione con cualquier dispositivo que tenga el ID de proveedor especificado. Las políticas que tengan el campo "product_id", pero que no tengan el campo "vendor_id" no serán válidas. - - El modelo del permiso para USB utiliza la URL del sitio que lo solicita ("URL que solicita permiso") y la URL del sitio del marco principal ("URL de incorporación") para otorgar permiso a la URL que lo solicita a fin de acceder al dispositivo USB. Es posible que esa URL no sea la misma que la de incorporación cuando se carga el sitio que solicita permiso en un iframe. Por lo tanto, el campo "urls" puede incluir hasta dos strings de URL delimitados por una coma para especificar la URL que solicita permiso y la URL de incorporación, respectivamente. Si solo se especifica una URL, se otorgará el acceso a los dispositivos USB correspondientes cuando la URL del sitio que lo solicita coincida con esta URL más allá del estado de incorporación. Las URL en el campo "urls" deben ser válidas; de lo contrario, se ignorará la política. - - Si no se establece esta política, se usará el valor predeterminado general para todos los sitios (sin acceso automático).</translation> <translation id="1384459581748403878">Referencia: <ph name="REFERENCE_URL" /></translation> <translation id="138847842893090358">Informa el estado de la actualización del SO</translation> <translation id="1390901586107713894">Permite especificar las extensiones que los usuarios NO pueden instalar. Si se incluyen en la lista de elementos bloqueados extensiones que ya están instaladas, no funcionarán y el usuario no podrá habilitarlas. Si las quitas de esa lista, se volverán a habilitar automáticamente. @@ -450,12 +445,6 @@ Si no estableces esta política, fallará la instalación de <ph name="PLUGIN_VM_NAME" /> cuando el espacio libre en disco disponible en el dispositivo sea inferior a 20 GB (valor predeterminado). Si la estableces, fallará la instalación de <ph name="PLUGIN_VM_NAME" /> cuando el espacio libre en disco disponible en el dispositivo sea inferior al espacio que requiere la política.</translation> -<translation id="1695708467571967752">Esta política controla si los usuarios pueden reproducir contenido multimedia cuando está bloqueado el dispositivo. - - Si se establece como falsa, se inhabilitan los controles multimedia de la pantalla bloqueada. - - Si se establece como verdadera o no se establece, se mostrarán los controles multimedia en la pantalla bloqueada cuando el usuario bloquee el dispositivo mientras se esté reproduciendo contenido multimedia. - </translation> <translation id="1700811900332333712">Permite que el dispositivo solicite Powerwash</translation> <translation id="1708496595873025510">Establece la restricción en la obtención del valor de inicialización de las variaciones.</translation> <translation id="171511968762040550">Si la estableces esta política como verdadera o no la estableces, los usuarios podrán agregar, quitar o modificar favoritos. @@ -669,7 +658,6 @@ Si se inhabilita esta configuración, no se permitirá la transferencia de archivos. Si se habilita o no se establece esta configuración, se permitirá la transferencia de archivos.</translation> <translation id="2057317273526988987">Permitir el acceso a una lista de URL</translation> <translation id="2061810934846663491">Configurar los nombres de dominio obligatorios para hosts de acceso remoto</translation> -<translation id="2067011586099792101">Bloquea el acceso a sitios fuera de los paquetes de contenido.</translation> <translation id="2069350366303315077">Si habilitas la política, <ph name="PRODUCT_NAME" /> aplicará las sesiones de invitado y no permitirá acceder a los perfiles. Los accesos de invitado son perfiles de <ph name="PRODUCT_NAME" /> en donde todas las ventanas están en el modo Incógnito. Si inhabilitas la política, no la estableces o inhabilitas el modo de invitado del navegador (mediante <ph name="BROWSER_GUEST_MODE_ENABLED_POLICY_NAME" />) se podrán usar perfiles nuevos y existentes.</translation> @@ -2114,7 +2102,6 @@ <translation id="4056910949759281379">Inhabilitar el protocolo SPDY</translation> <translation id="4061590579642538878">Proporciona datos sobre los informes de fallas</translation> <translation id="4075675819066819571">Ubicar la biblioteca en el lado izquierdo de la pantalla</translation> -<translation id="4075864623710596000">Los nombres de host que se especifican en esta lista no se incluirán en la revisión de la política de HSTS que podría mejorar las solicitudes de http a https. En esta política, solo se permiten nombres de host con una sola etiqueta. Los nombres de host deben estar canonicalizados: debe convertirse cualquier IDN a su formato de etiqueta A y todas las letras en formato ASCII deben estar en minúscula. Esta política solo se aplica a los nombres de host específicos de la lista; no se aplica a los subdominios de estos nombres.</translation> <translation id="408029843066770167">Permitir consultas a un servicio de hora de Google</translation> <translation id="408076456549153854">Habilitar el acceso en el navegador</translation> <translation id="4082498585300984671">Habilita la función Llamar con un clic</translation> @@ -2224,9 +2211,6 @@ Si inhabilitas la política, se desactivará <ph name="PRODUCT_NAME" />.</translation> <translation id="4203879074082863035">Los usuarios solo ven las impresoras en la lista blanca</translation> -<translation id="420512303455129789">Es un diccionario que asigna URL a un indicador booleano que especifica si se debe permitir (true) o bloquear (false) el acceso al host. - - Esta política es para uso interno de <ph name="PRODUCT_NAME" />.</translation> <translation id="4209297478239988291">Habilita la función de accesibilidad de clic automático. Esta función permite hacer clic sin presionar de manera física el mouse o el panel táctil. Pasa el cursor sobre el elemento en el que quieras hacer clic. @@ -2366,13 +2350,6 @@ <translation id="4494132853995232608">DTC wilco</translation> <translation id="449423975179525290">Configura las políticas relacionadas con <ph name="PLUGIN_VM_NAME" />.</translation> <translation id="4498493270899294764">Patrones de URL en los que no es necesario comprobar si hay software malicioso en las descargas</translation> -<translation id="450537894712826981">Configura el tamaño de caché que utilizará <ph name="PRODUCT_NAME" /> para almacenar archivos multimedia en caché en el disco. - - Si esta política se establece, <ph name="PRODUCT_NAME" /> utilizará el tamaño de caché disponible aunque el usuario haya especificado la marca "--media-cache-size". El valor indicado en esta política no es un límite rígido, sino un valor recomendado para el sistema de almacenamiento en caché; cualquier valor que sea menor por algunos megabytes se redondeará hasta alcanzar un mínimo aceptable. - - Si esta política se establece en 0, se utilizará el tamaño de caché predeterminado y el usuario no podrá modificarlo. - - Si esta política no se establece, se utilizará el tamaño de caché predeterminado y el usuario podrá anular el valor con la marca "--media-cache-size".</translation> <translation id="4508084713148633492">Permite habilitar o inhabilitar una notificación cuando hay poco espacio disponible en el disco. Se aplica a todos los usuarios del dispositivo. Si hay solo una cuenta de usuario en un dispositivo administrado, se mostrará siempre la notificación independientemente del valor de esta política. Si hay varias cuentas de usuario en un dispositivo administrado, solo se mostrará la notificación cuando la política se establece como verdadera. @@ -2667,7 +2644,6 @@ Si la inhabilitas, <ph name="PRODUCT_NAME" /> dejará de enviar estas consultas.</translation> <translation id="5032164758660626397">Evita que el usuario transfiera archivos grandes</translation> -<translation id="5047604665028708335">Permite el acceso a sitios fuera de los paquetes de contenido.</translation> <translation id="5056708224511062314">La lupa está inhabilitada.</translation> <translation id="5058573563327660283">Seleccionar la estrategia utilizada para liberar espacio en el disco durante el proceso de limpieza automática (dejó de estar disponible)</translation> <translation id="5061114193960158745">Si estableces esta política, se controlará la lista de sitios web que nunca obligarán a cambiar de navegador. Cada elemento será tratado como una regla. Las reglas que coincidan no se abrirán en un navegador alternativo. A diferencia de la política <ph name="URL_LIST_POLICY_NAME" />, las reglas se aplican en ambas direcciones. Si el complemento de <ph name="IE_PRODUCT_NAME" /> está activado, también controlará si <ph name="IE_PRODUCT_NAME" /> puede abrir estas URL en <ph name="PRODUCT_NAME" />. @@ -3136,10 +3112,6 @@ Ten en cuenta que no se recomienda esta acción, ya que puede permitir la omisión de la extensión nameConstraints, que restringe los nombres de host para los que se puede autorizar un certificado determinado. Si esta política no se establece, o se establece como falsa, los certificados de servidores que no tengan la extensión subjectAlternativeName con un nombre de DNS o una dirección IP no serán confiables.</translation> -<translation id="5578571772998293651">Permite que los usuarios hagan comentarios. - Si se establece la política como falsa, los usuarios no podrán enviar comentarios a Google. - - Si no se establece o se establece como verdadera, los usuarios podrán enviar comentarios a Google con una combinación de teclas o mediante Menú > Ayuda > Informar un problema.</translation> <translation id="5579179012798142131">Si configuras el valor "True" para la política ArcEnabled, se activará ARC para el usuario, a menos que el modo efímero o el acceso múltiple estén activados durante la sesión del usuario. Si estableces el valor "False" para la política o no la estableces, los usuarios empresariales no podrán usar ARC.</translation> <translation id="5582429816116769246">Te permite controlar si los usuarios pueden acceder a impresoras no empresariales. @@ -3402,7 +3374,6 @@ <translation id="5951418260805607969">Muestra una notificación cuando hay poco espacio en el disco</translation> <translation id="5961137303188584693">Dirección MAC para el NIC integrado del dispositivo</translation> <translation id="5966615072639944554">Extensiones que tienen permitido utilizar la API de atestación remota</translation> -<translation id="5983708779415553259">Comportamiento predeterminado de los sitios que no forman parte de ningún paquete de contenido</translation> <translation id="5997543603646547632">Utilizar reloj con formato de 24 horas de forma predeterminada</translation> <translation id="5997846976342452720">Indicar si el buscador de complementos se debe inhabilitar (obsoleto)</translation> <translation id="5998198091336830580">Esta política es parte del siguiente grupo atómico (solo se aplican las políticas que provengan de la fuente de mayor prioridad del grupo):</translation> @@ -3441,9 +3412,6 @@ <translation id="603768430528561926">Si habilitas la política o no la estableces, los usuarios de dispositivos empresariales podrán canjear ofertas a través del registro en <ph name="PRODUCT_OS_NAME" />. Si la inhabilitas, los usuarios no podrán canjear esas ofertas.</translation> -<translation id="6038407313189625985">Si se habilita esta política y no se establece, se habilitará la integridad del código del renderizador. Esta opción se debe inhabilitar solo si se identifican problemas de compatibilidad con software de terceros que deba ejecutarse en los procesos del renderizador de Chrome. - - Inhabilitar esta política reduce la estabilidad y la seguridad de Chrome, ya que se permitirá cargar código desconocido y potencialmente hostil en los procesos del renderizador de Chrome. Para obtener más información, consulta el siguiente vínculo: https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies.</translation> <translation id="6048199181629830227">Habilita la administración de carga fuera del horario pico</translation> <translation id="6054485492411959335">Especifica las impresoras que puede utilizar el usuario. @@ -4743,9 +4711,6 @@ Nota: Actualmente, los reinicios automáticos solo se habilitan cuando se muestra la pantalla de acceso o cuando hay una sesión de la aplicación de kiosco en curso. Esta restricción se modificará en el futuro, y la política se aplicará en todo momento, sin importar si hay alguna sesión en curso.</translation> <translation id="7701341006446125684">Establecer tamaño de caché de apps y extensiones (en bytes)</translation> -<translation id="7709537117200051035">Es un diccionario que asigna los nombres de host a un indicador booleano que especifica si se debe permitir (true) o bloquear (false) el acceso al host. - - Esta política es para uso interno de <ph name="PRODUCT_NAME" />.</translation> <translation id="7710950688502974809">Lista de opciones de configuración para los servicios de Chrome Enterprise Connectors que se aplicarán a Enterprise Connector <ph name="ON_BULK_DATA_ENTRY_ENTERPRISE_CONNECTOR" />, el cual se activa cuando se ingresan datos a Chrome desde el portapapeles o se arrastra y se suelta contenido web. Los campos <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> y <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> se usan para determinar si el conector debe enviar datos para que se analicen cuando se descargan de una página específica y qué etiquetas deben incluirse en la solicitud de análisis de los datos. La solicitud de análisis incluirá la etiqueta correspondiente al patrón "enable" si la URL de la página coincide con un patrón asociado a esa etiqueta, siempre y cuando no exista coincidencia entre un patrón "disable" con esa misma etiqueta y la URL de la página. Si la solicitud incluye al menos 1 etiqueta, se realizará el análisis. @@ -4893,7 +4858,6 @@ Si habilitas o inhabilitas esta configuración, los usuarios no podrán cambiar ni anular esta configuración en <ph name="PRODUCT_NAME" />. Si no se configura esta política, se habilitará, pero el usuario podrá cambiarla.</translation> -<translation id="7953256619080733119">Hosts de excepción manual de usuario administrado</translation> <translation id="7956210013490975468">Configura el servicio de proxy del sistema para <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="7958537754689366707">Se requiere el ingreso de la contraseña cada doce horas.</translation> <translation id="7961779417826583251">Inhabilitar la aplicación del Certificado de transparencia para una lista de autoridades certificadas heredadas</translation> @@ -5125,11 +5089,6 @@ Si estableces esta política, los usuarios no podrán cambiarla ni anularla. Si no la estableces, la función de dictado estará inicialmente inhabilitada, pero el usuario podrá habilitarla en cualquier momento.</translation> -<translation id="829337533107201925">Si se habilita esta política, se ignorarán las políticas procedentes de un grupo atómico que no comparta el origen con la prioridad más alta de ese grupo. - - Si se habilita esta política, no se ignorará ninguna política debido a su origen. Solo se ignorarán las políticas en caso de conflicto y si la política no tiene la prioridad más alta. - - Si se establece la política desde una nube, no se podrá aplicar a un usuario específico.</translation> <translation id="8294750666104911727">Normalmente, las páginas con X-UA-Compatible establecido en chrome=1 se mostrarán en <ph name="PRODUCT_FRAME_NAME" />, independientemente de la política "ChromeFrameRendererSettings". Si habilitas esta opción, las páginas no se explorarán para buscar metaetiquetas. @@ -5339,7 +5298,6 @@ <translation id="8544375438507658205">Procesador HTML predeterminado para <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="8544465954173828789">Permite que los mensajes SMS se sincronicen desde el teléfono con la Chromebook</translation> <translation id="8548832052135586762">Establece la impresión como solo a color, solo monocromática o sin restricción del modo de color. Si no se configura la política, no se aplicará ninguna restricción.</translation> -<translation id="8549772397068118889">Advierte cuando se visitan sitios fuera de los paquetes de contenido.</translation> <translation id="8566842294717252664">Ocultar ícono de Web Store en la página Nueva pestaña y el Selector de aplicaciones</translation> <translation id="8569734380847633643"> Si la política se establece como falsa, <ph name="PRODUCT_OS_NAME" /> inhabilitará Wi-Fi, y los usuarios no podrán volver a habilitarla. @@ -5459,7 +5417,6 @@ Si estableces esta política, los usuarios no podrán cambiarla ni anularla. Esta política no afecta la capacidad del usuario para configurar impresoras en dispositivos individuales, y su objetivo es complementar la configuración de impresoras a cargo de los usuarios.</translation> -<translation id="8764477907716150749">Esta política es para uso interno de <ph name="PRODUCT_NAME" />.</translation> <translation id="8767743923206070405">Si habilitas la política, se mostrará el botón de la página principal en la barra de herramientas de <ph name="PRODUCT_NAME" />. Si la inhabilitas, no se mostrará el botón. Si estableces esta política, los usuarios no podrán cambiarla en <ph name="PRODUCT_NAME" />. Si no la estableces, los usuarios decidirán si se muestra el botón.</translation>
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb index 97396a1..8b13594 100644 --- a/components/policy/resources/policy_templates_es.xtb +++ b/components/policy/resources/policy_templates_es.xtb
@@ -203,11 +203,6 @@ Si se asigna el valor false a esta política, <ph name="PRODUCT_NAME" /> no permitirá que se inicien los perfiles de invitado.</translation> <translation id="1363275621236827384">Habilitar consultas a Quirks Server para los perfiles de hardware</translation> <translation id="1376119291123231789">Habilita el modo avanzado de carga de la batería</translation> -<translation id="1378850678793136128">Te permite establecer una lista con patrones de URL donde se especifique qué sitios web obtienen permiso para acceder a un dispositivo USB automáticamente con los ID de proveedor y producto determinados en la pantalla de inicio de sesión. Cada elemento de la lista debe contener un campo "devices" y un campo "urls" para que la política sea válida. Cada elemento del campo "devices" puede incluir un campo "vendor_id" y un campo "product_id". Si se omite el campo "vendor_id", se creará una política para cualquier dispositivo. Si se omite el campo "product_id", se creará una política para cualquier dispositivo con el ID de proveedor proporcionado. Las políticas que tengan un campo "product_id" pero que no tengan un campo "vendor_id" no son válidas. - - El modelo de permisos USB usa la URL del sitio web solicitante (URL solicitante) y la URL del sitio web marco de nivel superior (URL de inserción) para conceder permiso de acceso al dispositivo USB a la URL solicitante. La URL solicitante puede ser distinta a la de inserción si el sitio web solicitante se encuentra en un iframe. Por lo tanto, el campo "urls" puede contener un máximo de dos cadenas de URL delimitadas por una coma para especificar la URL solicitante y la de inserción, respectivamente. Si solo se especifica una URL, se otorgará acceso a los dispositivos USB correspondientes cuando la URL del sitio web solicitante coincida con esta URL, independientemente del estado de inserción. Las URL del campo "urls" deben ser URL válidas. De lo contrario, la política se ignorará. - - Si no se asigna ningún valor a esta política, se usará en todos los sitios web el valor general predeterminado (sin acceso automático).</translation> <translation id="1384459581748403878">Referencia: <ph name="REFERENCE_URL" /></translation> <translation id="138847842893090358">Envía el estado de las actualizaciones del sistema operativo</translation> <translation id="1390901586107713894">Permite especificar las extensiones que los usuarios no pueden instalar. Si se bloquea una extensión ya instalada, se inhabilitará y el usuario no podrá habilitarla. Si una extensión que se había inhabilitado porque estaba en la lista de bloqueados se quita de esa lista, volverá a habilitarse automáticamente. @@ -449,12 +444,6 @@ Si no se asigna ningún valor a esta política, la instalación de <ph name="PLUGIN_VM_NAME" /> fallará si el dispositivo tiene menos de 20 GB (valor predeterminado) de espacio disponible en disco. Si se le asigna un valor, la instalación de <ph name="PLUGIN_VM_NAME" /> fallará si el dispositivo tiene menos espacio disponible en disco del requerido por la política.</translation> -<translation id="1695708467571967752">Esta política controla si el usuario puede reproducir contenido multimedia cuando el dispositivo está bloqueado. - - Si se le asigna el valor False, se inhabilitarán los controles multimedia en la pantalla de bloqueo. - - Si se le asigna el valor True o no se le asigna ninguno, se mostrarán los controles multimedia en la pantalla de bloqueo cuando el usuario bloquee el dispositivo mientras se está reproduciendo algún contenido multimedia. - </translation> <translation id="1700811900332333712">Permite el uso de Powerwash en el dispositivo</translation> <translation id="1708496595873025510">Establecer restricción en obtención de base de variaciones</translation> <translation id="171511968762040550">Si se asigna el valor "Verdadero" a esta política o no se le asigna ninguno, se permitirá a los usuarios añadir, quitar o modificar marcadores. @@ -673,7 +662,6 @@ Si se inhabilita esta opción, no se permitirá la transferencia de archivos. Si se habilita esta opción o no se configura, se permitirá la transferencia de archivos.</translation> <translation id="2057317273526988987">Permitir el acceso a una lista de URL</translation> <translation id="2061810934846663491">Configurar los nombres de dominio obligatorios para hosts de acceso remoto</translation> -<translation id="2067011586099792101">Bloquear acceso a sitios no incluidos en paquetes de contenido</translation> <translation id="2069350366303315077">Si se habilita la política, <ph name="PRODUCT_NAME" /> usará sesiones de invitado e impedirá inicios de sesión de perfiles. Las sesiones de invitado son perfiles de <ph name="PRODUCT_NAME" /> en los que las ventanas están en modo de incógnito. Si se inhabilita la política, no se establece o se inhabilita el modo invitados del navegador (mediante <ph name="BROWSER_GUEST_MODE_ENABLED_POLICY_NAME" />), se permitirá el uso de perfiles nuevos y de perfiles ya existentes.</translation> @@ -1128,6 +1116,7 @@ Si no se asigna ningún valor a esta política, no se añadirá ningún sitio web a la lista. Nota: También se pueden añadir elementos a la lista a través de las políticas <ph name="USE_IE_SITELIST_POLICY_NAME" /> y <ph name="EXTERNAL_SITELIST_URL_POLICY_NAME" />.</translation> +<translation id="2640898752536996430">Cierra la sesión del usuario.</translation> <translation id="264093234299818170">Se muestran todas las impresoras, excepto las de la lista de bloqueados.</translation> <translation id="264252574246191885">Oculta</translation> <translation id="2647069081229792812">Habilitar o inhabilitar la edición de marcadores</translation> @@ -1459,6 +1448,7 @@ <translation id="3072847235228302527">Establecer los Términos del Servicio para una cuenta de dispositivo local</translation> <translation id="3086995894968271156">Configura Cast Receiver en <ph name="PRODUCT_NAME" />.</translation> <translation id="3091832372132789233">Carga la batería de los dispositivos que están conectados principalmente a una fuente de alimentación externa.</translation> +<translation id="309416443108680956">Especifica qué ocurre cuando un usuario que se autentica mediante un token de seguridad (por ejemplo, con una tarjeta inteligente) quita ese token durante una sesión. <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_IGNORE" />: no ocurre nada. <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" />: se bloquea la pantalla hasta que el usuario se vuelva a autenticar. <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" />: la sesión finaliza y se cierra la sesión del usuario. Si no se define esta política, se utiliza <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_IGNORE" /> de forma predeterminada.</translation> <translation id="3096595567015595053">Lista de complementos habilitados</translation> <translation id="3101501961102569744">Seleccionar la forma de especificar la configuración del servidor proxy</translation> <translation id="3101709781009526431">Fecha y hora</translation> @@ -1884,6 +1874,7 @@ Si se le asigna un valor a esta política, los usuarios no podrán cambiar su tipo de página principal en <ph name="PRODUCT_NAME" />. Si no se le asigna ningún valor, los usuarios podrán elegir si quieren establecer la página Nueva pestaña como su página principal. En <ph name="MS_WIN_NAME" />, esta función solo está disponible en instancias que estén vinculadas a un dominio de <ph name="MS_AD_NAME" />, que se ejecuten en Windows 10 Pro o que se hayan registrado en <ph name="CHROME_BROWSER_CLOUSE_MANAGEMENT_NAME" />. En <ph name="MAC_OS_NAME" />, esta función solo está disponible en instancias que se gestionen mediante MDM o que estén vinculadas a un dominio a través de MCX.</translation> +<translation id="3695706037816556327">Qué acción se realiza al quitar el token de seguridad (por ejemplo, la tarjeta inteligente) de <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="3701121231485832347">Controla la configuración específica de los dispositivos con <ph name="PRODUCT_OS_NAME" /> gestionados con <ph name="MS_AD_NAME" />.</translation> <translation id="3702518095257671450">Confirmación remota</translation> <translation id="3702647575225525306"><ph name="POLICY_NAME" /> (el campo de una línea está obsoleto y desaparecerá en el futuro; a partir de ahora, debes utilizar el campo de varias líneas que aparece más abajo).</translation> @@ -1921,6 +1912,8 @@ Si no se establece esta política, los usuarios podrán elegir su propia configuración del proxy.</translation> <translation id="3758249152301468420">Inhabilitar las Herramientas para desarrolladores</translation> +<translation id="3760231600118073732">Bloquea la sesión.</translation> +<translation id="3764097800332238572">Esta política solo tiene validez si se le asigna el valor <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" /> o <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" /> a la política <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_POLICY_NAME" /> y un usuario que se autentica mediante una tarjeta inteligente quita dicha tarjeta. Esta política especifica durante cuántos segundos se muestra una notificación que informa al usuario de la acción que tendrá lugar a continuación. La notificación bloquea la pantalla. La acción solo se realizará una vez que caduque la notificación. El usuario puede impedir que se produzca la acción volviendo a insertar la tarjeta inteligente antes de que caduque la notificación. Si se le asigna el valor cero a esta política, no se mostrará ninguna notificación y la acción ocurrirá inmediatamente.</translation> <translation id="3765260570442823273">Duración del mensaje que advierte al usuario de que se cerrará la sesión porque se encuentra inactivo</translation> <translation id="377044054160169374">Aplicar intervención de experiencia abusiva</translation> <translation id="3780152581321609624">Incluir un puerto no estándar en SPN de Kerberos</translation> @@ -2127,7 +2120,6 @@ <translation id="4056910949759281379">Inhabilitar protocolo SPDY</translation> <translation id="4061590579642538878">Proporcionar información de informes sobre fallos</translation> <translation id="4075675819066819571">Colocar la estantería en la parte izquierda de la pantalla</translation> -<translation id="4075864623710596000">Los nombres de host que se especifican en esta lista quedarán exentos de la comprobación de la política de HSTS, que podría actualizar las solicitudes de http a https. Esta política solo admite nombres de host de una sola etiqueta. Los nombres de host deben seguir el proceso de canonicalización: cada IDN debe codificarse en su formato de etiqueta A y todas las letras ASCII deben ser minúsculas. Esta política solo se aplica a los nombres de host que se especifican en esta lista. No se aplica a sus subdominios.</translation> <translation id="408029843066770167">Permitir consultas a un servicio de hora de Google</translation> <translation id="408076456549153854">Habilitar inicio de sesión en el navegador</translation> <translation id="4082498585300984671">Habilitar la función Clic de llamada</translation> @@ -2237,9 +2229,6 @@ Si se le asigna el valor "Inhabilitada", se desactivará <ph name="PRODUCT_NAME" />.</translation> <translation id="4203879074082863035">Solo se muestran a los usuarios las impresoras incluidas en la lista blanca.</translation> -<translation id="420512303455129789">Diccionario que asigna URLs a un indicador booleano que especifica si se debe permitir (true) o bloquear (false) el acceso del host. - - Esta política solo está destinada a uso interno de <ph name="PRODUCT_NAME" />.</translation> <translation id="4209297478239988291">Habilita la función de accesibilidad de clic automático. Esta función permite hacer clic sin pulsar el ratón ni el panel táctil, así como colocar el cursor sobre el elemento en el que quieras hacer clic. @@ -2379,13 +2368,6 @@ <translation id="4494132853995232608">Wilco DTC</translation> <translation id="449423975179525290">Configura las políticas relacionadas con <ph name="PLUGIN_VM_NAME" />.</translation> <translation id="4498493270899294764">Indicar los patrones de URL en los que no se comprobará si el contenido descargado contiene software malicioso</translation> -<translation id="450537894712826981">Permite configurar el tamaño de caché que utilizará <ph name="PRODUCT_NAME" /> para guardar archivos multimedia almacenados en caché en el disco. - - Si se define esta política, <ph name="PRODUCT_NAME" /> utilizará el tamaño de caché proporcionado independientemente de que el usuario haya especificado o no un tamaño de caché de archivos multimedia con el indicador "--media-cache-size". El valor especificado en esta política no es un límite estricto sino más bien una sugerencia para el sistema de almacenamiento en caché (un valor inferior a unos pocos megabytes sería demasiado pequeño y se redondearía a un valor mínimo viable).. - - Si se establece 0 como valor de esta política, se utilizará el tamaño de caché predeterminado, pero el usuario no podrá modificarlo. - - Si no se define esta política, se utilizará el tamaño predeterminado y el usuario podrá modificarlo mediante el indicador "--media-cache-size".</translation> <translation id="4508084713148633492">Permite habilitar o inhabilitar la notificación de poco espacio en disco. Se aplica a todos los usuarios del dispositivo. Si solo hay una cuenta de usuario en un dispositivo administrado, la notificación se muestra siempre, independientemente del valor asignado a esta política. Si hay varias cuentas de usuario en un dispositivo administrado, la notificación solo se muestra si se asigna el valor True a esta política. @@ -2680,7 +2662,6 @@ Si se inhabilita la política, <ph name="PRODUCT_NAME" /> no podrá enviar esas consultas.</translation> <translation id="5032164758660626397">Impedir al usuario transferir archivos grandes</translation> -<translation id="5047604665028708335">Permitir acceso a sitios no incluidos en paquetes de contenido</translation> <translation id="5056708224511062314">Lupa inhabilitada</translation> <translation id="5058573563327660283">Seleccionar la estrategia utilizada para liberar espacio en disco durante la limpieza automática (obsoleta)</translation> <translation id="5061114193960158745">Si se define esta política, controlará la lista de sitios web que nunca provocarán que se cambie de navegador. Cada elemento se tratará como una regla. Las reglas para las que se encuentre una coincidencia no abrirán un navegador alternativo. A diferencia de la política <ph name="URL_LIST_POLICY_NAME" />, estas reglas se aplicarán en ambas direcciones. Si el complemento de <ph name="IE_PRODUCT_NAME" /> está activado, también controlará si <ph name="IE_PRODUCT_NAME" /> debe abrir esas URL en <ph name="PRODUCT_NAME" />. @@ -3160,10 +3141,6 @@ Recuerda que no se recomienda esta opción, ya que puede permitir que se omita la extensión nameConstraints que restringe los nombres de host para los que puede estar autorizado un certificado concreto. Si esta política no se configura o se le asigna el valor valse, los certificados de servidor que no tengan ninguna extensión subjectAlternativeName que incluya un nombre de DNS o una dirección IP no serán de confianza.</translation> -<translation id="5578571772998293651">Permitir comentarios de los usuarios. - Si se asigna el valor "False" a esta política, los usuarios no podrán enviar comentarios a Google. - - Si no se le asigna ningún valor o se le asigna el valor "True", los usuarios podrán enviar comentarios a Google desde Menú > Ayuda > Informar de un problema o con una combinación de teclas.</translation> <translation id="5579179012798142131">Si se asigna a ArcEnabled el valor "true", se activa ARC para el usuario, a menos que esté activado el modo efímero o el inicio de sesión múltiple durante la sesión del usuario. Si se le asigna el valor "false" o no se le asigna ningún valor, los usuarios de empresa no podrán usar ARC.</translation> <translation id="5582429816116769246">Permite controlar si los usuarios pueden acceder a impresoras que no sean de empresa @@ -3425,7 +3402,6 @@ <translation id="5951418260805607969">Mostrar notificación de poco espacio en disco</translation> <translation id="5961137303188584693">Dirección NIC MAC integrada en el dispositivo</translation> <translation id="5966615072639944554">Extensiones con permiso para utilizar la API de confirmación remota</translation> -<translation id="5983708779415553259">Comportamiento predeterminado de sitios no incluidos en un paquete de contenido</translation> <translation id="5997543603646547632">Utilizar reloj de formato de 24 horas de forma predeterminada</translation> <translation id="5997846976342452720">Especificar si se debe inhabilitar el buscador de complementos (obsoleta)</translation> <translation id="5998198091336830580">Esta política forma parte del siguiente grupo atómico (solo se aplicarán las políticas de la fuente que tenga mayor prioridad del grupo):</translation> @@ -3464,9 +3440,6 @@ <translation id="603768430528561926">Si se habilita la política o no se establece, los usuarios de dispositivos empresariales podrán canjear ofertas mediante el registro de <ph name="PRODUCT_OS_NAME" />. Si se inhabilita la política, los usuarios no podrán canjear estas ofertas.</translation> -<translation id="6038407313189625985">Si se habilita esta política o no se le asigna ningún valor, se activará la integridad del código del renderizador. Solo debería inhabilitarse si hay problemas de compatibilidad con algún software de terceros que deba ejecutarse en los procesos del renderizador de Chrome. - - Inhabilitar esta política reduce la estabilidad y la seguridad de Chrome, ya que se permitirá cargar código desconocido y potencialmente hostil en los procesos del renderizador de Chrome. Puedes consultar más información en la página https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies</translation> <translation id="6048199181629830227">Habilitar la gestión de energía Peak Shift</translation> <translation id="6054485492411959335">Especifica las impresoras que puede utilizar un usuario. @@ -3948,6 +3921,7 @@ <translation id="6672070613706645316">Permite a los usuarios personalizar la imagen de fondo de la página Nueva pestaña</translation> <translation id="6672630473862787247">Habilita la autenticación pasiva en sesiones normales, de incógnito y de invitado.</translation> <translation id="6685903773201985073">Habilita la autenticación pasiva en sesiones normales y de invitado.</translation> +<translation id="6689343802305995925">No se realiza ninguna acción.</translation> <translation id="6689792153960219308">Informar sobre el estado del hardware</translation> <translation id="6690425645391461516">Inhabilitar las comprobaciones de interceptación de DNS y permitir las barras de información aclaratorias "http://intranetsite/".</translation> <translation id="6698632841807204978">Habilitar la impresión en monocromo</translation> @@ -4215,6 +4189,7 @@ Si se le asigna el valor "Inhabilitada", <ph name="PRODUCT_NAME" /> cerrará la pestaña después de cambiar a un navegador alternativo, aunque esta sea la última. Esto hará que <ph name="PRODUCT_NAME" /> se cierre por completo.</translation> <translation id="7019805045859631636">Rápido</translation> +<translation id="7026351325994257733">Permitir que las configuraciones de la red Wi‑Fi se sincronicen en los dispositivos <ph name="PRODUCT_OS_NAME" /> y en un teléfono Android conectado.</translation> <translation id="7027785306666625591">Configura la administración de energía en <ph name="PRODUCT_OS_NAME" />. Estas políticas te permiten configurar el comportamiento de <ph name="PRODUCT_OS_NAME" /> cuando el usuario permanece inactivo durante un periodo de tiempo determinado.</translation> @@ -4589,6 +4564,13 @@ - Si se inhabilita esta política, los administradores deberán comunicárselo a los usuarios finales del dispositivo.</translation> <translation id="747275827471712187">Volver a la configuración antigua de comportamiento de cookies de <ph name="ATTRIBUTE_SAMESITE_NAME" /> en estos sitios web</translation> +<translation id="7476621944304431784">Si se habilita esta opción, los usuarios podrán sincronizar las configuraciones de la red Wi‑Fi en sus dispositivos <ph name="PRODUCT_OS_NAME" /> y en un teléfono Android conectado. Para poder sincronizar las configuraciones de la red Wi‑Fi, los usuarios deben aceptar explícitamente esta función completando un proceso de configuración. + + Si se inhabilita esta opción, los usuarios no podrán sincronizar las configuraciones de la red Wi‑Fi. + + Esta función depende de que se habilite el tipo de datos de <ph name="WIFI_CONFIGURATIONS_DATATYPE_NAME" /> en la Sincronización de Chrome. Si se inhabilita <ph name="WIFI_CONFIGURATIONS_DATATYPE_NAME" /> en la política <ph name="SYNC_TYPES_LIST_DISABLED_POLICY_NAME" /> o se inhabilita la Sincronización de Chrome en la política <ph name="SYNC_DISABLED_POLICY_NAME" />, no se habilitará esta función. + + Si no se asigna ningún valor a esta política, se inhabilitará de forma predeterminada para los usuarios administrados.</translation> <translation id="7477231245051133709">Habilita la función de accesibilidad de audio en mono</translation> <translation id="7477239290070847560">Destinos de protocolo zeroconf (mDNS y DNS‑SD)</translation> <translation id="7485481791539008776">Reglas para la selección de la impresora predeterminada</translation> @@ -4780,9 +4762,6 @@ Nota: En este momento, los reinicios automáticos solo se habilitan cuando se muestra la pantalla de inicio de sesión o está en curso una sesión de una aplicación de kiosco. Esta restricción se modificará en el futuro, y la política se aplicará en todo momento, independientemente de si un determinado tipo de sesión está o no en curso.</translation> <translation id="7701341006446125684">Establecer el tamaño de caché de aplicaciones y extensiones (en bytes)</translation> -<translation id="7709537117200051035">Diccionario que asigna URLs a un indicador booleano que especifica si se debe permitir (true) o bloquear (false) el acceso del host. - - Esta política solo está destinada a uso interno de <ph name="PRODUCT_NAME" />.</translation> <translation id="7710950688502974809">Lista con los ajustes de los servicios de Chrome Enterprise Connectors que se van a aplicar al conector <ph name="ON_BULK_DATA_ENTRY_ENTERPRISE_CONNECTOR" /> de Enterprise, que se activa cuando se introducen datos en Chrome desde el portapapeles o arrastrando y soltando contenido web. Los campos <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> y <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> se usan para determinar si el conector debe enviar datos para su análisis cuando se introduzcan en una página específica y qué etiquetas se van a incluir en la solicitud de análisis de esos datos. Se incluirá en la solicitud de análisis una etiqueta correspondiente a un patrón "enable" si la URL de la página coincide con un patrón asociado a esta etiqueta, siempre y cuando no se encuentre una misma etiqueta que coincida con la URL de la página con el patrón "disable". El análisis se realiza si se debe incluir al menos 1 etiqueta en la solicitud. @@ -4930,7 +4909,6 @@ Si habilitas o inhabilitas esta opción, los usuarios no podrán cambiar ni anular esta configuración en <ph name="PRODUCT_NAME" />. Si no se asigna ningún valor a esta política, se habilitará pero el usuario no podrá cambiarla.</translation> -<translation id="7953256619080733119">Hosts de excepción manual de usuario administrado</translation> <translation id="7956210013490975468">Configura el servicio de proxy del sistema en <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="7958537754689366707">Es obligatorio introducir la contraseña cada doce horas</translation> <translation id="7961779417826583251">Inhabilitar los requisitos de la transparencia en los certificados en una lista de autoridades de certificación antiguas</translation> @@ -5155,11 +5133,6 @@ Si se asigna un valor a esta política, los usuarios no podrán cambiarlo ni anularlo. Si no se le asigna ningún valor, el dictado se inhabilitará al inicio, pero el usuario podrá habilitarlo en cualquier momento.</translation> -<translation id="829337533107201925">Si se habilita esta política, las políticas procedentes de un grupo atómico que no compartan la fuente con mayor prioridad de ese grupo serán ignoradas. - - Si se inhabilita esta política, no se ignorará ninguna política a causa de su fuente. Solo se ignorarán las políticas si se produce un conflicto y la política no tiene la mayor prioridad. - - Si esta política se configura desde la nube, no se puede aplicar a un usuario concreto.</translation> <translation id="8294750666104911727">Normalmente, las páginas con X-UA-Compatible establecido en chrome=1 se mostrarán en <ph name="PRODUCT_FRAME_NAME" />, independientemente de la política ChromeFrameRendererSettings. Si habilitas esta opción, las páginas no se escanearán para buscar metaetiquetas. @@ -5361,7 +5334,6 @@ <translation id="8544375438507658205">Procesador de HTML predeterminado de <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="8544465954173828789">Permite que los SMS del teléfono se sincronicen con Chromebook.</translation> <translation id="8548832052135586762">Establece el modo de impresión: solo en color, solo monocromo o sin restricción. Si no se asigna ningún valor a esta política, no se aplica ninguna restricción.</translation> -<translation id="8549772397068118889">Advertir cuando se visitan sitios no incluidos en paquetes de contenido</translation> <translation id="8566842294717252664">Oculta tienda web en página Nueva pestaña y en menú de aplicaciones</translation> <translation id="8569734380847633643"> Si se le asigna el valor "False" a esta política, <ph name="PRODUCT_OS_NAME" /> inhabilitará el Wi-Fi y los usuarios no podrán habilitarlo. @@ -5481,7 +5453,6 @@ Si estableces esta política, los usuarios no podrán cambiarla ni anularla. Esta política no afecta a la capacidad de los usuarios de configurar impresoras en determinados dispositivos. La política está pensada para ser complementaria a la configuración de impresoras de los usuarios.</translation> -<translation id="8764477907716150749">Esta política solo está destinada a uso interno de <ph name="PRODUCT_NAME" />.</translation> <translation id="8767743923206070405">Si se habilita esta política, se mostrará el botón de página principal en la barra de herramientas de <ph name="PRODUCT_NAME" />. Si se inhabilita esta política, no se mostrará el botón de página principal. Si se le asigna un valor a esta política, los usuarios no podrán cambiarlo en <ph name="PRODUCT_NAME" />. Si no se le asigna ningún valor, los usuarios podrán decidir si quieren que se muestre el botón de página principal.</translation> @@ -5833,6 +5804,7 @@ <translation id="9152473318295429890">Habilitar las sugerencias contextuales de páginas web relacionadas</translation> <translation id="9153446010242995516">Vuelve a instalar la versión anterior de destino si la versión del SO es más reciente y se puede conservar la configuración de nivel de dispositivo durante el proceso, incluidas las credenciales de red. Sin embargo, instala la versión anterior con un Powerwash completo, aunque no se puedan restaurar los datos, ya sea porque la versión de destino no admite restaurar datos o por cambios incompatibles con la versión anterior. Compatible con <ph name="PRODUCT_OS_NAME" /> 75 y versiones superiores, lo que significa que los clientes más antiguos no pueden instalar versiones anteriores.</translation> +<translation id="9155218447258425310">Duración de la notificación que se muestra al quitar la tarjeta inteligente de <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="9155375380628728544">Si se le asigna un valor a esta política, los usuarios podrán añadir solo uno de los idiomas incluidos en esta política a la lista de idiomas preferidos. Si no se le asigna ningún valor o se le asigna una lista vacía, los usuarios podrán especificar los idiomas que deseen.
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb index d9c5fc4b..872b81c 100644 --- a/components/policy/resources/policy_templates_fr.xtb +++ b/components/policy/resources/policy_templates_fr.xtb
@@ -203,11 +203,6 @@ Si cette règle est définie sur "False", <ph name="PRODUCT_NAME" /> n'autorisera pas la création de profils d'invités.</translation> <translation id="1363275621236827384">Activer l'envoi de requêtes de profils matériels à Quirks Server</translation> <translation id="1376119291123231789">Activer le mode avancé de recharge de la batterie</translation> -<translation id="1378850678793136128">Permet d'établir une liste de formats d'URL indiquant les sites qui sont automatiquement autorisés à accéder à un appareil USB avec le fournisseur et les ID produit indiqués sur l'écran de connexion. Pour que la règle soit valide, chaque élément de la liste doit contenir un champ "devices" et un champ "urls". Chaque élément du champ "devices" peut contenir à son tour un champ "vendor_id" et un champ "product_id". Si vous ne renseignez pas le champ "vendor_id", la règle qui est créée correspond à tous les appareils. Si vous ne renseignez pas le champ "product_id", la règle qui est créée correspond à tous les appareils ayant l'ID de fournisseur donné. Une règle contenant un champ "product_id", mais pas de champ "vendor_id", n'est pas valide. - - Le modèle d'autorisation USB utilise l'URL du site à l'origine de la demande ("URL de requête") et l'URL du site du cadre de niveau supérieur ("URL d'intégration") pour autoriser l'URL de requête à accéder à l'appareil USB. L'URL de requête peut être différente de l'URL d'intégration si le site à l'origine de la demande est chargé dans un iFrame. Le champ "URL" peut de ce fait contenir jusqu'à deux chaînes d'URL séparées par une virgule, afin d'indiquer l'URL de requête et l'URL d'intégration, respectivement. Si une seule URL est spécifiée, l'accès aux appareils USB concernés est autorisé si l'URL du site à l'origine de la demande correspond à cette URL, quel que soit l'état d'intégration. Si les URL indiquées dans le champ "URL" ne sont pas valides, la règle est ignorée. - - Si cette règle n'est pas définie, la valeur globale par défaut est utilisée pour tous les sites (aucun accès automatique).</translation> <translation id="1384459581748403878">Référence : <ph name="REFERENCE_URL" /></translation> <translation id="138847842893090358">Indiquer l'état de la mise à jour du système</translation> <translation id="1390901586107713894">Permet de déterminer quelles extensions les utilisateurs ne peuvent PAS installer. Les extensions déjà installées, mais qui sont bloquées, sont désactivées sans que l'utilisateur puisse les activer. Elles sont automatiquement réactivées dès que vous les retirez de la liste de blocage. @@ -451,12 +446,6 @@ Si cette règle n'est pas configurée et que l'espace disque libre sur l'appareil est inférieur à 20 Go (valeur par défaut), le plug-in <ph name="PLUGIN_VM_NAME" /> ne peut pas être installé. Si cette règle est configurée, mais que l'espace disque libre sur l'appareil est inférieur à celui requis, le plug-in <ph name="PLUGIN_VM_NAME" /> ne peut pas non plus être installé.</translation> -<translation id="1695708467571967752">Cette règle détermine si les utilisateurs peuvent ou non lire des contenus multimédias lorsque l'appareil est verrouillé. - - Si cette règle est définie sur "False", les commandes multimédias sont désactivées sur l'écran de verrouillage. - - Si cette règle est définie sur "True" ou n'est pas configurée, les commandes multimédias restent affichées sur l'écran si l'utilisateur verrouille l'appareil en cours de lecture. - </translation> <translation id="1700811900332333712">Autoriser l'appareil à lancer Powerwash</translation> <translation id="1708496595873025510">Définir la restriction liée à la récupération de la valeur de départ des variantes</translation> <translation id="171511968762040550">Si cette règle est définie sur "True" ou qu'elle n'est pas configurée, les utilisateurs peuvent ajouter, supprimer ou modifier des favoris. @@ -675,7 +664,6 @@ Si ce paramètre est désactivé, le transfert de fichiers est interdit. Si ce paramètre est activé ou s'il n'est pas configuré, le transfert de fichiers est autorisé.</translation> <translation id="2057317273526988987">Autoriser l'accès à une liste d'URL</translation> <translation id="2061810934846663491">Configurer les noms de domaines requis pour les hôtes d'accès à distance</translation> -<translation id="2067011586099792101">Bloquer l'accès aux sites en dehors des packs de contenu</translation> <translation id="2069350366303315077">Si cette règle est activée, <ph name="PRODUCT_NAME" /> force l'ouverture des sessions Invité et empêche les connexions de profils. Les connexions en mode Invité sont des profils <ph name="PRODUCT_NAME" /> où les fenêtres s'ouvrent en mode navigation privée. Si cette règle est désactivée ou qu'elle n'est pas configurée, ou si le mode Invité du navigateur est désactivé (via <ph name="BROWSER_GUEST_MODE_ENABLED_POLICY_NAME" />), l'utilisation de nouveaux profils ou de profils existants est autorisée.</translation> @@ -1485,6 +1473,11 @@ <translation id="316778957754360075">Ce paramètre a été supprimé à partir de la version 29 de <ph name="PRODUCT_NAME" />. Pour configurer des collections d'extensions et d'applications hébergées par l'organisation, il est recommandé d'inclure le site hébergeant les packages CRX dans ExtensionInstallSources et d'insérer des liens directs de téléchargement dans les packages sur une page Web. Il est possible de créer un lanceur d'applications pour cette page à l'aide de la règle ExtensionInstallForcelist.</translation> <translation id="3168968618972302728">Règles relatives à l'authentification Kerberos.</translation> <translation id="3171369832001535378">Modèle de nom d'hôte du réseau de l'appareil</translation> +<translation id="3176903288465566098">Si ce paramètre est activé, les utilisateurs qui ont déjà activé Phone Hub pourront envoyer et recevoir les notifications de leur téléphone sur Chrome OS. + + S'il est désactivé, les utilisateurs ne seront pas autorisés à se servir de cette fonctionnalité. Si la règle PhoneHubAllowed est désactivée, ils ne seront pas non plus autorisés à utiliser cette fonctionnalité. + + Si cette règle n'est pas définie, le comportement par défaut sera autorisé pour les utilisateurs gérés par une entreprise et pour les utilisateurs non gérés.</translation> <translation id="3177802893484440532">Exiger des contrôles OCSP/CRL en ligne pour les ancres d'approbation locales</translation> <translation id="3184161739683646075">Contrôle le mode DNS-over-HTTPS</translation> <translation id="3185009703220253572">depuis la version <ph name="SINCE_VERSION" /></translation> @@ -2123,7 +2116,6 @@ <translation id="4056910949759281379">Désactiver le protocole SPDY</translation> <translation id="4061590579642538878">Transmettre les informations liées aux rapports d'erreur.</translation> <translation id="4075675819066819571">Placer l'étagère sur le côté gauche de l'écran</translation> -<translation id="4075864623710596000">Les noms d'hôte indiqués dans cette liste seront exemptés de la vérification de la règle HSTS susceptible de remplacer les requêtes HTTP par des requêtes HTTPS. Seuls les noms d'hôte sans extension sont autorisés dans cette règle. Les noms d'hôtes doivent être indiqués sous forme canonique : tous les noms de domaine internationalisés (IDN) doivent être convertis dans leur format d'étiquette A, et toutes les lettres ASCII doivent être en minuscules. Cette règle ne s'applique qu'aux noms d'hôte spécifiques indiqués. Elle ne concerne pas leurs sous-domaines.</translation> <translation id="408029843066770167">Autoriser l'envoi de requêtes à un service horaire de Google</translation> <translation id="408076456549153854">Activer la connexion au navigateur</translation> <translation id="4082498585300984671">Activer la fonctionnalité Click to Call</translation> @@ -2233,9 +2225,6 @@ Si cette règle est désactivée, <ph name="PRODUCT_NAME" /> le sera également.</translation> <translation id="4203879074082863035">Seules les imprimantes répertoriées dans la liste blanche sont présentées aux utilisateurs</translation> -<translation id="420512303455129789">URL de mappage de dictionnaire vers un indicateur booléen indiquant si l'accès à l'hôte doit être autorisé s'il est associé à la valeur "True" (Vrai) ou bloqué s'il est associé à la valeur "False" (Faux). - - Il s'agit d'une règle utilisée en interne par <ph name="PRODUCT_NAME" />.</translation> <translation id="4209297478239988291">Active la fonctionnalité d'accessibilité de clic automatique. Cette fonctionnalité permet de cliquer sans appuyer physiquement sur la souris ou le pavé tactile, en passant la souris sur l'objet sur lequel vous voulez cliquer. @@ -2375,13 +2364,6 @@ <translation id="4494132853995232608">Dispositif DTC de Wilco</translation> <translation id="449423975179525290">Configurer les règles liées à <ph name="PLUGIN_VM_NAME" />.</translation> <translation id="4498493270899294764">Formats d'URL pour lesquels il n'est pas nécessaire de vérifier si les contenus téléchargés contiennent des logiciels malveillants</translation> -<translation id="450537894712826981">Cette règle permet de définir la taille du cache utilisé par <ph name="PRODUCT_NAME" /> pour stocker les fichiers multimédias en cache sur le disque. - - Si vous définissez cette règle, <ph name="PRODUCT_NAME" /> utilise le cache en fonction de la taille indiquée, que l'utilisateur ait spécifié l'indicateur "--media-cache-size" ou non. La valeur définie dans cette règle ne constitue pas une limite absolue, il s'agit plutôt d'une suggestion pour le système de mise en cache. En effet, toute valeur inférieure à quelques mégaoctets est trop faible et est arrondie pour atteindre un minimum acceptable. - - Si la valeur de cette règle est définie sur 0, la taille du cache par défaut est utilisée, mais l'utilisateur n'est pas en mesure de la modifier. - - Si cette règle n'est pas définie, la taille par défaut est utilisée, et l'utilisateur est en mesure de la remplacer à l'aide de l'indicateur "--media-cache-size".</translation> <translation id="4508084713148633492">Permet d'activer ou de désactiver une notification lorsque l'espace disque est faible. Cette règle s'applique à l'ensemble des utilisateurs de l'appareil. Si un seul compte utilisateur est configuré sur un appareil géré, la notification est toujours affichée, quelle que soit la valeur de cette règle. Si plusieurs comptes utilisateur sont configurés sur un appareil géré, la notification ne s'affiche que lorsque cette règle est définie sur "True". @@ -2676,7 +2658,6 @@ Si cette règle est désactivée, <ph name="PRODUCT_NAME" /> cesse d'envoyer ces requêtes.</translation> <translation id="5032164758660626397">Empêcher l'utilisateur de transférer des fichiers volumineux</translation> -<translation id="5047604665028708335">Autoriser l'accès aux sites en dehors des packs de contenu</translation> <translation id="5056708224511062314">Loupe désactivée</translation> <translation id="5058573563327660283">Sélectionner la stratégie utilisée pour libérer de l'espace disque au cours du nettoyage automatique (obsolète)</translation> <translation id="5061114193960158745">Permet d'établir la liste des sites Web qui ne déclencheront jamais de changement de navigateur. Chaque élément est traité comme une instruction. Les instructions pour lesquelles il y a une correspondance ne déclenchent pas l'ouverture d'un navigateur secondaire. Contrairement à la règle <ph name="URL_LIST_POLICY_NAME" />, les instructions s'appliquent dans les deux sens. Lorsque le module complémentaire d'<ph name="IE_PRODUCT_NAME" /> est activé, il contrôle également si <ph name="IE_PRODUCT_NAME" /> doit ouvrir ou non ces URL dans <ph name="PRODUCT_NAME" />. @@ -2952,6 +2933,7 @@ Si cette règle est définie sur "False", le transfert de port dans les conteneurs Crostini sera désactivé.</translation> <translation id="538108065117008131">Autoriser <ph name="PRODUCT_FRAME_NAME" /> à gérer les types de contenus suivants.</translation> +<translation id="5383436189211119400">Si la règle "DeviceArcDataSnapshotHours" est définie, le mécanisme de capture des données ARC est activé. La mise à jour de l'instantané des données ARC peut être lancée automatiquement pendant les intervalles de temps définis. Au démarrage d'un intervalle, cette mise à jour est requise et aucun utilisateur n'est connecté. Elle est lancée sans que l'utilisateur en soit averti. Si la session utilisateur est active, la notification s'affiche dans l'UI. Cette notification doit être validée pour redémarrer l'appareil et lancer le processus de mise à jour de l'instantané des données ARC. Remarque : Durant le processus de mise à jour de l'instantané des données ARC, l'appareil est bloqué et ne peut pas être utilisé.</translation> <translation id="538768040137709073">Permet d'activer la fonctionnalité de presse-papiers partagé, qui donne la possibilité aux utilisateurs d'envoyer du texte entre un ordinateur de bureau Chrome et un appareil Android lorsque la synchronisation est activée et que l'utilisateur est connecté. Si cette règle est définie sur "True", la possibilité d'envoyer du texte entre deux appareils est activée pour les utilisateurs de Chrome. @@ -3149,10 +3131,6 @@ Sachez que cette méthode n'est pas recommandée, car l'extension nameConstraints qui limite les noms d'hôtes pour lesquels un certificat donné peut être autorisé risque d'être ignorée. Si cette règle n'est pas configurée, ou si elle est définie sur "False", les certificats de serveur qui ne comportent pas d'extension subjectAlternativeName contenant soit un nom DNS, soit une adresse IP, ne seront pas approuvés.</translation> -<translation id="5578571772998293651">Autoriser les commentaires des utilisateurs. - Si la règle est définie sur "false", les utilisateurs ne peuvent pas envoyer de commentaires à Google. - - Si la règle est définie sur "true" ou n'est pas configurée, les utilisateurs peuvent envoyer des commentaires à Google via Menu > Aide > Signaler un problème ou via un raccourci clavier.</translation> <translation id="5579179012798142131">Si la règle "ArcEnabled" est définie sur "True", ARC est activé pour l'utilisateur, sauf si le mode Éphémère ou la connexion multicompte sont activés pendant la session de l'utilisateur. Si elle est définie sur "False" ou n'est pas définie, les utilisateurs professionnels ne peuvent pas utiliser ARC.</translation> <translation id="5582429816116769246">Permet de contrôler si les utilisateurs peuvent accéder à des imprimantes n'appartenant pas à l'entreprise. @@ -3416,7 +3394,6 @@ <translation id="5951418260805607969">Afficher une notification lorsque l'espace disque est faible</translation> <translation id="5961137303188584693">Adresse MAC de la carte d'interface réseau intégrée de l'appareil</translation> <translation id="5966615072639944554">Extensions autorisées à utiliser l'API d'attestation à distance</translation> -<translation id="5983708779415553259">Comportement par défaut des sites ne figurant dans aucun pack de contenu</translation> <translation id="5997543603646547632">Utiliser le format d'horloge 24 h par défaut</translation> <translation id="5997846976342452720">Indiquer si l'outil de recherche de plug-ins doit être désactivé (obsolète)</translation> <translation id="5998198091336830580">Cette règle fait partie du groupe atomique suivant (seules les règles issues de la source ayant la plus haute priorité dans le groupe sont appliquées) :</translation> @@ -3455,9 +3432,6 @@ <translation id="603768430528561926">Si cette règle est activée ou qu'elle n'est pas configurée, les utilisateurs d'appareils d'entreprise peuvent profiter d'offres via le service d'enregistrement <ph name="PRODUCT_OS_NAME" />. Si elle est désactivée, ils ne peuvent pas en bénéficier.</translation> -<translation id="6038407313189625985">Si cette règle est activée ou si elle n'est pas définie, la règle d'intégrité du code du moteur de rendu est activée. Cette règle ne doit être désactivée qu'en cas de problèmes de compatibilité avec le logiciel tiers qui doit s'exécuter dans les processus du moteur de rendu de Chrome. - - Désactiver cette règle affectera la sécurité et la stabilité de Chrome, car des codes inconnus et potentiellement dangereux pourront être chargés dans les processus de son moteur de rendu. Consultez la page https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies pour en savoir plus.</translation> <translation id="6048199181629830227">Activer l'alimentation alternée en heures pleines</translation> <translation id="6054485492411959335">Indique les imprimantes auxquelles un utilisateur a accès. @@ -4223,6 +4197,7 @@ <translation id="7068108874199666656">Permet de transférer l'application de la configuration réseau à tous les utilisateurs d'un appareil fonctionnant avec <ph name="PRODUCT_OS_NAME" />. La configuration réseau correspond à une chaîne formatée par JSON conformément au format de configuration de réseau ouvert.</translation> <translation id="7070525176564511548">La saisie du mot de passe est requise toutes les semaines (toutes les 168 heures)</translation> <translation id="7072208053150563108">Fréquence de modification du mot de passe machine</translation> +<translation id="7072567600438630966">Autorisez l'activation de Phone Hub.</translation> <translation id="7079519252486108041">Bloquer les fenêtres pop-up sur ces sites</translation> <translation id="7080072532759721791">Autoriser les utilisateurs à importer ou à télécharger des fichiers protégés par un mot de passe</translation> <translation id="7086677522575756117">Indique le pourcentage d'adaptation du délai d'assombrissement de l'écran en cas d'activité de l'utilisateur lors de la réduction de la luminosité ou peu de temps après la désactivation de l'écran. @@ -4400,6 +4375,7 @@ Si cette règle est laissée vide ou n'est pas configurée, l'utilisateur peut utiliser n'importe quel compte Google comme compte de navigation principal sur <ph name="PRODUCT_NAME" />.</translation> <translation id="723103540848640830">Définir le nombre minimal de caractères pour le code de l'écran de verrouillage</translation> <translation id="7234280155140786597">Noms des hôtes de messagerie native non autorisés (ou "*" pour tous)</translation> +<translation id="7246767840750730334">Autorisez l'activation des notifications Phone Hub.</translation> <translation id="7249828445670652637">Activer les certificats CA <ph name="PRODUCT_OS_NAME" /> pour les applications ARC</translation> <translation id="7252681704926980614">Le nom d'utilisateur et le nom de fichier sont envoyés au serveur des imprimantes en mode natif à chaque tâche d'impression. Le paramètre par défaut est de ne pas les envoyer. @@ -4506,6 +4482,11 @@ Cette règle étant obsolète, veuillez utiliser à la place la règle <ph name="PRINTERS_BULK_BLOCKLIST" />. </translation> +<translation id="7358744897221281073">Si ce paramètre est activé, les utilisateurs qui ont déjà activé Phone Hub pourront continuer sur Chrome OS ce qu'ils étaient en train de faire sur leur téléphone, par exemple consulter des pages Web. + + S'il est désactivé, les utilisateurs ne seront pas autorisés à se servir de cette fonctionnalité. Si la règle PhoneHubAllowed est désactivée, ils ne seront pas non plus autorisés à utiliser cette fonctionnalité. + + Si cette règle n'est pas définie, le comportement par défaut sera autorisé pour les utilisateurs gérés par une entreprise et pour les utilisateurs non gérés.</translation> <translation id="7360181094056034924">Permet de contrôler le comportement de <ph name="PRODUCT_NAME" /> avec les données importées et téléchargées pour lesquelles une analyse est jugée nécessaire. Retarder la disponibilité signifie que <ph name="PRODUCT_NAME" /> n'autorise pas l'utilisateur à accéder à un fichier téléchargé, à sélectionner un fichier pour l'importer, à coller des données à partir du presse-papiers ou à glisser-déposer des données tant que ces fichiers ou données n'ont pas été analysés et que les résultats ne sont pas connus. Cette restriction ne s'applique qu'aux fichiers ou données nécessitant une analyse comme défini par <ph name="SEND_FILES_FOR_MALWARE_CHECK_POLICY_NAME" />, <ph name="CHECK_CONTENT_COMPLIANCE_POLICY_NAME" /> et par les règles qui régissent la liste des domaines pour lesquels les vérifications sont activées. Si cette règle n'est pas configurée ou si elle est définie sur "Aucune", <ph name="PRODUCT_NAME" /> ne retarde l'importation d'aucun fichier, le collage de données à partir du presse-papiers, le glisser-déposer de données, ni l'accès aux fichiers téléchargés. L'analyse s'exécute en arrière-plan. @@ -4703,6 +4684,7 @@ Si cette règle n'est pas définie, le grand curseur est désactivé sur l'écran de connexion, mais les utilisateurs peuvent l'activer à tout moment. Dans ce cas, il reste activé d'un utilisateur à l'autre. Remarque : <ph name="DEVICE_LOGIN_SCREEN_LARGE_CURSOR_ENABLED" /> remplace cette règle si l'ancienne est définie.</translation> +<translation id="7632147323011514740">Intervalles pour le démarrage du processus de mise à jour de l'instantané des données ARC, pour les sessions Invité gérées</translation> <translation id="7632724434767231364">Nom de la bibliothèque GSSAPI</translation> <translation id="7643883929273267746">Limiter les comptes visibles dans <ph name="PRODUCT_NAME" /></translation> <translation id="7648907905084499629">Utiliser le comportement <ph name="FEATURE_NAME_SAMESITE_BY_DEFAULT_COOKIES" /> pour les cookies sur tous les sites</translation> @@ -4753,9 +4735,6 @@ Remarque : Pour le moment, les redémarrages automatiques ne sont activés que lorsque l'écran de connexion est affiché ou qu'une session d'application kiosque est en cours. Ce fonctionnement va changer prochainement : la règle s'appliquera toujours, qu'une session de n'importe quel type soit en cours ou non.</translation> <translation id="7701341006446125684">Régler la taille du cache pour les applications et les extensions (en octets)</translation> -<translation id="7709537117200051035">Dictionnaire mappant les noms d'hôte avec un indicateur booléen qui détermine si l'accès à l'hôte est autorisé s'il est associé à la valeur "True" (Vrai) ou bloqué s'il est associé à la valeur "False" (Faux). - - Il s'agit d'une règle utilisée en interne par <ph name="PRODUCT_NAME" />.</translation> <translation id="7710950688502974809">Liste des services des connecteurs Chrome Enterprise à appliquer au connecteur Enterprise <ph name="ON_BULK_DATA_ENTRY_ENTERPRISE_CONNECTOR" />, qui se déclenche lorsque des données sont collées dans Chrome depuis le presse-papiers ou lorsque du contenu Web est ajouté par glisser-déposer. Les champs <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> et <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> permettent de déterminer si le connecteur doit envoyer des données en vue d'une analyse lorsque celles-ci sont saisies dans une page spécifique, ainsi que les tags à inclure dans la demande d'analyse de ces données. Un tag correspondant à un format "enable" sera inclus dans la demande d'analyse si l'URL de la page suit un format associé à ce tag, à condition qu'aucun format "disable" associé à ce même tag ne corresponde à l'URL de la page. L'analyse a lieu si au moins un tag doit être inclus dans la demande. @@ -4903,7 +4882,6 @@ Si vous activez ou désactivez ce paramètre, les utilisateurs ne peuvent pas le modifier ni l'ignorer dans <ph name="PRODUCT_NAME" />. Si vous ne configurez pas cette règle, la prédiction réseau est activée, mais les utilisateurs peuvent la modifier.</translation> -<translation id="7953256619080733119">Hôtes d'exception manuelle des utilisateurs gérés</translation> <translation id="7956210013490975468">Configure le service proxy du système pour <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="7958537754689366707">La saisie du mot de passe est requise toutes les 12 heures</translation> <translation id="7961779417826583251">Désactiver l'application des règles de transparence des certificats pour une liste d'autorités de certification héritées</translation> @@ -4985,6 +4963,7 @@ Elle est toujours appliquée pour <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="8050080920415773384">Impression en mode natif</translation> <translation id="8053580360728293758">Remplace le mode d'impression couleur par défaut. Si le mode est indisponible, cette règle est ignorée.</translation> +<translation id="8056237304861875584">Autorisez la tâche Phone Hub à se poursuivre.</translation> <translation id="8059164285174960932">URL où les clients d'accès à distance doivent obtenir leur jeton d'authentification</translation> <translation id="8077245272412229388">Permet d'ajouter des comptes Kerberos préremplis. Si les identifiants Kerberos et de connexion sont les mêmes, un compte peut être configuré pour réutiliser les identifiants de connexion en définissant respectivement "<ph name="LOGIN_EMAIL_PLACEHOLDER" />" et "<ph name="PASSWORD_PLACEHOLDER" />" comme compte principal et mot de passe, afin que le ticket Kerberos puisse être récupéré automatiquement, sauf si l’authentification à deux facteurs est configurée. Les utilisateurs ne peuvent pas modifier de comptes avec cette règle. @@ -5129,11 +5108,6 @@ Si vous configurez cette règle, les utilisateurs ne peuvent pas la modifier ni l'ignorer. Si cette règle n'est pas définie, la dictée est désactivée au départ, mais les utilisateurs peuvent l'activer à tout moment.</translation> -<translation id="829337533107201925">Si cette règle est activée, les règles appartenant à un groupe atomique qui ne partagent pas la source avec la plus haute priorité de ce groupe sont ignorées. - - Si cette règle est désactivée, aucune règle n'est ignorée en raison de sa source. Des règles ne sont ignorées que s'il existe un conflit et que ces règles n'ont pas la plus haute priorité. - - Si cette règle est définie à partir d'une source cloud, elle ne peut pas cibler un utilisateur en particulier.</translation> <translation id="8294750666104911727">Généralement, les pages dont la balise "X-UA-Compatible" est définie sur "chrome=1" sont rendues dans <ph name="PRODUCT_FRAME_NAME" /> indépendamment de la règle "ChromeFrameRendererSettings". Si vous activez ce paramètre, les pages ne sont pas analysées pour détecter les balises Meta. @@ -5331,7 +5305,6 @@ <translation id="8544375438507658205">Moteur de rendu HTML par défaut pour <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="8544465954173828789">Autoriser la synchronisation des SMS entre le téléphone et le Chromebook</translation> <translation id="8548832052135586762">Définit l'impression couleur seulement, monochrome seulement ou sans restriction de couleur. Si aucune règle n'est définie, on considère qu'il n'y a aucune restriction.</translation> -<translation id="8549772397068118889">Prévenir en cas de consultation de sites en dehors des packs de contenu</translation> <translation id="8566842294717252664">Masquer le Chrome Web Store sur la page Nouvel onglet et dans le lanceur d'applications</translation> <translation id="8569734380847633643"> Si la règle est définie sur "False", <ph name="PRODUCT_OS_NAME" /> désactive le Wi-Fi, et les utilisateurs ne peuvent pas le réactiver. @@ -5451,7 +5424,6 @@ Si vous la configurez, les utilisateurs ne peuvent pas la modifier ni l'ignorer. Elle n'a aucune incidence pour les utilisateurs en ce qui concerne la possibilité ou non de configurer des imprimantes sur différents appareils. Elle est destinée à compléter la configuration des imprimantes effectuée par les différents utilisateurs.</translation> -<translation id="8764477907716150749">Il s'agit d'une règle utilisée en interne par <ph name="PRODUCT_NAME" />.</translation> <translation id="8767743923206070405">Si cette règle est activée, le bouton d'accueil s'affiche sur la barre d'outils de <ph name="PRODUCT_NAME" />. Si elle est désactivée, le bouton d'accueil ne s'affiche pas. Si cette règle est configurée, les utilisateurs ne peuvent pas la modifier dans <ph name="PRODUCT_NAME" />. Si elle n'est pas configurée, les utilisateurs peuvent choisir d'afficher ou non le bouton d'accueil.</translation> @@ -5740,6 +5712,11 @@ <translation id="9084985621503260744">Indiquer si l'activité vidéo a une incidence sur la gestion de l'alimentation</translation> <translation id="9088433379343318874">Activer le fournisseur de contenu de l'utilisateur supervisé</translation> <translation id="9088444059179765143">Configurer la méthode de détection automatique du fuseau horaire</translation> +<translation id="9095999573959728902">Si ce paramètre est activé, les utilisateurs seront autorisés à activer Phone Hub, qui leur permet d'interagir avec leur téléphone sur un appareil Chrome OS. + + S'il est désactivé, ils ne seront pas autorisés à activer Phone Hub. + + Si cette règle n'est pas définie, le comportement par défaut ne sera pas autorisé pour les utilisateurs gérés par une entreprise, mais il sera autorisé pour les utilisateurs non gérés.</translation> <translation id="9096086085182305205">Liste blanche des serveurs d'authentification</translation> <translation id="9105265795073104888">Les applications Android n'ont accès qu'à un sous-ensemble d'options de configuration du proxy. Elles peuvent avoir été volontairement conçues pour utiliser le proxy, mais vous ne pouvez pas les forcer à effectuer cette opération.</translation> <translation id="9106865192244721694">Autoriser WebUSB sur ces sites</translation>
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb index 07282fcc..6949c76 100644 --- a/components/policy/resources/policy_templates_id.xtb +++ b/components/policy/resources/policy_templates_id.xtb
@@ -202,11 +202,6 @@ Jika kebijakan ini disetel ke False, <ph name="PRODUCT_NAME" /> tidak akan mengizinkan profil tamu dimulai.</translation> <translation id="1363275621236827384">Mengaktifkan kueri ke Quirks Server untuk profil hardware</translation> <translation id="1376119291123231789">Mengaktifkan mode pengisian daya baterai lanjutan</translation> -<translation id="1378850678793136128">Memungkinkan Anda menetapkan daftar pola URL yang menentukan situs mana yang otomatis diizinkan untuk mengakses perangkat USB dengan ID vendor dan produk tertentu pada layar login. Setiap item daftar harus memiliki kolom "devices" dan "urls" agar kebijakan menjadi valid. Setiap item di kolom "perangkat" dapat memiliki kolom "vendor_id" dan "product_id". Jika kolom "vendor_id" tidak ada, kebijakan akan cocok dengan perangkat apa pun. Jika kolom "product_id" tidak ada, kebijakan akan cocok dengan perangkat apa pun yang memiliki ID vendor tertentu. Kebijakan yang memiliki kolom "product_id" tanpa kolom "vendor_id" menjadi tidak valid. - - Model izin USB menggunakan URL situs peminta ("URL peminta") dan URL situs bingkai level teratas ("URL sematan") untuk memberikan izin ke URL peminta untuk mengakses perangkat USB. URL peminta mungkin berbeda dengan URL sematan saat situs peminta dimuat dalam iframe. Oleh karena itu, kolom "url" dapat berisi hingga dua string URL yang dipisahkan dengan koma, untuk menentukan masing-masing URL peminta dan URL sematan. Jika hanya ada satu URL yang ditentukan, akses ke perangkat USB yang sesuai akan diberikan saat URL situs peminta cocok dengan URL ini, terlepas dari status sematannya. URL dalam "url" harus berupa URL yang valid. Jika tidak, kebijakan akan diabaikan. - - Jika kebijakan ini tidak disetel, nilai default global akan digunakan untuk semua situs (tidak ada akses otomatis).</translation> <translation id="1384459581748403878">Referensi: <ph name="REFERENCE_URL" /></translation> <translation id="138847842893090358">Melaporkan status update OS</translation> <translation id="1390901586107713894">Memungkinkan Anda menentukan ekstensi mana yang TIDAK dapat diinstal pengguna. Ekstensi yang sudah diinstal akan dinonaktifkan jika diblokir, tanpa memberikan opsi kepada pengguna untuk mengaktifkannya. Setelah ekstensi yang dinonaktifkan dihapus dari daftar yang tidak diizinkan, ekstensi akan kembali diaktifkan secara otomatis. @@ -449,12 +444,6 @@ Jika kebijakan ini tidak disetel, penginstalan <ph name="PLUGIN_VM_NAME" /> akan gagal jika ruang disk kosong yang tersedia di perangkat kurang dari 20 GB (nilai default). Jika kebijakan ini disetel, penginstalan <ph name="PLUGIN_VM_NAME" /> akan gagal jika ruang disk kosong yang tersedia di perangkat kurang dari yang ditentukan oleh kebijakan.</translation> -<translation id="1695708467571967752">Kebijakan ini mengendalikan apakah pengguna dapat memutar media saat perangkat terkunci. - - Jika kebijakan ini ditetapkan ke False, kontrol media pada layar kunci akan dinonaktifkan. - - Jika kebijakan ini ditetapkan ke True atau tidak ditetapkan, kontrol media akan ditampilkan pada layar kunci ketika pengguna mengunci perangkat saat media diputar. - </translation> <translation id="1700811900332333712">Izinkan perangkat untuk meminta powerwash</translation> <translation id="1708496595873025510">Setel batasan pada pengambilan bibit Varietas</translation> <translation id="171511968762040550">Jika kebijakan ditetapkan ke Benar (True) atau tidak ditetapkan, pengguna akan dapat menambahkan, menghapus, atau mengubah bookmark. @@ -673,7 +662,6 @@ Jika setelan ini dinonaktifkan, transfer file tidak akan diizinkan. Jika setelan ini diaktifkan atau tidak disetel, transfer file akan diizinkan.</translation> <translation id="2057317273526988987">Izinkan akses ke daftar URL</translation> <translation id="2061810934846663491">Mengonfigurasi nama domain wajib untuk host akses jarak jauh</translation> -<translation id="2067011586099792101">Memblokir akses ke situs di luar paket konten</translation> <translation id="2069350366303315077">Jika kebijakan disetel ke Aktif, <ph name="PRODUCT_NAME" /> akan menerapkan sesi tamu dan mencegah login profil. Login tamu adalah profil <ph name="PRODUCT_NAME" /> saat semua jendela berada dalam mode Samaran. Jika kebijakan disetel ke Nonaktif atau tidak disetel, atau Mode tamu browser dinonaktifkan (melalui <ph name="BROWSER_GUEST_MODE_ENABLED_POLICY_NAME" />), penggunaan profil baru atau yang sudah ada akan diizinkan.</translation> @@ -811,9 +799,9 @@ Kebijakan ini tidak boleh digunakan untuk perangkat yang digunakan secara umum. Jika kebijakan disetel ke Benar (True) atau tidak disetel, notifikasi peringatan privasi di sesi tamu terkelola yang diluncurkan otomatis akan terus ditampilkan hingga pengguna menutupnya.</translation> -<translation id="228665601367357543">Memungkinkan Anda menetapkan daftar pola URL yang menentukan situs mana yang otomatis diizinkan untuk mengakses perangkat USB dengan ID vendor dan produk tertentu. Setiap item daftar harus memiliki kolom "devices" dan "urls" agar kebijakan menjadi valid. Setiap item di kolom "perangkat" dapat memiliki kolom "vendor_id" dan "product_id". Jika kolom "vendor_id" tidak ada, kebijakan akan cocok dengan perangkat apa pun. Jika kolom "product_id" tidak ada, kebijakan akan cocok dengan perangkat apa pun yang memiliki ID vendor tertentu. Kebijakan yang memiliki kolom "product_id" tanpa kolom "vendor_id" menjadi tidak valid. +<translation id="228665601367357543">Memungkinkan Anda menetapkan daftar pola URL yang menentukan situs mana yang otomatis diizinkan untuk mengakses perangkat USB dengan ID vendor dan produk tertentu. Setiap item daftar harus memiliki kolom "devices" dan "urls" agar kebijakan menjadi valid. Setiap item di kolom "devices" dapat memiliki kolom "vendor_id" dan "product_id". Jika kolom "vendor_id" tidak ada, kebijakan akan cocok dengan perangkat apa pun. Jika kolom "product_id" tidak ada, kebijakan akan cocok dengan perangkat apa pun yang memiliki ID vendor tertentu. Kebijakan yang memiliki kolom "product_id" tanpa kolom "vendor_id" menjadi tidak valid. - Model izin USB menggunakan URL peminta dan URL sematan (dari situs bingkai level teratas) untuk mengizinkan URL peminta mengakses perangkat USB. URL peminta mungkin berbeda dengan URL sematan saat situs peminta dimuat dalam iframe. Jadi, kolom "url" dapat berisi hingga dua string yang dipisahkan dengan koma untuk menentukan URL ini. Jika Anda hanya menentukan satu, akses ke perangkat USB terkait akan diizinkan saat URL situs peminta cocok dengan URL ini, terlepas dari status sematan. URL dalam "url" harus berupa URL yang valid. Jika tidak, kebijakan akan diabaikan. + Model izin USB menggunakan URL peminta dan URL sematan (dari situs bingkai level teratas) untuk mengizinkan URL peminta mengakses perangkat USB. URL peminta mungkin berbeda dengan URL sematan saat situs peminta dimuat dalam iframe. Jadi, kolom "urls" dapat berisi hingga dua string yang dipisahkan dengan koma untuk menentukan URL ini. Jika Anda hanya menentukan satu, akses ke perangkat USB terkait akan diizinkan saat URL situs peminta cocok dengan URL ini, terlepas dari status sematan. URL dalam "urls" harus berupa URL yang valid. Jika tidak, kebijakan akan diabaikan. Tidak menyetel kebijakan berarti <ph name="DEFAULT_WEB_USB_GUARD_SETTING_POLICY_NAME" /> akan berlaku, jika disetel. Jika tidak, setelan pribadi pengguna akan digunakan. @@ -2133,7 +2121,6 @@ <translation id="4056910949759281379">Nonaktifkan protokol SPDY</translation> <translation id="4061590579642538878">Laporkan informasi tentang laporan kerusakan.</translation> <translation id="4075675819066819571">Posisikan rak di sisi kiri layar</translation> -<translation id="4075864623710596000">Hostname yang ditentukan dalam daftar ini akan dikecualikan dari pemeriksaan kebijakan HSTS yang berpotensi mengupgrade permintaan dari http ke https. Hanya hostname berlabel tunggal yang diizinkan dalam kebijakan ini. Hostname harus dikanonikalisasi: semua IDN harus dikonversi ke format berlabel A, dan semua huruf ASCII harus berupa huruf kecil. Kebijakan ini hanya berlaku untuk hostname tertentu yang sudah ditentukan; tidak berlaku untuk subdomain dari nama yang ditentukan.</translation> <translation id="408029843066770167">Izinkan kueri ke layanan waktu Google</translation> <translation id="408076456549153854">Aktifkan login browser</translation> <translation id="4082498585300984671">Mengaktifkan Fitur Click to Call</translation> @@ -2243,9 +2230,6 @@ Jika kebijakan disetel ke Nonaktif, <ph name="PRODUCT_NAME" /> akan dinonaktifkan.</translation> <translation id="4203879074082863035">Hanya printer yang diizinkan yang ditampilkan kepada pengguna</translation> -<translation id="420512303455129789">Kamus yang memetakan URL ke tanda boolean yang menentukan apakah akses ke hosting harus diizinkan (true) atau diblokir (false). - - Kebijakan ini untuk penggunaan internal oleh <ph name="PRODUCT_NAME" /> itu sendiri.</translation> <translation id="4209297478239988291">Mengaktifkan fitur aksesibilitas klik otomatis. Fitur ini berfungsi untuk mengklik tanpa perlu menekan mouse atau touchpad secara langsung, cukup arahkan kursor ke objek yang ingin Anda klik. @@ -2385,13 +2369,6 @@ <translation id="4494132853995232608">DTC wilco</translation> <translation id="449423975179525290">Konfigurasikan kebijakan terkait <ph name="PLUGIN_VM_NAME" />.</translation> <translation id="4498493270899294764">Pola URL untuk tidak memeriksa malware pada konten yang didownload</translation> -<translation id="450537894712826981">Mengonfigurasi ukuran cache yang akan digunakan <ph name="PRODUCT_NAME" /> untuk menyimpan file media di disk. - - Jika Anda menyetel kebijakan ini, <ph name="PRODUCT_NAME" /> akan menggunakan ukuran cache yang disediakan terlepas dari apakah pengguna menentukan tanda '--media-cache-size' atau tidak. Nilai yang ditentukan dalam kebijakan ini bukan merupakan batas mutlak namun merupakan saran terhadap sistem penyimpanan dalam cache, nilai apa pun di bawah beberapa megabyte dianggap terlalu kecil dan akan dibulatkan ke nilai minimum yang lebih wajar. - - Jika nilai kebijakan ini 0, ukuran cache default akan digunakan namun pengguna tidak akan dapat mengubahnya. - - Jika kebijakan ini tidak disetel, ukuran default akan digunakan dan pengguna dapat menimpanya dengan tanda --media-cache-size.</translation> <translation id="4508084713148633492">Mengizinkan pengaktifan atau penonaktifan notifikasi saat ruang penyimpanan hampir penuh. Ini berlaku untuk semua pengguna pada perangkat. Jika hanya ada satu akun pengguna di sebuah perangkat yang dikelola, notifikasi akan selalu ditampilkan, apa pun nilai yang ditetapkan untuk kebijakan ini. Jika ada beberapa akun pengguna di sebuah perangkat yang dikelola, notifikasi hanya akan ditampilkan saat kebijakan ini disetel ke Benar (True). @@ -2446,7 +2423,7 @@ <translation id="4578912515887794133">Jika setelan ini diaktifkan, maka host akses jarak jauh akan membandingkan nama pengguna lokal (yang dikaitkan dengan host) dengan nama akun Google yang terdaftar sebagai pemilik host (misalnya, "johan" jika host adalah milik akun Google "johan@example.com"). Host akses jarak jauh tidak akan dimulai jika nama pemilik host berbeda dengan nama pengguna lokal yang dikaitkan dengan host tersebut. Kebijakan RemoteAccessHostMatchUsername harus digunakan bersama RemoteAccessHostDomain untuk menegaskan bahwa akun Google pemilik host dikaitkan dengan domain tertentu (misalnya "example.com"). Jika setelan ini dinonaktifkan atau tidak ditetapkan, host akses jarak jauh dapat dikaitkan dengan pengguna lokal mana pun.</translation> -<translation id="4587365491100112056">Menyetel kebijakan akan menentukan masa berlaku cache data autentikasi dalam hitungan jam. Cache memiliki data tentang realm yang dipercaya oleh realm perangkat (realm terafiliasi). Oleh karena itu, cache data autentikasi akan membantu mempercepat login. Data khusus pengguna dan data untuk realm yang tidak terafiliasi tidak akan di-cache. +<translation id="4587365491100112056">Menyetel kebijakan akan menentukan masa berlaku cache data autentikasi dalam hitungan jam. Cache memiliki data tentang realm yang dipercaya oleh realm perangkat (realm terafiliasi). Oleh karena itu, penyimpanan data autentikasi ke cache akan membantu mempercepat login. Data khusus pengguna dan data untuk realm yang tidak terafiliasi tidak akan di-cache. Menyetel kebijakan ke 0 akan menonaktifkan penyimpanan data autentikasi ke cache. Data khusus realm diambil setiap login sehingga menonaktifkan penyimpanan data autentikasi ke cache dapat memperlambat login pengguna secara signifikan. @@ -2685,7 +2662,6 @@ Jika kebijakan disetel ke Nonaktif, <ph name="PRODUCT_NAME" /> akan berhenti mengirimkan kueri tersebut.</translation> <translation id="5032164758660626397">Mencegah pengguna mentransfer file berukuran besar</translation> -<translation id="5047604665028708335">Memungkinkan akses ke situs di luar paket konten</translation> <translation id="5056708224511062314">Lup dinonaktifkan</translation> <translation id="5058573563327660283">Pilih strategi yang digunakan untuk mengosongkan ruang disk selama pembersihan otomatis (tidak digunakan lagi)</translation> <translation id="5061114193960158745">Menyetel kebijakan akan mengontrol daftar situs yang tidak pernah menyebabkan pengalihan browser. Setiap item diperlakukan sebagai aturan. Aturan yang cocok tidak akan membuka browser alternatif. Tidak seperti kebijakan <ph name="URL_LIST_POLICY_NAME" />, aturan berlaku untuk kedua arah. Jika diaktifkan, add-in <ph name="IE_PRODUCT_NAME" /> juga akan mengontrol apakah <ph name="IE_PRODUCT_NAME" /> harus membuka URL ini di <ph name="PRODUCT_NAME" />. @@ -3161,10 +3137,6 @@ Perlu diperhatikan bahwa tindakan ini tidak disarankan, karena dapat melewati ekstensi nameConstraints yang membatasi hostname untuk mengotorisasi sertifikat yang diberikan. Jika kebijakan ini tidak disetel, atau disetel ke false, sertifikat server yang tidak menyertakan ekstensi subjectAlternativeName yang berisi nama DNS atau alamat IP tidak akan dipercaya.</translation> -<translation id="5578571772998293651">Izinkan masukan pengguna. - Jika kebijakan disetel ke false, pengguna tidak dapat mengirim masukan ke Google. - - Jika kebijakan tidak disetel atau disetel ke true, pengguna dapat mengirim masukan ke Google melalui Menu->Bantuan->Laporkan Masalah atau kombinasi kunci.</translation> <translation id="5579179012798142131">Menetapkan ArcEnabled ke Benar (True) akan mengaktifkan ARC untuk pengguna, kecuali mode Singkat atau login multipel aktif saat sesi pengguna. Jika kebijakan ditetapkan ke Salah (False) atau tidak ditetapkan, pengguna versi bisnis tidak dapat menggunakan ARC.</translation> <translation id="5582429816116769246">Memungkinkan Anda mengontrol apakah pengguna dapat mengakses printer non-perusahaan @@ -3428,7 +3400,6 @@ <translation id="5951418260805607969">Menampilkan notifikasi saat ruang penyimpanan hampir penuh</translation> <translation id="5961137303188584693">Alamat MAC NIC bawaan perangkat</translation> <translation id="5966615072639944554">Ekstensi yang diizinkan untuk menggunakan API pengesahan jarak jauh</translation> -<translation id="5983708779415553259">Perilaku default untuk situs tidak ada dalam paket konten mana pun</translation> <translation id="5997543603646547632">Menggunakan 24 jam sebagai default</translation> <translation id="5997846976342452720">Menentukan apakah pencari plugin harus dinonaktifkan (tidak digunakan lagi)</translation> <translation id="5998198091336830580">Kebijakan ini merupakan bagian dari grup atom berikut (hanya kebijakan dari sumber tertinggi yang ada di grup yang akan diterapkan) :</translation> @@ -3467,9 +3438,6 @@ <translation id="603768430528561926">Jika kebijakan disetel ke Aktif atau tidak disetel, pengguna perangkat perusahaan akan dapat menukarkan penawaran melalui Pendaftaran <ph name="PRODUCT_OS_NAME" />. Jika kebijakan disetel ke Nonaktif, pengguna tidak dapat menukarkan penawaran ini.</translation> -<translation id="6038407313189625985">Jika kebijakan ini diaktifkan atau tidak ditetapkan, Integritas Kode Perender akan diaktifkan. Kebijakan ini harus dinonaktifkan jika masalah kompatibilitas dialami oleh software pihak ketiga yang harus berjalan di dalam proses perender Chrome. - - Menonaktifkan kebijakan ini akan merugikan bagi keamanan dan stabilitas Chrome karena kode yang tidak dikenal dan berpotensi berbahaya akan diizinkan untuk dimuat di dalam proses perender Chrome. Lihat https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies untuk info lebih lanjut.</translation> <translation id="6048199181629830227">Mengaktifkan fitur manajemen pengaktifan daya baterai</translation> <translation id="6054485492411959335">Menentukan printer yang dapat digunakan pengguna. @@ -4786,9 +4754,6 @@ Catatan: Saat ini, mulai ulang otomatis hanya diaktifkan saat layar masuk ditampilkan atau sesi aplikasi kios sedang berjalan. Hal ini akan berubah di masa mendatang dan kebijakan akan terus diterapkan, terlepas dari apakah sesi dari jenis tertentu apa pun sedang dijalankan atau tidak.</translation> <translation id="7701341006446125684">Menyetel ukuran cache Ekstensi dan Aplikasi (dalam byte)</translation> -<translation id="7709537117200051035">Kamus yang memetakan nama hosting ke tanda boolean yang menentukan apakah akses ke hosting harus diizinkan (true) atau diblokir (false). - - Kebijakan ini untuk penggunaan internal <ph name="PRODUCT_NAME" /> itu sendiri.</translation> <translation id="7710950688502974809">Daftar setelan layanan Konektor Chrome Enterprise yang akan diterapkan ke Konektor Enterprise <ph name="ON_BULK_DATA_ENTRY_ENTERPRISE_CONNECTOR" />, yang terpicu saat data dimasukkan ke Chrome dari papan klip atau dengan menarik lalu melepas konten web. Kolom <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" />, dan <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> digunakan untuk menentukan apakah konektor perlu mengirimkan data untuk dianalisis saat dimasukkan ke halaman tertentu, dan jenis tag yang perlu disertakan dalam permintaan analisis untuk data tersebut. Tag yang sesuai dengan pola 'aktifkan' akan disertakan dalam permintaan analisis jika URL halaman cocok dengan pola yang terkait dengan tag tersebut, selama tidak ada pola 'nonaktifkan' yang memiliki tag sama yang cocok dengan URL halaman itu. Analisis dilakukan jika terdapat minimal 1 tag yang disertakan dalam permintaan. @@ -4936,7 +4901,6 @@ Jika setelan ini diaktifkan atau dinonaktifkan, pengguna tidak dapat mengubah atau menggantinya di <ph name="PRODUCT_NAME" />. Jika tidak ditetapkan, kebijakan ini akan diaktifkan tetapi pengguna dapat mengubahnya.</translation> -<translation id="7953256619080733119">Hosting pengecualian manual pengguna yang dikelola</translation> <translation id="7956210013490975468">Mengonfigurasi layanan System-proxy untuk <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="7958537754689366707">Sandi harus dimasukkan setiap dua belas jam</translation> <translation id="7961779417826583251">Nonaktifkan penerapan Transparansi Sertifikat untuk daftar Otoritas Sertifikat Lama</translation> @@ -5152,11 +5116,6 @@ Jika Anda menetapkan kebijakan ini, pengguna tidak dapat mengubah atau menggantinya. Jika kebijakan ini tidak ditetapkan, dikte mula-mula akan dinonaktifkan, tetapi dapat diaktifkan oleh pengguna kapan saja.</translation> -<translation id="829337533107201925">Jika kebijakan ini diaktifkan, kebijakan yang muncul dari grup atom yang tidak membagikan sumbernya dengan prioritas tertinggi grup akan diabaikan. - - Jika kebijakan ini dinonaktifkan, tidak ada kebijakan yang akan diabaikan karena sumbernya. Kebijakan hanya akan diabaikan jika terdapat konflik dan tidak memiliki prioritas tertinggi. - - Jika kebijakan ini ditetapkan dari sumber cloud, kebijakan tidak boleh menargetkan pengguna khusus</translation> <translation id="8294750666104911727">Umumnya halaman dengan X-UA-Compatible yang disetel ke chrome=1 akan dirender di <ph name="PRODUCT_FRAME_NAME" /> terlepas dari kebijakan 'ChromeFrameRendererSettings'. Jika Anda mengaktifkan setelan ini, meta tag halaman tidak akan dipindai. @@ -5354,7 +5313,6 @@ <translation id="8544375438507658205">Pengurai HTML default untuk <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="8544465954173828789">Izinkan SMS disinkronkan dari ponsel ke Chromebook.</translation> <translation id="8548832052135586762">Menyetel pencetakan ke hanya warna, hanya monokrom, atau tanpa batasan mode warna. Kebijakan yang tidak disetel diperlakukan sebagai tidak ada batasan.</translation> -<translation id="8549772397068118889">Memperingatkan saat mengunjungi situs di luar paket konten</translation> <translation id="8566842294717252664">Menyembunyikan toko web dari Halaman Tab Baru dan peluncur aplikasi</translation> <translation id="8569734380847633643"> Jika kebijakan ini ditetapkan ke False, <ph name="PRODUCT_OS_NAME" /> akan menonaktifkan Wi-Fi dan pengguna tidak dapat mengaktifkannya kembali. @@ -5474,7 +5432,6 @@ Jika kebijakan ini ditetapkan, pengguna tidak dapat mengubah atau menggantinya. Kebijakan ini tidak memengaruhi kemampuan pengguna untuk mengonfigurasi printer di tiap perangkat. Kebijakan ini ditujukan sebagai tambahan untuk konfigurasi printer yang ditentukan oleh tiap pengguna.</translation> -<translation id="8764477907716150749">Kebijakan ini untuk penggunaan internal oleh <ph name="PRODUCT_NAME" /> sendiri.</translation> <translation id="8767743923206070405">Jika kebijakan disetel ke Aktif, tombol Beranda akan ditampilkan di toolbar <ph name="PRODUCT_NAME" />. Jika kebijakan disetel ke Nonaktif, tombol Beranda tidak akan muncul. Jika Anda menyetel kebijakan, pengguna tidak dapat mengubahnya di <ph name="PRODUCT_NAME" />. Jika tidak disetel, pengguna dapat memilih untuk menampilkan tombol Beranda atau tidak.</translation>
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb index 57c2cdd8..0ad5a8f 100644 --- a/components/policy/resources/policy_templates_it.xtb +++ b/components/policy/resources/policy_templates_it.xtb
@@ -202,11 +202,6 @@ Se questa norma viene impostata su false, in <ph name="PRODUCT_NAME" /> non sarà possibile avviare profili ospite.</translation> <translation id="1363275621236827384">Attiva le query in Quirks Server per i profili hardware</translation> <translation id="1376119291123231789">Attiva modalità di ricarica avanzata della batteria</translation> -<translation id="1378850678793136128">Consente di impostare un elenco di pattern URL che specificano i siti a cui viene concessa automaticamente l'autorizzazione di accesso a un dispositivo USB con gli ID fornitore e prodotto indicati. Perché il criterio sia valido, ogni elemento elencato deve avere un campo "devices" e un campo "urls". Ogni elemento nel campo "devices" può avere un campo "vendor_id" e un campo "product_id". Se il campo "vendor_id" non viene specificato, il criterio può corrispondere a qualsiasi dispositivo. Se il campo "product_id" non viene specificato, il criterio può corrispondere a qualsiasi dispositivo con l'ID fornitore specificato. Un criterio con un campo "product_id" senza un campo "vendor_id" non è valido. - - Il modello di autorizzazione USB utilizza l'URL del sito richiedente ("URL richiedente") e l'URL del sito frame di livello principale ("URL di incorporamento") per concedere all'URL richiedente l'autorizzazione di accesso al dispositivo USB. L'URL richiedente può essere diverso dall'URL di incorporamento quando il sito richiedente viene caricato in un iframe. Di conseguenza il campo "urls" può contenere fino a due stringhe URL delimitate da una virgola per specificare rispettivamente l'URL richiedente e quello di incorporamento. Se viene specificato un solo URL, l'accesso ai dispositivi USB corrispondenti viene concesso quando l'URL del sito richiedente corrisponde all'URL, a prescindere dallo stato di incorporamento. Gli URL nel campo "urls" devono essere validi, altrimenti il criterio viene ignorato. - - Se il criterio non viene configurato, viene utilizzato il valore predefinito globale per tutti i siti (nessun accesso automatico).</translation> <translation id="1384459581748403878">Riferimento: <ph name="REFERENCE_URL" /></translation> <translation id="138847842893090358">Indica lo stato di aggiornamento del sistema operativo</translation> <translation id="1390901586107713894">Consente di specificare le estensioni che gli utenti NON possono installare. Le estensioni già installate vengono disattivate, se bloccate, e l'utente non può attivarle. Un'estensione disattivata da una lista bloccata viene automaticamente riattivata nel caso venga rimossa dalla lista. @@ -435,12 +430,6 @@ Se il criterio non viene configurato, l'installazione di <ph name="PLUGIN_VM_NAME" /> non va a buon fine se lo spazio libero disponibile sul dispositivo è inferiore a 20 GB (valore predefinito). Se il criterio è impostato, l'installazione di <ph name="PLUGIN_VM_NAME" /> non va a buon fine se lo spazio libero disponibile sul dispositivo è inferiore a quello richiesto dal criterio.</translation> -<translation id="1695708467571967752">Questo criterio consente di stabilire se gli utenti possono o meno riprodurre contenuti multimediali con il dispositivo bloccato. - - Se questo criterio viene impostato su False, i controlli multimediali nella schermata di blocco vengono disattivati. - - Se questo criterio viene impostato su True o non viene impostato, i controlli multimediali vengono visualizzati nella schermata di blocco se l'utente blocca il dispositivo durante la riproduzione di contenuti multimediali. - </translation> <translation id="1700811900332333712">Consenti al dispositivo di richiedere il powerwash</translation> <translation id="1708496595873025510">Imposta la limitazione sul recupero del numero di inizializzazione delle varianti</translation> <translation id="171511968762040550">Se il criterio è impostato su True o se non viene configurato, gli utenti possono aggiungere, rimuovere o modificare i preferiti. @@ -654,7 +643,6 @@ Se questa impostazione è disattivata, il trasferimento di file non sarà concesso. Se questa impostazione è attivata o non configurata, il trasferimento di file sarà concesso.</translation> <translation id="2057317273526988987">Consenti l'accesso a un elenco di URL</translation> <translation id="2061810934846663491">Configura i nomi di dominio richiesti per gli host di accesso remoto</translation> -<translation id="2067011586099792101">Blocca l'accesso ai siti non presenti nei pacchetti di contenuti</translation> <translation id="2069350366303315077">Se il criterio viene impostato su Attivato, <ph name="PRODUCT_NAME" /> applica le sessioni Ospite e impedisce gli accessi ai profili. Gli accessi Ospite sono profili di <ph name="PRODUCT_NAME" /> in cui le finestre sono nella modalità di navigazione in incognito. Se il criterio viene impostato su Disattivato, se non viene configurato o se la modalità Ospite del browser viene disattivata (tramite il criterio <ph name="BROWSER_GUEST_MODE_ENABLED_POLICY_NAME" />), è possibile utilizzare profili nuovi ed esistenti.</translation> @@ -1110,6 +1098,7 @@ Se il criterio non viene impostato, non viene aggiunto alcun sito web all'elenco. Nota: puoi aggiungere elementi all'elenco anche tramite i criteri <ph name="USE_IE_SITELIST_POLICY_NAME" /> e <ph name="EXTERNAL_SITELIST_URL_POLICY_NAME" />.</translation> +<translation id="2640898752536996430">L'utente viene disconnesso</translation> <translation id="264093234299818170">Vengono mostrate tutte le stampanti, tranne quelle indicate nella lista bloccata.</translation> <translation id="264252574246191885">Non in elenco</translation> <translation id="2647069081229792812">Attiva o disattiva la funzione di modifica dei preferiti</translation> @@ -1441,6 +1430,7 @@ <translation id="3072847235228302527">Imposta i Termini di servizio di un account locale del dispositivo</translation> <translation id="3086995894968271156">Consente di configurare Cast Receiver in <ph name="PRODUCT_NAME" />.</translation> <translation id="3091832372132789233">Carica la batteria dei dispositivi che sono principalmente collegati a una fonte di alimentazione esterna.</translation> +<translation id="309416443108680956">Consente di specificare cosa succede quando un utente che sta effettuando l'autenticazione tramite un token di sicurezza (ad esempio con una smart card) rimuove il token durante una sessione. <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_IGNORE" />: non accade nulla. <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" />: lo schermo viene bloccato finché l'utente non ripete l'autenticazione. <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" />: la sessione viene terminata e l'utente viene disconnesso. Se questo criterio non viene configurato, per impostazione predefinita viene usata l'opzione <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_IGNORE" />.</translation> <translation id="3096595567015595053">Elenco dei plug-in attivati</translation> <translation id="3101501961102569744">Scegli come specificare le impostazioni del server proxy</translation> <translation id="3101709781009526431">Data e ora</translation> @@ -1864,6 +1854,7 @@ Se il criterio viene impostato, gli utenti non possono cambiare il tipo di pagina iniziale in <ph name="PRODUCT_NAME" />. Se non viene impostato, l'utente può decidere se impostare o meno la pagina Nuova scheda come pagina iniziale. Su <ph name="MS_WIN_NAME" />, questa funzionalità è disponibile soltanto nelle istanze che fanno parte di un dominio <ph name="MS_AD_NAME" />, sono in esecuzione su Windows 10 Pro o sono registrate in <ph name="CHROME_BROWSER_CLOUSE_MANAGEMENT_NAME" />. Su <ph name="MAC_OS_NAME" />, questa funzionalità è disponibile soltanto nelle istanze gestite tramite MDM o aggiunte a un dominio tramite MCX.</translation> +<translation id="3695706037816556327">Azione alla rimozione del token di sicurezza (ad esempio smart card) per <ph name="PRODUCT_OS_NAME" /></translation> <translation id="3701121231485832347">Consente di gestire le impostazioni specifiche dei dispositivi <ph name="PRODUCT_OS_NAME" /> gestiti da <ph name="MS_AD_NAME" />.</translation> <translation id="3702518095257671450">Attestazione da remoto</translation> <translation id="3702647575225525306"><ph name="POLICY_NAME" /> (Il campo a una sola riga è obsoleto e sarà rimosso a breve. Inizia a usare la casella di testo multiriga qui sotto).</translation> @@ -1901,6 +1892,8 @@ Se queste norme non vengono impostate, gli utenti possono scegliere autonomamente le impostazioni del proxy.</translation> <translation id="3758249152301468420">Disabilita Strumenti per sviluppatori</translation> +<translation id="3760231600118073732">La sessione corrente viene bloccata</translation> +<translation id="3764097800332238572">Questo criterio viene applicato soltanto se il criterio <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_POLICY_NAME" /> è impostato su <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" /> o <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" /> e un utente che effettua l'autenticazione tramite smart card rimuove quest'ultima. Questo criterio consente di specificare per quanti secondi visualizzare una notifica che informa l'utente dell'azione imminente. Questa notifica blocca lo schermo. L'azione viene compiuta soltanto allo scadere della notifica. L'utente può impedire l'azione inserendo di nuovo la smart card prima della scadenza della notifica. Se questo criterio viene impostato su zero, non verrà visualizzata alcuna notifica e l'azione verrà compiuta immediatamente.</translation> <translation id="3765260570442823273">Durata del messaggio di avviso di uscita per inattività</translation> <translation id="377044054160169374">Applicazione dell'intervento in caso di esperienza intrusiva</translation> <translation id="3780152581321609624">Includi porta non standard in Kerberos SPN</translation> @@ -2107,7 +2100,6 @@ <translation id="4056910949759281379">Disabilita protocollo SPDY</translation> <translation id="4061590579642538878">Segnala informazioni relative ai rapporti sugli arresti anomali.</translation> <translation id="4075675819066819571">Posiziona la shelf sul lato sinistro dello schermo</translation> -<translation id="4075864623710596000">I nomi host specificati in questo elenco saranno esenti dalla verifica dei criteri HSTS che potrebbero eseguire l'upgrade delle richieste da http a https. Solo i nomi host con etichetta singola sono consentiti in questo criterio. I nomi host devono essere canonicalizzati: ogni IDN deve essere convertito nel relativo formato A-label e tutte le lettere ASCII devono essere minuscole. Questo criterio si applica soltanto ai nomi host specificati e non ai relativi sottodomini.</translation> <translation id="408029843066770167">Consenti query a un servizio orario di Google</translation> <translation id="408076456549153854">Attiva accesso al browser</translation> <translation id="4082498585300984671">Attiva la funzionalità Click-to-call</translation> @@ -2217,9 +2209,6 @@ Se il criterio viene impostato su Disattivato, <ph name="PRODUCT_NAME" /> verrà disattivato.</translation> <translation id="4203879074082863035">Agli utenti vengono mostrate soltanto le stampanti indicate nella whitelist</translation> -<translation id="420512303455129789">Un dizionario che mappa gli URL su un flag booleano che specifica se l'accesso all'host deve essere consentito (true) o bloccato (false). - - Questa norma è per uso interno di <ph name="PRODUCT_NAME" />.</translation> <translation id="4209297478239988291">Consente di attivare la funzione di accessibilità di clic automatico. Questa funzione consente di fare clic senza premere fisicamente il mouse o il touchpad, basta passare il mouse sull'oggetto su cui si vuole fare clic. @@ -2359,13 +2348,6 @@ <translation id="4494132853995232608">DTC wilco</translation> <translation id="449423975179525290">Imposta le norme relative a <ph name="PLUGIN_VM_NAME" />.</translation> <translation id="4498493270899294764">Pattern URL per cui non è necessario eseguire il controllo della presenza di malware nei contenuti scaricati</translation> -<translation id="450537894712826981">Consente di configurare le dimensioni della cache che verranno utilizzate da <ph name="PRODUCT_NAME" /> per archiviare sul disco i file multimediali memorizzati nella cache. - -Se questa norma viene impostata, <ph name="PRODUCT_NAME" /> utilizzerà le dimensioni della cache indicate a prescindere dalla specifica o meno da parte dell'utente del flag "--media-cache-size". Il valore specificato in questa norma non è un limite rigido ma un suggerimento per il sistema di memorizzazione nella cache. I valori inferiori ad alcuni megabyte sono troppo piccoli e verranno arrotondati a un valore minimo ragionevole. - -Se il valore di questa norma è 0, verranno utilizzate le dimensioni della cache predefinite, che l'utente non potrà modificare. - -Se questa norma non viene impostata, verranno utilizzate le dimensioni predefinite, che l'utente potrà sostituire con il flag --media-cache-size.</translation> <translation id="4508084713148633492">Consente di attivare o di disattivare una notifica quando lo spazio sul disco è in esaurimento. La scelta si applica a tutti gli utenti sul dispositivo. Se su un dispositivo gestito è presente esattamente un account utente, la notifica viene mostrata sempre, indipendentemente dal valore di questo criterio. Se su un dispositivo gestito sono presenti più account, la notifica viene mostrata solo se questo criterio è impostato su Vero. @@ -2659,7 +2641,6 @@ Se viene impostato su Disattivato, <ph name="PRODUCT_NAME" /> smette di inviare queste query.</translation> <translation id="5032164758660626397">Impedisci all'utente di trasferire file di grandi dimensioni</translation> -<translation id="5047604665028708335">Consenti l'accesso ai siti non presenti nei pacchetti di contenuti</translation> <translation id="5056708224511062314">Ingrandimento dello schermo disattivato</translation> <translation id="5058573563327660283">Seleziona la strategia da utilizzare per liberare spazio su disco durante la pulizia automatica (obsoleta)</translation> <translation id="5061114193960158745">Questo criterio consente di stabilire l'elenco di siti web che non causeranno mai un cambio di browser. Ogni elemento è considerato come una regola. Le regole con una corrispondenza non aprono un browser alternativo. A differenza del criterio <ph name="URL_LIST_POLICY_NAME" />, le regole vengono applicate in entrambe le direzioni. Quando il componente aggiuntivo <ph name="IE_PRODUCT_NAME" /> è attivo, il criterio consente di stabilire anche se <ph name="IE_PRODUCT_NAME" /> deve aprire questi URL in <ph name="PRODUCT_NAME" />. @@ -3137,10 +3118,6 @@ Tieni presente che è sconsigliato farlo, perché potrebbe essere consentita l'elusione dell'estensione nameConstraints, che limita i nomi host per cui può essere autorizzato un determinato certificato. Se questa norma non viene impostata, o viene impostata su false, i certificati server privi di estensione subjectAlternativeName e contenenti un nome DNS o un indirizzo IP non verranno considerati attendibili.</translation> -<translation id="5578571772998293651">Consenti il feedback degli utenti. - Se il criterio viene impostato su false, gli utenti non possono inviare feedback a Google. - - Se il criterio non viene impostato o viene impostato su true, gli utenti possono inviare feedback a Google dal percorso Menu -> Guida -> Segnala un problema o tramite una combinazione di tasti.</translation> <translation id="5579179012798142131">Se ArcEnabled è impostato su True, ARC viene attivato per l'utente, a meno che la modalità temporanea o l'accesso simultaneo siano attivi durante la sessione utente. Se il criterio è impostato su False o non è configurato, gli utenti aziendali non possono utilizzare ARC.</translation> <translation id="5582429816116769246">Consente di controllare se gli utenti possono accedere alle stampanti non aziendali. @@ -3403,7 +3380,6 @@ <translation id="5951418260805607969">Mostra una notifica quando lo spazio sul disco è in esaurimento</translation> <translation id="5961137303188584693">Indirizzo MAC NIC integrato del dispositivo</translation> <translation id="5966615072639944554">Estensioni autorizzate a utilizzare l'API di attestazione da remoto</translation> -<translation id="5983708779415553259">Comportamento predefinito per i siti non presenti in pacchetti di contenuti</translation> <translation id="5997543603646547632">Utilizza orologio di 24 ore per impostazione predefinita</translation> <translation id="5997846976342452720">Specifica se disattivare o meno la ricerca dei plug-in (ritirata)</translation> <translation id="5998198091336830580">Questo criterio fa parte del seguente gruppo atomico (vengono applicati soltanto i criteri dell'origine con la priorità massima presenti nel gruppo):</translation> @@ -3442,9 +3418,6 @@ <translation id="603768430528561926">Se il criterio viene impostato su Attivato o se non viene configurato, gli utenti dei dispositivi aziendali possono riscattare le offerte tramite la registrazione a <ph name="PRODUCT_OS_NAME" />. Se viene impostato su Disattivato, gli utenti non possono riscattare tali offerte.</translation> -<translation id="6038407313189625985">Se questo criterio viene attivato o non viene impostato, l'integrità del codice del renderer viene attivata. Questo criterio dovrebbe essere disattivato solo se si riscontrano problemi di compatibilità con software di terze parti che devono essere eseguiti all'interno dei processi del renderer di Chrome. - - La disattivazione di questo criterio ha un effetto negativo sulla sicurezza e sulla stabilità di Chrome, in quanto verrà consentito il caricamento di codice sconosciuto e potenzialmente dannoso all'interno dei processi del renderer di Chrome. Per ulteriori informazioni, consulta la pagina https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies.</translation> <translation id="6048199181629830227">Attiva la gestione della variazione dei picchi energetici</translation> <translation id="6054485492411959335">Consente di specificare le stampanti utilizzabili dagli utenti. @@ -3924,6 +3897,7 @@ <translation id="6672070613706645316">Consenti agli utenti di personalizzare lo sfondo della pagina Nuova scheda</translation> <translation id="6672630473862787247">Attiva l'autenticazione ambientale nelle sessioni standard, Ospite e in modalità in incognito.</translation> <translation id="6685903773201985073">Attiva l'autenticazione ambientale nelle sessioni standard e Ospite.</translation> +<translation id="6689343802305995925">Non viene compiuta alcuna azione</translation> <translation id="6689792153960219308">Segnala lo stato dell'hardware</translation> <translation id="6690425645391461516">Disattiva controlli dell'intercettazione DNS; consenti barre di informazioni "http://intranetsite/" alternative</translation> <translation id="6698632841807204978">Attiva la stampa monocromatica</translation> @@ -4192,6 +4166,7 @@ Se il criterio viene impostato su Disattivato, <ph name="PRODUCT_NAME" /> chiude la scheda dopo il passaggio a un browser alternativo, anche se era l'ultima scheda. Questo causa l'uscita da <ph name="PRODUCT_NAME" />.</translation> <translation id="7019805045859631636">Veloce</translation> +<translation id="7026351325994257733">Consenti la sincronizzazione delle configurazioni di reti Wi-Fi tra i dispositivi <ph name="PRODUCT_OS_NAME" /> e un telefono Android collegato</translation> <translation id="7027785306666625591">Configura la gestione dell'alimentazione in <ph name="PRODUCT_OS_NAME" />. Queste norme consentono di configurare il comportamento di <ph name="PRODUCT_OS_NAME" /> quando l'utente rimane inattivo per un determinato periodo di tempo.</translation> @@ -4564,6 +4539,13 @@ - Se questo criterio viene impostato su Disattivato, gli amministratori devono comunicarlo agli utenti finali del dispositivo.</translation> <translation id="747275827471712187">Ripristina il comportamento <ph name="ATTRIBUTE_SAMESITE_NAME" /> precedente per i cookie su questi siti</translation> +<translation id="7476621944304431784">Se questa impostazione viene attivata, gli utenti potranno sincronizzare le configurazioni di reti Wi-Fi tra i loro dispositivi <ph name="PRODUCT_OS_NAME" /> e un telefono Android collegato. Per poter sincronizzare le configurazioni di reti Wi-Fi, gli utenti devono attivare esplicitamente questa funzionalità svolgendo una procedura di configurazione. + + Se questa impostazione viene disattivata, gli utenti non potranno sincronizzare le configurazioni di reti Wi-Fi. + + Questa funzionalità dipende dall'attivazione del tipo di dati <ph name="WIFI_CONFIGURATIONS_DATATYPE_NAME" /> in Sincronizzazione Chrome. Questa funzionalità non verrà attivata se il tipo di dati <ph name="WIFI_CONFIGURATIONS_DATATYPE_NAME" /> viene disattivato nel criterio <ph name="SYNC_TYPES_LIST_DISABLED_POLICY_NAME" /> o se viene disattivata la funzionalità Sincronizzazione Chrome nel criterio <ph name="SYNC_DISABLED_POLICY_NAME" />. + + Se questo criterio non viene configurato, per impostazione predefinita la funzionalità non è consentita per gli utenti gestiti.</translation> <translation id="7477231245051133709">Attiva la funzione di accessibilità di audio in formato mono</translation> <translation id="7477239290070847560">Destinazioni protocolli (mDNS e DNS-SD) basate su configurazione automatica</translation> <translation id="7485481791539008776">Regole di selezione della stampante predefinita</translation> @@ -4755,9 +4737,6 @@ Nota. Attualmente i riavvii automatici vengono attivati soltanto durante la visualizzazione della schermata di accesso o durante una sessione di un'app kiosk. Questo comportamento cambierà in futuro e la norma sarà sempre valida, a prescindere dal fatto che sia in corso o meno una sessione di tipo specifico.</translation> <translation id="7701341006446125684">Imposta le dimensioni della cache di app ed estensioni (in byte)</translation> -<translation id="7709537117200051035">Un dizionario che mappa i nomi host su un flag booleano che specifica se l'accesso all'host deve essere consentito (true) oppure bloccato (false). - - Questa norma è per uso interno di <ph name="PRODUCT_NAME" />.</translation> <translation id="7710950688502974809">Elenco di impostazioni per i servizi di Chrome Enterprise Connectors da applicare al connettore di Enterprise <ph name="ON_BULK_DATA_ENTRY_ENTERPRISE_CONNECTOR" />, che si attiva quando vengono inseriti dati in Chrome dagli appunti o tramite trascinamento di contenuti web. I campi <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> e <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> vengono utilizzati per stabilire se il connettore deve inviare dati per l'analisi quando viene inserito in una pagina specifica e quali tag includere nella richiesta di analisi di tali dati. Un tag che corrisponde a un pattern "enable" verrà incluso nella richiesta di analisi se l'URL della pagina corrisponde a un pattern associato a tale tag purché nessun pattern "disable" con lo stesso tag corrisponda all'URL della pagina. L'analisi viene eseguita se almeno un tag deve essere incluso nella richiesta. @@ -4905,7 +4884,6 @@ Se attivi questa impostazione o la disattivi, gli utenti non potranno modificare o sostituire questa impostazione in <ph name="PRODUCT_NAME" />. Se la norma non è impostata, sarà attivata ma l'utente potrà modificarla.</translation> -<translation id="7953256619080733119">Host delle eccezioni manuali per gli utenti gestiti</translation> <translation id="7956210013490975468">Configura il servizio proxy di sistema per <ph name="PRODUCT_OS_NAME" /></translation> <translation id="7958537754689366707">Richiedi inserimento della password ogni dodici ore</translation> <translation id="7961779417826583251">Disattiva l'applicazione di Certificate Transparency per un elenco di autorità di certificazione precedenti</translation> @@ -5128,11 +5106,6 @@ Se imposti questo criterio, gli utenti non potranno modificarlo o ignorarlo. Se questo criterio non viene impostato, inizialmente la dettatura è disattivata, ma l'utente può attivarla in qualsiasi momento.</translation> -<translation id="829337533107201925">Se questo criterio viene attivato, i criteri relativi a un gruppo atomico che non condividono l'origine con la priorità massima di quel gruppo verranno ignorati. - - Se questo criterio viene disattivato, nessun criterio sarà ignorato in base all'origine. I criteri saranno ignorati esclusivamente se si verifica un conflitto e se non hanno la massima priorità. - - Se questo criterio viene impostato da un'origine cloud, non può essere applicato a un utente specifico</translation> <translation id="8294750666104911727">In genere le pagine con X-UA-Compatible impostato su chrome=1 saranno visualizzate in <ph name="PRODUCT_FRAME_NAME" /> nonostante la norma "£ChromeFrameRendererSettings". Se attivi questa impostazione, le pagine non saranno sottoposte a scansione per i metatag. @@ -5330,7 +5303,6 @@ <translation id="8544375438507658205">Renderer HTML predefinito per <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="8544465954173828789">Consente la sincronizzazione di messaggi SMS dal telefono al Chromebook</translation> <translation id="8548832052135586762">Consente di impostare solo la stampa a colori, solo la stampa monocromatica oppure nessuna limitazione per la modalità a colori. Se la norma non viene impostata non vengono applicate limitazioni.</translation> -<translation id="8549772397068118889">Avvisa quando vengono visitati siti non presenti nei pacchetti di contenuti</translation> <translation id="8566842294717252664">Nascondi il Web Store nella pagina Nuova scheda e in Avvio applicazioni</translation> <translation id="8569734380847633643"> Se la norma è impostata su false, <ph name="PRODUCT_OS_NAME" /> disattiverà la connessione Wi-Fi e gli utenti non potranno riattivarla. @@ -5450,7 +5422,6 @@ Se imposti questo criterio, gli utenti non potranno modificarlo o ignorarlo. Questo criterio non influisce sulla possibilità per gli utenti di configurare le stampanti su singoli dispositivi. È supplementare alla configurazione delle stampanti da parte dei singoli utenti.</translation> -<translation id="8764477907716150749">Questa norma è per uso interno di <ph name="PRODUCT_NAME" />.</translation> <translation id="8767743923206070405">Se il criterio viene impostato su Attivato, nella barra degli strumenti di <ph name="PRODUCT_NAME" /> viene mostrato il pulsante Pagina iniziale. Se viene impostato su Disattivato, il pulsante Pagina iniziale non viene mostrato. Se il criterio viene impostato, gli utenti non possono modificarlo in <ph name="PRODUCT_NAME" />. Se non viene impostato, gli utenti possono decidere se mostrare o meno il pulsante Pagina iniziale.</translation> @@ -5779,6 +5750,7 @@ <translation id="9152473318295429890">Attiva i suggerimenti contestuali delle pagine web correlate</translation> <translation id="9153446010242995516">Esegui il rollback e rimani nella versione target se la versione del sistema operativo è più recente di quella target. Prova a trasferire la configurazione a livello di dispositivo (incluse le credenziali di rete) tramite la procedura di rollback, se possibile, ma esegui il rollback con Powerwash completo anche se il ripristino dei dati non è possibile (perché la versione target non supporta il ripristino dei dati o a causa di una modifica non compatibile con le versioni precedenti). Supportato su <ph name="PRODUCT_OS_NAME" /> 75 e versioni successive. Per i client precedenti, questo valore indica che il rollback è disattivato.</translation> +<translation id="9155218447258425310">Durata della notifica alla rimozione della smart card per <ph name="PRODUCT_OS_NAME" /></translation> <translation id="9155375380628728544">Se il criterio viene impostato, gli utenti possono aggiungere all'elenco di lingue preferite soltanto una delle lingue elencate in questo criterio. Se il criterio non viene impostato o viene impostato un elenco vuoto, gli utenti possono specificare le lingue che preferiscono.
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb index 5996949d..e74fd85fe 100644 --- a/components/policy/resources/policy_templates_ja.xtb +++ b/components/policy/resources/policy_templates_ja.xtb
@@ -198,11 +198,6 @@ このポリシーが false に設定されている場合、ゲストモードのプロフィールで <ph name="PRODUCT_NAME" /> を使用することはできません。</translation> <translation id="1363275621236827384">ハードウェア プロファイルを Quirks サーバーに問い合わせられるようにする</translation> <translation id="1376119291123231789">詳細なバッテリー充電モードを有効にする</translation> -<translation id="1378850678793136128">ログイン画面で特定のベンダー ID と製品 ID の USB デバイスへのアクセスを自動的に許可するサイトの URL パターンリストを設定できます。リストの各項目では、「devices」(デバイス)と「urls」(URL)フィールドを指定する必要があります。「devices」フィールドの各項目には、「vendor_id」(ベンダー ID)と「product_id」(製品 ID)フィールドを指定できます。「vendor_id」フィールドを省略した場合、あらゆるデバイスに一致するポリシーが作成されます。「product_id」フィールドを省略した場合、指定したベンダー ID のあらゆるデバイスに一致するポリシーが作成されます。「product_id」フィールドを指定して「vendor_id」フィールドは指定しなかった場合、ポリシーは無効になります。 - - USB のアクセス許可モデルでは、リクエスト元のサイトの URL(以下「リクエスト元 URL」)と最上位フレームサイトの URL(以下「埋め込み元 URL」)を使用して、リクエスト元 URL に USB デバイスへのアクセスを許可します。リクエスト元のサイトが iframe 内で読み込まれている場合、リクエスト元 URL と埋め込み元 URL は異なる可能性があります。このため、「urls」フィールドには、リクエスト元 URL と埋め込み元 URL の両方を指定できるよう、カンマ区切りで URL 文字列を 2 つまで含めることができます。URL を 1 つだけ指定した場合、対応する USB デバイスへのアクセスは、リクエスト元のサイトの URL がこの URL と一致した場合に、埋め込みの状態にかかわらず許可されます。「urls」フィールドの URL には必ず有効な URL を指定してください。無効な URL を指定した場合、このポリシーは無視されます。 - - このポリシーが未設定の場合は、すべてのサイトでグローバルなデフォルト値(自動アクセスなし)が使用されます。</translation> <translation id="1384459581748403878">参考: <ph name="REFERENCE_URL" /></translation> <translation id="138847842893090358">OS の更新ステータスをレポートします</translation> <translation id="1390901586107713894">ユーザーがインストールできない拡張機能を指定できます。すでにインストールされている拡張機能をブロック設定した場合、その拡張機能は無効になり、ユーザーが有効にすることはできません。拒否リストに登録して無効になった拡張機能は、拒否リストから削除すると自動的に再度有効になります。 @@ -443,12 +438,6 @@ このポリシーを未設定のままにした場合、デバイスで使用できるディスクの空き容量が 20 GB(デフォルト値)未満のときに <ph name="PLUGIN_VM_NAME" /> のインストールが失敗します。 このポリシーを設定した場合、デバイスで使用できるディスクの空き容量がポリシーで要求される値未満のときに <ph name="PLUGIN_VM_NAME" /> のインストールが失敗します。</translation> -<translation id="1695708467571967752">デバイスがロックされているときにユーザーがメディアを再生できるかどうかを制御します。 - - このポリシーが False に設定されている場合、ロック画面のメディア コントロールは無効になります。 - - このポリシーが True または未設定の場合、メディアの再生中にユーザーがデバイスをロックすると、ロック画面にメディア コントロールが表示されます。 - </translation> <translation id="1700811900332333712">デバイスに Powerwash のリクエストを許可する</translation> <translation id="1708496595873025510">バリエーション シードの取得に制限を設定する</translation> <translation id="171511968762040550">このポリシーを True に設定するか未設定のままにした場合、ユーザーはブックマークを追加、削除、変更できます。このポリシーを False に設定した場合、ユーザーはブックマークを追加、削除、変更できません。既存のブックマークは引き続き使用できます。</translation> @@ -658,7 +647,6 @@ この設定が無効な場合、ファイル転送は許可されません。この設定が有効か、設定されていない場合は、ファイル転送が許可されます。</translation> <translation id="2057317273526988987">URL のリストへのアクセスを許可する</translation> <translation id="2061810934846663491">リモート アクセス ホストの必須のドメイン名を設定する</translation> -<translation id="2067011586099792101">コンテンツ パック外部のサイトへのアクセスをブロックする</translation> <translation id="2073552873076775140"><ph name="PRODUCT_NAME" /> へのログインを許可する</translation> <translation id="2075732129949889165">Crostini Ansible playbook</translation> <translation id="2077129598763517140">ハードウェア アクセラレーションが使用可能な場合は使用する</translation> @@ -2078,7 +2066,6 @@ <translation id="4056910949759281379">SPDY プロトコルを無効にする</translation> <translation id="4061590579642538878">障害レポートに関する情報を報告します。</translation> <translation id="4075675819066819571">シェルフを画面の左側に配置する</translation> -<translation id="4075864623710596000">このリストに記されたホスト名については、HTTP から HTTPS へのアップグレード リクエストになる可能性がある HSTS ポリシー チェックから除外されます。このポリシーでは、単一ラベルのホスト名のみが許可されます。ホスト名は正規化されている必要があります。IDN はすべて A ラベル形式に変換し、すべての ASCII 文字列が小文字である必要があります。ポリシーが適用されるのは指定された特定のホスト名のみです。指定された名前のサブドメインには適用されません。</translation> <translation id="408029843066770167">Google 時間サービスへのクエリを許可する</translation> <translation id="408076456549153854">ブラウザのログインを有効にする</translation> <translation id="4082498585300984671">Click-to-Call 機能を有効にする</translation> @@ -2188,9 +2175,6 @@ このポリシーを無効に設定した場合、<ph name="PRODUCT_NAME" /> はオフになります。</translation> <translation id="4203879074082863035">ホワイトリスト登録されているプリンタのみをユーザーに表示する</translation> -<translation id="420512303455129789">ホストへのアクセスを許可する(true)かブロックする(false)かを示すブール値フラグに、URL をマッピングする辞書。 - - このポリシーは <ph name="PRODUCT_NAME" /> 自体が内部で使用するためのものです。</translation> <translation id="4209297478239988291">「自動クリック」のユーザー補助機能を有効にします。 この機能では、クリックしたい項目にカーソルを合わせれば、マウスやトラックパッドを押さなくてもクリックできます。 @@ -2330,13 +2314,6 @@ <translation id="4494132853995232608">Wilco DTC</translation> <translation id="449423975179525290"><ph name="PLUGIN_VM_NAME" /> に関連するポリシーを設定します。</translation> <translation id="4498493270899294764">ダウンロードしたコンテンツに対して、不正なソフトウェアをチェックしない URL パターン</translation> -<translation id="450537894712826981"><ph name="PRODUCT_NAME" /> がディスク上にキャッシュ ファイルを保存するときのキャッシュ サイズを設定します。 - - このポリシーを設定した場合、ユーザーが「--media-cache-size」フラグを指定したかどうかに関係なく、<ph name="PRODUCT_NAME" /> は指定のキャッシュ サイズを使用します。このポリシーで指定される値は、絶対的な上限値や下限値ではなく、キャッシュ システムに対する推奨値になります。数メガバイト小さいと判断された値は、適正な最小値に引き上げられて処理されます。 - - このポリシーの値が 0 の場合は、デフォルトのキャッシュ サイズが使用されます。ユーザーはこの値を変更できません。 - - このポリシーが未設定の場合は、デフォルトのサイズが使用されます。ユーザーは --media-cache-size フラグを使用してこの値をオーバーライドできます。</translation> <translation id="4508084713148633492">ディスク容量が少ない場合の通知を有効または無効にします。この設定は、デバイスのすべてのユーザーに適用されます。 管理対象デバイスにユーザー アカウントが 1 つしかない場合、このポリシーの値に関係なく、通知は常に表示されます。 管理対象デバイスに複数のユーザー アカウントがある場合、このポリシーが True に設定されているときのみ通知が表示されます。 @@ -2621,7 +2598,6 @@ このポリシーを無効に設定した場合、画面共有 API の呼び出しは失敗し、エラーが表示されます。</translation> <translation id="5032164758660626397">ユーザーによる大きなファイルの転送を禁止する</translation> -<translation id="5047604665028708335">コンテンツ パック外部のサイトへのアクセスを許可する</translation> <translation id="5056708224511062314">画面拡大鏡を無効にする</translation> <translation id="5058573563327660283">自動クリーンアップ時にディスクの空き容量を増やす方法を選択する(サポート終了)</translation> <translation id="5061114193960158745">このポリシーの設定により、ブラウザの切り替えを行わないウェブサイトのリストを管理します。個々のアイテムはルールとして扱われます。このルールに一致すると、代替ブラウザは開かれません。<ph name="URL_LIST_POLICY_NAME" /> ポリシーとは異なり、ルールは双方向に適用されます。<ph name="IE_PRODUCT_NAME" /> アドインが有効になっている場合は、<ph name="IE_PRODUCT_NAME" /> でこれらの URL を開くときに <ph name="PRODUCT_NAME" /> を使用するかどうかもこのポリシーで制御されます。 @@ -3086,10 +3062,6 @@ この場合、nameConstraints 拡張による制限(証明書を受け入れるホスト名の制限)が適用されなくなる可能性があるため、有効化はおすすめしません。 このポリシーが未設定のままか false に設定されている場合、subjectAlternativeName 拡張がなく DNS 名または IP アドレスのいずれかを含むサーバー証明書は信頼されません。</translation> -<translation id="5578571772998293651">ユーザーからのフィードバックを許可します。 - このポリシーが false に設定されている場合、ユーザーは Google にフィードバックを送信できません。 - - このポリシーが未設定か true に設定されている場合、ユーザーはメニューの [ヘルプ] で [問題の報告] をクリックするか、ショートカット キーを押して、Google にフィードバックを送信できます。</translation> <translation id="5579179012798142131">ArcEnabled を True に設定するとユーザーの ARC はオンになります(ユーザーのセッション中に一時ログインモードまたはマルチログインがオンになっている場合を除く)。このポリシーを False に設定するか未設定のままにした場合、企業ユーザーは ARC を使用できません。</translation> <translation id="5582429816116769246">ユーザーが企業プリンタ以外のプリンタにアクセスできるかどうかを制御します。 @@ -3350,7 +3322,6 @@ <translation id="5951418260805607969">ディスク容量が少ない場合に通知を表示する</translation> <translation id="5961137303188584693">デバイスの組み込みの NIC MAC アドレス</translation> <translation id="5966615072639944554">Remote Attestation API の使用が許可されている拡張機能</translation> -<translation id="5983708779415553259">どのコンテンツ パックにもないサイトに対するデフォルトの動作</translation> <translation id="5997543603646547632">デフォルトで 24 時間表示を使用</translation> <translation id="5997846976342452720">プラグイン ファインダーを無効にするかどうかを指定する(サポート終了)</translation> <translation id="5998198091336830580">このポリシーは、次の最小単位グループの一部です(グループ内にある優先度の最も高いソースのポリシーのみが適用されます)。</translation> @@ -3386,9 +3357,6 @@ <translation id="6034341625190551415">公開セッションとキオスク アカウントを制御します。</translation> <translation id="6034603289689965535">ページのアンロード中にポップアップを表示することをページに許可します</translation> <translation id="6036523166753287175">リモート アクセス ホストからのファイアウォール トラバーサルを有効にする</translation> -<translation id="6038407313189625985">このポリシーが有効になっているか未設定の場合、レンダラコードの整合性チェックが有効になります。このポリシーは、Chrome のレンダラ プロセス内で実行する必要のある第三者ソフトウェアとの間で互換性の問題が発生する場合にのみ無効にしてください。 - - このポリシーを無効にすると、悪質な疑いのある不明なコードに対して Chrome のレンダラ プロセス内での読み込みが許可されるため、Chrome のセキュリティと安定性が低下します。詳しくは https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies をご覧ください。</translation> <translation id="6048199181629830227">電力のピークシフト管理を有効にする</translation> <translation id="6054485492411959335">ユーザーに使用を許可するプリンタを指定します。 @@ -4652,9 +4620,6 @@ 注: 現時点では、自動再起動が有効化されるのはログイン画面が表示されている間、またはキオスク アプリ セッションが進行中であるときに限られます。これは将来変更される予定であり、進行中のセッションの種類にかかわらず、ポリシーは常に適用されるようになります。</translation> <translation id="7701341006446125684">アプリと拡張機能のキャッシュ サイズを設定する(バイト単位)</translation> -<translation id="7709537117200051035">ホストへのアクセスを許可する(true)かブロックする(false)かを示すブール値フラグに、ホスト名をマッピングする辞書。 - - このポリシーは <ph name="PRODUCT_NAME" /> 自体が内部で使用するためのものです。</translation> <translation id="7710950688502974809"><ph name="ON_BULK_DATA_ENTRY_ENTERPRISE_CONNECTOR" /> Enterprise コネクタに適用する Chrome Enterprise Connectors サービス設定のリストで、Chrome でクリップボードからデータが入力された場合、またはウェブ コンテンツがドラッグ&ドロップされた場合に呼び出されます。 <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />、<ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />、<ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" />、<ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> のフィールドは、特定のページに入力されたデータをコネクタで分析のため送信すべきかどうかと、そのデータの分析リクエストにどのタグを含めるかを判別する際に使用されます。「有効」パターンに該当するタグは、ページの URL がそのタグに関連付けられているパターンと一致し、同じタグの「無効」パターンとは一致しない場合に分析リクエストに含められます。分析は、リクエストにタグが少なくとも 1 つ含まれる場合に行われます。 @@ -4804,7 +4769,6 @@ この設定が有効または無効の場合、ユーザーは <ph name="PRODUCT_NAME" /> でこの設定を変更したりオーバーライドしたりできません。 このポリシーが未設定の場合、この設定は有効になりますが、ユーザーが変更できます。</translation> -<translation id="7953256619080733119">管理対象ユーザーの手動による例外管理 - ホスト</translation> <translation id="7956210013490975468"><ph name="PRODUCT_OS_NAME" /> のシステム プロキシ サービスを設定します。</translation> <translation id="7958537754689366707">12 時間ごとにパスワードの入力を求める</translation> <translation id="7961779417826583251">リストで指定されたレガシー認証局に対して Certificate Transparency(証明書の透明性)の適用を無効にする</translation> @@ -5025,11 +4989,6 @@ このポリシーを設定した場合、ユーザーによる変更やオーバーライドはできません。 このポリシーを未設定のままにした場合、音声入力が無効(初期設定)になりますが、ユーザーはいつでも有効にできます。</translation> -<translation id="829337533107201925">このポリシーが有効になっている場合、最小単位グループのポリシーのうち、そのグループの最も優先度が高いソースを共有していないものは無視されます。 - - このポリシーが無効になっている場合、ソースによってポリシーが無視されることはありません。ポリシーは、矛盾が発生し、そのポリシーに最も高い優先度が設定されていない場合にのみ無視されます。 - - このポリシーがクラウドソースから設定されている場合、特定のユーザーを対象とすることはできません。</translation> <translation id="8294750666104911727">通常、X-UA-Compatible が chrome=1 に設定されているページは、ChromeFrameRendererSettings ポリシーに関係なく <ph name="PRODUCT_FRAME_NAME" /> にレンダリングされます。 この設定を有効にすると、ページのメタ タグはスキャンされません。 @@ -5228,7 +5187,6 @@ <translation id="8544375438507658205"><ph name="PRODUCT_FRAME_NAME" /> のデフォルトの HTML レンダラ</translation> <translation id="8544465954173828789">スマートフォンから Chromebook への SMS メッセージの同期を許可する。</translation> <translation id="8548832052135586762">カラー印刷のみ、白黒印刷のみ、カラー印刷モードの制限なし、のいずれかに設定します。ポリシーが未設定の場合は、制限なしとして扱われます。</translation> -<translation id="8549772397068118889">コンテンツ パック外部のサイトを訪問したときに警告する</translation> <translation id="8566842294717252664">新しいタブページとアプリ ランチャーでウェブストアを非表示にする</translation> <translation id="8569734380847633643"> このポリシーが false に設定されている場合、<ph name="PRODUCT_OS_NAME" /> で Wi-Fi が無効になります。ユーザーが元に戻すことはできません。 @@ -5347,7 +5305,6 @@ このポリシーを設定した場合、ユーザーが変更したりオーバライドしたりすることはできません。 このポリシーでは、ユーザーが各自のデバイスでプリンタを設定できるかどうかは制御されません。このポリシーは、個々のユーザーのプリンタ設定をサポートすることを目的としたものです。</translation> -<translation id="8764477907716150749">このポリシーは、<ph name="PRODUCT_NAME" /> 自体が内部で使用するものです。</translation> <translation id="8767743923206070405">このポリシーを有効にすると、<ph name="PRODUCT_NAME" /> のツールバーにホームボタンが表示されます。無効にすると、ホームボタンは表示されません。 このポリシーが設定されている場合、ユーザーは <ph name="PRODUCT_NAME" /> でこの設定を変更できません。未設定の場合、ホームボタンを表示するかどうかはユーザーが選択します。</translation>
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb index e3e67f7..c9ab5dd 100644 --- a/components/policy/resources/policy_templates_ko.xtb +++ b/components/policy/resources/policy_templates_ko.xtb
@@ -203,11 +203,6 @@ 이 정책이 'false'로 설정되면 <ph name="PRODUCT_NAME" />에서 게스트 프로필을 사용할 수 없습니다.</translation> <translation id="1363275621236827384">하드웨어 프로필 Quirks 서버에 검색어를 사용합니다.</translation> <translation id="1376119291123231789">고급 배터리 충전 모드를 사용 설정합니다.</translation> -<translation id="1378850678793136128">로그인 화면에서 주어진 공급업체 및 제품 ID로 USB 기기에 대한 액세스 권한을 자동으로 받는 사이트를 지정하는 URL 패턴 목록을 설정할 수 있습니다. 정책이 유효하려면 각 목록 항목에 'devices' 및 'urls' 필드가 있어야 합니다. 'devices' 필드에 포함된 각 항목은 'vendor_id' 및 'product_id' 필드를 가질 수 있습니다. 'vendor_id' 필드를 생략하면 모든 기기와 일치하는 정책이 생성됩니다. 'product_id' 필드를 생략하면 주어진 공급업체 ID가 있는 모든 기기와 일치하는 정책이 생성됩니다. 'product_id' 필드는 있지만 'vendor_id' 필드는 없는 정책은 유효하지 않습니다. - - USB 권한 모델은 요청하는 사이트의 URL('요청 URL')과 최상위 프레임 사이트의 URL('삽입 URL')을 사용하여 요청 URL에 USB 기기 액세스 권한을 부여합니다. 요청하는 사이트가 iframe에서 로드되는 경우 요청 URL과 삽입 URL이 다를 수 있습니다. 따라서 'urls' 필드에는 요청 URL과 삽입 URL을 구분하여 지정할 수 있도록 쉼표로 구분된 URL 문자열이 2개까지 포함될 수 있습니다. URL이 하나만 지정된 경우 삽입 상태와 관계없이 요청하는 사이트의 URL이 이 URL과 일치하면 해당하는 USB 기기에 액세스할 권한이 부여됩니다. 'urls' 필드의 URL은 유효한 URL이어야 하며, 그렇지 않으면 정책이 무시됩니다. - - 정책을 설정하지 않으면 전체 기본값이 모든 사이트에 사용됩니다(자동 액세스 없음).</translation> <translation id="1384459581748403878">참고: <ph name="REFERENCE_URL" /></translation> <translation id="138847842893090358">OS 업데이트 상태 보고</translation> <translation id="1390901586107713894">사용자가 설치하지 못하는 확장 프로그램을 지정할 수 있습니다. 이미 설치된 확장 프로그램이 차단 목록에 포함된 경우 사용 중지되며, 사용자가 다시 사용할 수 있는 방법은 없습니다. 차단 목록에 포함되어 사용 중지되었던 확장 프로그램이 차단 목록에서 삭제되면 자동으로 다시 사용 설정됩니다. @@ -450,12 +445,6 @@ 정책을 설정하지 않으면 기기의 디스크 여유 공간이 20GB(기본값) 미만일 경우 <ph name="PLUGIN_VM_NAME" /> 설치에 실패합니다. 정책을 설정하면 기기의 디스크 여유 공간이 정책에서 요구하는 수준보다 적을 경우 <ph name="PLUGIN_VM_NAME" /> 설치에 실패합니다.</translation> -<translation id="1695708467571967752">이 정책은 기기가 잠겨있을 때 사용자가 미디어를 재생할 수 있는지 결정합니다. - - 이 정책을 False로 설정하면 잠금 화면의 미디어 제어 기능이 사용 중지됩니다. - - 이 정책을 True로 설정하거나 설정하지 않으면 미디어 재생 중 사용자가 기기를 잠글 경우 잠금 화면에 미디어 제어 기능이 표시됩니다. - </translation> <translation id="1700811900332333712">기기가 파워워시를 요청하도록 허용</translation> <translation id="1708496595873025510">버전 시드 가져오기 제한 설정</translation> <translation id="171511968762040550">정책을 True로 설정하거나 설정하지 않으면 사용자가 북마크를 추가, 삭제 또는 수정할 수 있습니다. @@ -670,7 +659,6 @@ 이 설정을 사용 중지하면 파일을 전송할 수 없습니다. 이 설정을 사용하면 파일을 전송할 수 있습니다.</translation> <translation id="2057317273526988987">URL 목록 액세스 허용</translation> <translation id="2061810934846663491">원격 액세스 호스트에 필요한 도메인 이름을 설정합니다.</translation> -<translation id="2067011586099792101">콘텐츠 팩 외부 사이트에 대한 액세스를 차단합니다.</translation> <translation id="2069350366303315077">정책을 사용 설정하면 <ph name="PRODUCT_NAME" />에서 게스트 세션을 실행하고 프로필 로그인을 차단합니다. 게스트 로그인은 창이 시크릿 모드인 <ph name="PRODUCT_NAME" /> 프로필입니다. 정책을 사용 중지하거나, 설정하지 않거나, <ph name="BROWSER_GUEST_MODE_ENABLED_POLICY_NAME" />를 통해 브라우저 게스트 모드를 사용 중지하면 새로운 프로필과 기존 프로필 사용이 허용됩니다.</translation> @@ -2127,7 +2115,6 @@ <translation id="4056910949759281379">SPDY 프로토콜 사용 중지</translation> <translation id="4061590579642538878">비정상 종료 보고서에 관한 정보를 보고합니다.</translation> <translation id="4075675819066819571">실행기를 화면 왼쪽에 놓기</translation> -<translation id="4075864623710596000">이 목록에 지정된 호스트 이름은 http에서 https로 요청을 업그레이드할 가능성이 있는 HSTS 정책 검사에서 제외됩니다. 이 정책에는 단일 라벨 호스트 이름만 허용됩니다. 호스트 이름은 표준화되어야 합니다. 모든 IDN은 A 라벨 형식으로 변환되어야 하며 모든 ASCII 문자는 소문자여야 합니다. 이 정책은 지정된 특정 호스트 이름에만 적용되며 지정된 이름의 하위 도메인에는 적용되지 않습니다.</translation> <translation id="408029843066770167">Google 시간 서비스에 쿼리 허용</translation> <translation id="408076456549153854">브라우저 로그인 사용</translation> <translation id="4082498585300984671">클릭 투 콜 기능 사용 설정</translation> @@ -2237,9 +2224,6 @@ 정책을 '사용 안함'으로 설정하면 <ph name="PRODUCT_NAME" />이(가) 사용 중지됩니다.</translation> <translation id="4203879074082863035">허용 목록에 있는 프린터만 사용자에게 표시됨</translation> -<translation id="420512303455129789">호스트 이름을 호스트에 액세스를 허용(true) 또는 차단(false)할지 지정하는 부울 플래그에 매핑합니다. - - 이 정책은 <ph name="PRODUCT_NAME" />에 한해 내부 용도로만 사용합니다.</translation> <translation id="4209297478239988291">자동 클릭 접근성 기능을 사용합니다. 이 기능을 사용하면 마우스나 터치패드를 직접 누르지 않고 클릭하려는 개체 위에 마우스를 올려놓기만 해도 클릭할 수 있습니다. @@ -2379,13 +2363,6 @@ <translation id="4494132853995232608">Wilco DTC</translation> <translation id="449423975179525290"><ph name="PLUGIN_VM_NAME" /> 관련 정책을 설정합니다.</translation> <translation id="4498493270899294764">다운로드한 콘텐츠에 멀웨어가 있는지 확인하지 않는 URL 패턴</translation> -<translation id="450537894712826981"><ph name="PRODUCT_NAME" />이(가) 캐시된 미디어 파일을 디스크에 저장할 때 사용하는 캐시 크기를 설정합니다. - - 이 정책을 설정하는 경우 <ph name="PRODUCT_NAME" />은(는) 사용자가 '--media-cache-size' 플래그를 지정했는지 여부에 관계없이 제공된 캐시 크기를 사용합니다. 이 정책에 지정된 값을 반드시 사용해야 하는 것은 아니며 캐싱 시스템에 추천되는 값입니다. 몇 MB 이하의 너무 작은 값은 적정한 최솟값으로 반올림됩니다. - - 이 정책 값이 0인 경우 기본 캐시 크기가 사용되지만 사용자가 변경할 수는 없습니다. - - 이 정책이 설정되지 않으면 기본 크기가 사용되며 사용자는 --media-cache-size 플래그를 통해 기본 크기를 변경할 수 있습니다.</translation> <translation id="4508084713148633492">디스크 공간이 부족할 때 알림을 사용하거나 사용 중지할 수 있습니다. 이 정책은 기기의 모든 사용자에 적용됩니다. 관리 기기에 단 하나의 사용자 계정이 있으면 이 정책 값과 관계없이 알림이 항상 표시됩니다. 관리 기기에 여러 개의 사용자 계정이 있으면 이 정책이 True로 설정되어 있을 때만 알림이 표시됩니다. @@ -2682,7 +2659,6 @@ 정책을 사용 중지하면 <ph name="PRODUCT_NAME" />에서 쿼리를 전송하지 않습니다.</translation> <translation id="5032164758660626397">사용자의 대용량 파일 전송 차단</translation> -<translation id="5047604665028708335">콘텐츠 팩 외부 사이트에 대한 액세스를 허용합니다.</translation> <translation id="5056708224511062314">화면 돋보기 사용 중지됨</translation> <translation id="5058573563327660283">자동 정리 중 디스크 공간 확보에 사용할 방법 선택(지원 중단됨)</translation> <translation id="5061114193960158745">이 정책을 설정하면 브라우저 전환을 실행하지 않을 웹사이트 목록을 제어합니다. 각 항목은 규칙으로 취급됩니다. 규칙이 일치하면 대체 브라우저가 열리지 않습니다. <ph name="URL_LIST_POLICY_NAME" /> 정책과 달리 규칙이 양방향으로 적용됩니다. <ph name="IE_PRODUCT_NAME" /> 부가기능이 사용 설정되어 있으면 정책이 <ph name="IE_PRODUCT_NAME" />에서 <ph name="PRODUCT_NAME" />을 통해 이러한 URL을 열어야 하는지도 제어합니다. @@ -3160,10 +3136,6 @@ 이는 권장되지 않습니다. 이를 통해 특정 인증서만 승인되며 호스트 이름을 제한하는 nameConstraints 확장 필드를 우회할 수 있기 때문입니다. 이 정책을 설정하지 않거나 false로 설정되면 subjectAlternativeName 확장 필드가 누락되어 있으며 DNS 이름이나 IP 주소가 포함된 서버 인증서를 신뢰하지 않습니다.</translation> -<translation id="5578571772998293651">사용자 의견을 허용합니다. - 정책을 False로 설정하면 사용자가 Google에 의견을 제출할 수 없습니다. - - 정책을 설정하지 않거나 True로 설정하면 사용자가 메뉴->도움말->문제 신고로 이동하거나 키 조합을 사용하여 Google에 의견을 보낼 수 있습니다.</translation> <translation id="5579179012798142131">사용자 세션 중에 임시 모드나 멀티 로그인이 사용 설정되어 있지 않는 이상, ArcEnabled를 True로 설정하면 사용자의 ARC가 사용 설정됩니다. 정책을 False로 설정하거나 설정하지 않으면 기업 사용자가 ARC를 사용할 수 없습니다.</translation> <translation id="5582429816116769246">사용자가 엔터프라이즈 프린터가 아닌 프린터에 액세스할 수 있는지 여부를 제어할 수 있습니다. @@ -3427,7 +3399,6 @@ <translation id="5951418260805607969">디스크 공간이 부족할 때 알림 표시</translation> <translation id="5961137303188584693">기기의 내장 NIC MAC 주소</translation> <translation id="5966615072639944554">원격 인증 API를 사용하도록 허용된 확장 프로그램입니다.</translation> -<translation id="5983708779415553259">사이트에 대한 기본 동작이 콘텐츠 팩에 없음</translation> <translation id="5997543603646547632">기본적으로 24시간 표기법 사용</translation> <translation id="5997846976342452720">플러그인 Finder 사용 중지 여부 지정(지원 중단됨)</translation> <translation id="5998198091336830580">이 정책은 다음 그룹의 일부입니다. 그룹에서 우선순위가 가장 높은 출처의 정책만 적용됩니다.</translation> @@ -3466,9 +3437,6 @@ <translation id="603768430528561926">정책을 사용 설정하거나 설정하지 않으면 기업 기기 사용자가 <ph name="PRODUCT_OS_NAME" /> 등록을 통해 쿠폰을 사용할 수 있습니다. 정책을 사용 중지하면 사용자가 쿠폰을 사용할 수 없습니다.</translation> -<translation id="6038407313189625985">정책이 사용 설정되거나 설정되지 않으면 렌더러 코드 무결성이 사용 설정됩니다. 이 정책은 Chrome의 렌더러 프로세스 내에서 실행되어야 하는 타사 소프트웨어와의 호환성 문제가 발생하는 경우에만 사용 중지해야 합니다. - - 이 정책을 사용 중지하면 알려져 있지 않고 악성일 가능성이 큰 코드가 Chrome의 렌더러 프로세스 내에서 로드될 수 있으므로 Chrome의 보안 및 안정성에 부정적인 영향을 미칩니다. 자세한 내용은 https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies를 참조하세요.</translation> <translation id="6048199181629830227">피크 시프트 전력 관리 사용</translation> <translation id="6054485492411959335">사용자가 사용할 수 있는 프린터를 지정합니다. @@ -4791,9 +4759,6 @@ 참고: 현재 로그인 화면이 표시되고 있거나 키오스크 앱 세션이 진행 중인 경우에 한해 자동 재부팅을 사용하도록 설정됩니다. 이후에는 이 내용이 변경되어 특정 유형의 세션이 진행 중인지 여부와 관계 없이 정책이 항상 적용됩니다.</translation> <translation id="7701341006446125684">앱 및 확장 프로그램 캐시 크기 설정(단위: 바이트)</translation> -<translation id="7709537117200051035">호스트 이름을 호스트에 액세스를 허용(true) 또는 차단(false)할지 지정하는 부울 플래그에 매핑합니다. - - 이 정책은 <ph name="PRODUCT_NAME" />에 한해 내부 용도로만 사용합니다.</translation> <translation id="7710950688502974809"><ph name="ON_BULK_DATA_ENTRY_ENTERPRISE_CONNECTOR" /> Enterprise 커넥터에 적용할 Chrome Enterprise 커넥터 서비스 설정의 목록으로, 클립보드에서 Chrome으로 데이터가 입력되거나 웹 콘텐츠가 드래그 앤 드롭으로 Chrome에 입력될 때 실행됩니다. <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> 필드는 데이터가 특정 페이지에서 입력되었을 때 커넥터가 분석을 위해 데이터를 전송할지 여부와 데이터 분석 요청에 어떤 태그를 포함할지를 결정하는 데 사용됩니다. 페이지 URL이 특정 태그와 연결된 패턴과 일치하면 'enable' 패턴에 해당하는 태그가 분석 요청에 포함되지만, 이 태그의 'disable' 패턴 중에서 페이지 URL과 일치하는 것이 없어야 합니다. 하나 이상의 태그가 요청에 포함되면 분석이 실시됩니다. @@ -4941,7 +4906,6 @@ 이 설정을 사용 설정하거나 사용 중지하면 사용자는 <ph name="PRODUCT_NAME" />에서 이 설정을 변경하거나 무시할 수 없습니다. 이 정책을 설정하지 않은 경우 이 설정이 사용되지만 사용자가 설정을 변경할 수 있습니다.</translation> -<translation id="7953256619080733119">관리 사용자 직접 예외 호스트</translation> <translation id="7956210013490975468"><ph name="PRODUCT_OS_NAME" />의 시스템 프록시 서비스를 구성합니다.</translation> <translation id="7958537754689366707">12시간마다 비밀번호를 입력해야 합니다.</translation> <translation id="7961779417826583251">기존 인증서 권한 목록에 인증서 투명성 시행 사용 중지</translation> @@ -5169,11 +5133,6 @@ 정책이 설정되면 사용자가 변경하거나 재정의할 수 없습니다. 정책이 설정되지 않은 경우 처음에는 음성기록이 사용 중지되어 있으나 사용자가 언제든지 사용 설정할 수 있습니다.</translation> -<translation id="829337533107201925">정책이 사용 설정되면 전체 그룹에서 가져온 정책 중 우선순위가 가장 높은 출처를 공유하지 않는 정책이 무시됩니다. - - 정책이 사용 중지되면 정책이 출처로 인해 무시되지 않습니다. 충돌이 있으며 정책에 가장 높은 우선순위가 없는 경우에만 정책이 무시됩니다. - - 정책이 클라우드 출처로부터 설정되는 경우 특정 사용자를 타겟팅할 수 없습니다.</translation> <translation id="8294750666104911727">일반적으로 X-UA-호환성이 chrome=1로 설정된 페이지는 'ChromeFrameRendererSettings' 정책에 관계없이 <ph name="PRODUCT_FRAME_NAME" />에서 렌더링됩니다. 이 설정을 사용하도록 설정하면 메타 태그에 대해 페이지가 스캔되지 않습니다. @@ -5379,7 +5338,6 @@ <translation id="8544375438507658205"><ph name="PRODUCT_FRAME_NAME" />의 기본 HTML 렌더러</translation> <translation id="8544465954173828789">SMS 메시지가 휴대전화에서 Chromebook으로 동기화되도록 허용</translation> <translation id="8548832052135586762">컬러만, 단색만, 컬러 모드 제한 없음으로 인쇄를 설정합니다. 정책이 설정되어 있지 않으면 제한이 없는 것으로 처리됩니다.</translation> -<translation id="8549772397068118889">콘텐츠 팩 외부 사이트를 방문할 때 표시되는 경고입니다.</translation> <translation id="8566842294717252664">새 탭 페이지 및 앱 런처에서 웹 스토어 숨기기</translation> <translation id="8569734380847633643"> 정책이 False로 설정된 경우 <ph name="PRODUCT_OS_NAME" />이(가) Wi-Fi를 사용 중지하고 사용자가 이를 다시 사용 설정할 수 없습니다. @@ -5499,7 +5457,6 @@ 정책을 설정하면 사용자가 변경하거나 재정의할 수 없습니다. 이 정책은 사용자가 개별 기기에서 프린터를 설정할 수 있는지에 영향을 미치지 않으며, 개별 사용자의 프린터 설정을 보완하기 위한 것입니다.</translation> -<translation id="8764477907716150749">이 정책은 <ph name="PRODUCT_NAME" /> 내부 용도로만 사용합니다.</translation> <translation id="8767743923206070405">정책을 사용으로 설정하면 <ph name="PRODUCT_NAME" /> 툴바에 홈 버튼이 표시됩니다. 사용 안함으로 설정하면 홈 버튼이 표시되지 않습니다. 정책을 설정하면 <ph name="PRODUCT_NAME" />에서 사용자가 변경할 수 없습니다. 설정하지 않으면 사용자가 홈 버튼 표시 여부를 선택할 수 있습니다.</translation>
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb index 3048adf..7432e2e 100644 --- a/components/policy/resources/policy_templates_nl.xtb +++ b/components/policy/resources/policy_templates_nl.xtb
@@ -203,11 +203,6 @@ Als dit beleid is ingesteld op 'False', staat <ph name="PRODUCT_NAME" /> niet toe dat er gastprofielen worden gestart.</translation> <translation id="1363275621236827384">Query's naar de Quirks Server inschakelen voor hardwareprofielen</translation> <translation id="1376119291123231789">Geavanceerde batterijoplaadmodus inschakelen</translation> -<translation id="1378850678793136128">Hiermee kun je een lijst met URL-patronen opgeven met de sites die op het inlogscherm automatisch toegangsrechten krijgen voor een USB-apparaat met de opgegeven leveranciers- en product-ID's. Het beleid is alleen geldig als elk lijstitem een veld voor apparaten en een veld voor URL's bevat. Elk item in het veld voor apparaten kan een veld voor vendor_id en een veld voor product_id hebben. Als je het veld vendor_id weglaat, wordt een beleid gemaakt dat geschikt is voor elk apparaat. Als je het veld product_id weglaat, wordt een beleid gemaakt dat geschikt is voor elk apparaat met de opgegeven leveranciers-ID. Een beleid dat het veld product_id heeft zonder het veld vendor_id is ongeldig. - - Het USB-rechtenmodel gebruikt de URL van de site die de aanvraag indient ('aanvragende URL') en de URL van de framesite op hoofdniveau ('insluitings-URL') om de aanvragende URL toegang te geven tot het USB-apparaat. Als de aanvragende site in een iframe wordt geladen, is het mogelijk dat de aanvragende URL en de insluitings-URL niet hetzelfde zijn. Daarom kan het veld voor URL's maximaal 2 door een komma gescheiden URL-tekenreeksen bevatten om respectievelijk de aanvragende URL en insluitings-URL op te geven. Als er slechts één URL wordt opgegeven, wordt toegang tot de bijbehorende USB-apparaten gegeven als de URL van de aanvragende site overeenkomt met deze URL, ongeacht de insluitingsstatus. De URL's in het veld voor URL's moeten geldig zijn. Als dit niet het geval is, wordt het beleid genegeerd. - - Als dit beleid niet is ingesteld, wordt de algemene standaardwaarde gebruikt voor alle sites (geen automatische toegang).</translation> <translation id="1384459581748403878">Referentie: <ph name="REFERENCE_URL" /></translation> <translation id="138847842893090358">OS-updatestatus rapporten</translation> <translation id="1390901586107713894">Hiermee kun je aangeven welke extensies gebruikers NIET kunnen installeren. Extensies die al zijn geïnstalleerd, worden uitgeschakeld als ze op de blokkeringslijst staan. De gebruiker kan ze niet weer inschakelen. Als een extensie die is uitgeschakeld op basis van de blokkeringslijst, van die lijst wordt verwijderd, wordt de extensie automatisch weer ingeschakeld. @@ -440,12 +435,6 @@ Als dit beleid niet is ingesteld, mislukt de installatie van <ph name="PLUGIN_VM_NAME" /> als de beschikbare vrije opslagruimte op het apparaat minder is dan 20 GB (standaardwaarde). Als dit beleid is ingesteld, mislukt de installatie van <ph name="PLUGIN_VM_NAME" /> als de beschikbare vrije opslagruimte op het apparaat minder is dan de waarde die wordt vereist door het beleid.</translation> -<translation id="1695708467571967752">Dit beleid bepaalt of gebruikers media kunnen afspelen wanneer het apparaat vergrendeld is. - - Als dit beleid is ingesteld op False, zijn bedieningsopties voor media op het vergrendelscherm uitgeschakeld. - - Als dit beleid is ingesteld op True of niet is ingesteld, worden bedieningsopties voor media op het vergrendelscherm weergegeven als de gebruiker het apparaat vergrendelt terwijl er media wordt afgespeeld. - </translation> <translation id="1700811900332333712">Geef het apparaat toestemming om Powerwash te activeren</translation> <translation id="1708496595873025510">De beperking voor het ophalen van de seed voor varianten instellen</translation> <translation id="171511968762040550">Als je het beleid instelt op 'True' of niet instelt, kunnen gebruikers bookmarks toevoegen, verwijderen of wijzigen. @@ -650,7 +639,6 @@ Als deze instelling is uitgeschakeld, is bestandsoverdracht niet toegestaan. Als deze instelling is ingeschakeld of niet is ingesteld, is bestandsoverdracht toegestaan.</translation> <translation id="2057317273526988987">Toegang verlenen aan een lijst met URL's</translation> <translation id="2061810934846663491">De vereiste domeinnamen configureren voor hosts voor externe toegang</translation> -<translation id="2067011586099792101">Toegang blokkeren naar sites die zich niet in inhoudspakketten bevinden</translation> <translation id="2069350366303315077">Als je dit beleid inschakelt, dwingt <ph name="PRODUCT_NAME" /> gastsessies af en wordt voorkomen dat gebruikers inloggen bij profielen. Gastlogins zijn <ph name="PRODUCT_NAME" />-profielen waarbij alle vensters in de incognitomodus zijn. Als je het beleid uitschakelt, niet instelt of de gastmodus voor de browser uitschakelt (via <ph name="BROWSER_GUEST_MODE_ENABLED_POLICY_NAME" />), is het gebruik van nieuwe en bestaande profielen toegestaan.</translation> @@ -2103,7 +2091,6 @@ <translation id="4056910949759281379">SPDY-protocol uitschakelen</translation> <translation id="4061590579642538878">Informatie over crashrapporten rapporteren.</translation> <translation id="4075675819066819571">De plank aan de linkerkant van het scherm plaatsen</translation> -<translation id="4075864623710596000">De op deze lijst vermelde hostnamen zijn vrijgesteld van controle van het HSTS-beleid die verzoeken kan upgraden van HTTP naar HTTPS. In dit beleid zijn alleen hostnamen met één label toegestaan. Hostnamen moeten een canonieke URL hebben. Eventuele IDN's moeten worden geconverteerd naar de A-labelindeling en alle ASCII-letters moeten kleine letters zijn. Dit beleid is alleen van toepassing op de vermelde specifieke hostnamen en niet op de subdomeinen van de vermelde namen.</translation> <translation id="408029843066770167">Query's naar een Google-tijdservice toestaan</translation> <translation id="408076456549153854">Inloggen bij browser inschakelen</translation> <translation id="4082498585300984671">De functie 'Klik om te bellen' inschakelen</translation> @@ -2213,9 +2200,6 @@ Als je het beleid uitschakelt, wordt <ph name="PRODUCT_NAME" /> uitgeschakeld.</translation> <translation id="4203879074082863035">Alleen printers op de witte lijst worden weergegeven aan gebruikers</translation> -<translation id="420512303455129789">Een woordenboek dat URL's toewijst aan een booleaanse markering die aangeeft of toegang tot de host moet worden toegestaan ('True') of geblokkeerd ('False'). - - Dit beleid is bedoeld voor intern gebruik door <ph name="PRODUCT_NAME" /> zelf.</translation> <translation id="4209297478239988291">De toegankelijkheidsfunctie voor automatisch klikken inschakelen. Met deze functie kun je klikken zonder fysiek op de muisknop of touchpad te drukken door de muisaanwijzer op het object te plaatsen waarop je wilt klikken. @@ -2355,13 +2339,6 @@ <translation id="4494132853995232608">Wilco DTC</translation> <translation id="449423975179525290">Aan <ph name="PLUGIN_VM_NAME" /> gerelateerd beleid configureren.</translation> <translation id="4498493270899294764">URL-patronen waarvoor gedownloade content niet moet worden gecontroleerd op malware</translation> -<translation id="450537894712826981">Configureert de cachegrootte die <ph name="PRODUCT_NAME" /> gebruikt voor het opslaan van gecachte bestanden op de schijf. - - Als je dit beleid instelt, gebruikt <ph name="PRODUCT_NAME" /> de opgegeven cachegrootte, ongeacht of de gebruiker de markering --media-cache-size heeft opgegeven. De waarde die in dit beleid wordt opgegeven, is geen vaste waarde maar een suggestie voor het cachesysteem. Een waarde die lager is dan een paar megabytes, is te klein en wordt afgerond naar een redelijk minimum. - - Als de waarde van dit beleid 0 is, wordt de standaardcachegrootte gebruikt, maar kan de gebruiker deze niet wijzigen. - - Als dit beleid niet is ingesteld, wordt de standaardgrootte gebruikt en kan de gebruiker deze overschrijven met de markering --media-cache-size.</translation> <translation id="4508084713148633492">Hiermee kun je meldingen bij weinig schijfruimte in- of uitschakelen. Dit is van toepassing op alle gebruikers op het apparaat. Als er precies één gebruikersaccount is op een beheerd apparaat, wordt de melding altijd weergegeven, ongeacht de waarde van dit beleid. Als er meerdere gebruikersaccount zijn op een beheerd apparaat, wordt de melding alleen weergeven als het beleid is ingesteld op 'True'. @@ -2653,7 +2630,6 @@ Als je het beleid uitschakelt, stopt <ph name="PRODUCT_NAME" /> met het sturen van deze query's.</translation> <translation id="5032164758660626397">Overdracht van grote bestanden door de gebruiker voorkomen</translation> -<translation id="5047604665028708335">Toegang toestaan tot sites die zich niet in de inhoudspakketten bevinden</translation> <translation id="5056708224511062314">Vergrootglas uitgeschakeld</translation> <translation id="5058573563327660283">De strategie selecteren die wordt gebruikt om schijfruimte vrij te maken tijdens het automatisch opschonen (verouderd)</translation> <translation id="5061114193960158745">Met dit beleid wordt de lijst met websites bepaald die nooit een schakeling tussen browsers veroorzaken. Elk item wordt als regel behandeld. Bij overeenkomende regels wordt er geen alternatieve browser geopend. Anders dan bij het beleid <ph name="URL_LIST_POLICY_NAME" /> zijn de regels in beide richtingen van toepassing. Als de add-in van <ph name="IE_PRODUCT_NAME" /> ingeschakeld is, bepaalt deze ook of <ph name="IE_PRODUCT_NAME" /> deze URL's moet openen in <ph name="PRODUCT_NAME" />. @@ -3130,10 +3106,6 @@ Houd er rekening mee dat dit niet wordt aanbevolen, aangezien zodoende de extensie nameConstraints, waarmee kan worden beperkt voor welke hostnamen een bepaald certificaat kan worden geautoriseerd, kan worden omzeild. Als dit beleid niet is ingesteld of is ingesteld op 'false', worden de servercertificaten die geen subjectAlternativeName-extensie met een DNS-naam of IP-adres bevatten, niet vertrouwd.</translation> -<translation id="5578571772998293651">Sta gebruikersfeedback toe. - Als het beleid is ingesteld op 'false', kunnen gebruikers geen feedback sturen naar Google. - - Als het beleid niet is ingesteld of is ingesteld op 'true', kunnen gebruikers feedback naar Google sturen via Menu -> Hulp -> Een probleem melden, of hier een toetsencombinatie voor gebruiken.</translation> <translation id="5579179012798142131">Tenzij de kortstondige modus of toegang tot meerdere accounts is ingeschakeld tijdens de sessie van de gebruiker, wordt ARC ingeschakeld als ArcEnabled wordt ingesteld op True. Als het beleid wordt ingesteld op False of niet wordt ingesteld, kunnen zakelijke gebruikers ARC niet gebruiken.</translation> <translation id="5582429816116769246">Hiermee kun je bepalen of gebruikers toegang hebben tot printers die niet van het bedrijf zijn. @@ -3290,7 +3262,7 @@ <translation id="5832274826894536455">Beëindigde beleidsregels</translation> <translation id="5835253272509953988">Als je het beleid inschakelt, kunnen gebruikers met <ph name="PRODUCT_NAME" /> checken of ingevoerde gebruikersnamen en wachtwoorden deel uitmaken van een gegevenslek. - Als je het beleid instelt, kunnen gebruikers het niet wijzigen in <ph name="PRODUCT_NAME" />. Als je het niet instelt, is checken op gegevenslekken toegestaan, maar kan de gebruiker deze functie uitschakelen). + Als je het beleid instelt, kunnen gebruikers het niet wijzigen in <ph name="PRODUCT_NAME" />. Als je het niet instelt, is checken op gegevenslekken toegestaan, maar kan de gebruiker deze functie uitschakelen. Dit gedrag wordt niet geactiveerd als Safe Browsing is uitgeschakeld (door het beleid of door de gebruiker). Gebruik het beleid <ph name="SAFE_BROWSING_ENABLED_POLICY_NAME" /> of <ph name="SAFE_BROWSING_PROTETION_LEVEL_POLICY_NAME" /> om Safe Browsing gedwongen in te schakelen.</translation> <translation id="5836064773277134605">Het UDP-poortbereik beperken dat voor de host voor externe toegang wordt gebruikt</translation> @@ -3395,7 +3367,6 @@ <translation id="5951418260805607969">Melding weergeven bij weinig schrijfruimte</translation> <translation id="5961137303188584693">MAC-adres van ingebouwde NIC van apparaat</translation> <translation id="5966615072639944554">Extensies die toestemming hebben de API voor externe bevestiging te gebruiken</translation> -<translation id="5983708779415553259">Standaardgedrag voor sites die zich niet in een inhoudspakket bevinden</translation> <translation id="5997543603646547632">Klok met 24-uursnotatie standaard gebruiken</translation> <translation id="5997846976342452720">Aangeven of de plug-inzoeker moet worden uitgeschakeld (beëindigd)</translation> <translation id="5998198091336830580">Dit beleid maakt deel uit van de volgende atomische groep (alleen beleidsregels van de bron met de hoogste prioriteit in de groep worden toegepast):</translation> @@ -3434,9 +3405,6 @@ <translation id="603768430528561926">Als je het beleid inschakelt of niet instelt, kunnen gebruikers van zakelijke apparaten aanbiedingen inwisselen via <ph name="PRODUCT_OS_NAME" />-registratie. Als je het beleid uitschakelt, kunnen gebruikers deze aanbiedingen niet inwisselen.</translation> -<translation id="6038407313189625985">Als dit beleid is ingeschakeld of niet is ingesteld, is code-integriteit van weergaveprogramma ingeschakeld. Dit moet alleen worden uitgeschakeld als er compatibiliteitsproblemen zijn met software van derden die in de processen van het weergaveprogramma van Chrome moeten worden uitgevoerd. - - De uitschakeling van dit beleid heeft een nadelige invloed op de beveiliging en stabiliteit van Chrome omdat onbekende, potentieel schadelijke code kan worden geladen in de processen van het weergaveprogramma van Chrome. Ga naar https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies voor meer informatie.</translation> <translation id="6048199181629830227">Stroombeheer voor piekuren inschakelen</translation> <translation id="6054485492411959335">Hiermee worden de printers gespecificeerd die een gebruiker kan gebruiken. @@ -4753,9 +4721,6 @@ Opmerking: momenteel is automatisch opnieuw opstarten alleen ingeschakeld als het inlogscherm wordt weergegeven of een kiosk-appsessie wordt verwerkt. Dit zal in de toekomst veranderen en het beleid zal altijd worden toegepast, ongeacht of er een sessie van een bepaald type in verwerking is.</translation> <translation id="7701341006446125684">Formaat van cache voor apps en extensies instellen (in bytes)</translation> -<translation id="7709537117200051035">Een woordenboek dat hostnamen toewijst aan een booleaanse markering die aangeeft of toegang tot de host moet worden toegestaan ('True') of geblokkeerd ('False'). - - Dit beleid is bedoeld voor intern gebruik door <ph name="PRODUCT_NAME" /> zelf.</translation> <translation id="7710950688502974809">Lijst met instellingen voor Chrome Enterprise Connectors-services die moeten worden toegepast op de Enterprise Connector <ph name="ON_BULK_DATA_ENTRY_ENTERPRISE_CONNECTOR" />. De lijst wordt geactiveerd als gegevens in Chrome worden ingevoerd vanaf het klembord of door slepen en neerzetten van webcontent. De velden <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> en <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> worden gebruikt om te bepalen of de connector gegevens voor analyse moet sturen als ze worden ingevoerd op een specifieke pagina en welke tags moeten worden opgenomen in het analyseverzoek voor die gegevens. Een tag die overeenkomt met een 'enable'-patroon, wordt opgenomen in het analyseverzoek als de pagina-URL overeenkomt met een patroon dat is gekoppeld aan die tag, op voorwaarde dat er geen 'disable'-patroon met dezelfde tag overeenkomt met de pagina-URL. De analyse vindt plaats als er ten minste één tag moet worden opgenomen in het verzoek. @@ -4903,7 +4868,6 @@ Als je deze instelling in- of uitschakelt, kunnen gebruikers deze instelling niet wijzigen of overschrijven in <ph name="PRODUCT_NAME" />. Als dit beleid niet wordt ingesteld, wordt het ingeschakeld, maar kan de gebruiker het wijzigen.</translation> -<translation id="7953256619080733119">Hosts van handmatige uitzonderingen voor beheerde gebruikers</translation> <translation id="7956210013490975468">Configureert de systeemproxyservice voor <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="7958537754689366707">Het wachtwoord moet elke twaalf uur worden opgegeven</translation> <translation id="7961779417826583251">Handhaving van Certificaattransparantie voor een lijst met certificeringsinstanties uitschakelen</translation> @@ -5128,11 +5092,6 @@ Als je dit beleid instelt, kunnen gebruikers het niet wijzigen of overschrijven. Als dit beleid niet is ingesteld, is de functie voor dicteren in eerste instantie uitgeschakeld, maar kan de gebruiker deze op elk gewenst moment inschakelen.</translation> -<translation id="829337533107201925">Als dit beleid is ingeschakeld, worden beleidsregels van een atomische groep genegeerd die niet dezelfde bron met de hoogste prioriteit van de betreffende groep hebben. - - Als dit beleid is uitgeschakeld, worden er geen beleidsregels genegeerd vanwege de bijbehorende bron. Beleidsregels worden alleen genegeerd als er een conflict is en het beleid niet de hoogste prioriteit heeft. - - Als dit beleid is ingesteld vanuit een cloudbron, kan het geen specifieke gebruiker targeten.</translation> <translation id="8294750666104911727">Normaal worden pagina's waarvoor X-UA-Compatible is ingesteld op chrome=1, weergegeven in <ph name="PRODUCT_FRAME_NAME" /> ongeacht het beleid 'ChromeFrameRendererSettings'. Als je deze instelling inschakelt, worden pagina's niet gescand op metatags. @@ -5330,7 +5289,6 @@ <translation id="8544375438507658205">Standaard HTML-renderer voor <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="8544465954173828789">Toestaan dat sms-berichten worden gesynchroniseerd tussen telefoon en Chromebook.</translation> <translation id="8548832052135586762">Hiermee bepaal je of je alleen in kleur, alleen in monochroom of zonder kleurbeperking wilt afdrukken. Als er geen beleid is ingesteld, gelden er geen beperkingen.</translation> -<translation id="8549772397068118889">Waarschuwen als sites worden bezocht die zich niet in de inhoudspakketten bevinden</translation> <translation id="8566842294717252664">De Web Store verbergen op de pagina 'Nieuw tabblad' en in de App Launcher</translation> <translation id="8569734380847633643"> Als het beleid is ingesteld op 'false', schakelt <ph name="PRODUCT_OS_NAME" /> wifi uit en kunnen gebruikers wifi niet opnieuw inschakelen. @@ -5450,7 +5408,6 @@ Als je dit beleid instelt, kunnen gebruikers dit niet wijzigen of negeren. Dit beleid is niet van invloed op de mogelijkheid van gebruikers om printers op afzonderlijke apparaten in te stellen. Het is bedoeld als aanvulling op de printerinstellingen van afzonderlijke gebruikers.</translation> -<translation id="8764477907716150749">Dit beleid is bedoeld voor intern gebruik door <ph name="PRODUCT_NAME" /> zelf.</translation> <translation id="8767743923206070405">Als je het beleid inschakelt, wordt de knop 'Homepage' weergegeven op de werkbalk van <ph name="PRODUCT_NAME" />. Als je het beleid uitschakelt, wordt de knop 'Homepage' niet weergegeven. Als je het beleid instelt, kunnen gebruikers dit niet wijzigen in <ph name="PRODUCT_NAME" />. Als je het beleid niet instelt, kunnen gebruikers bepalen of ze de knop 'Homepage' wel of niet willen weergeven.</translation>
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb index 9d61911..faf35ed 100644 --- a/components/policy/resources/policy_templates_pt-BR.xtb +++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -199,11 +199,6 @@ Se esta política é definida como "false", o <ph name="PRODUCT_NAME" /> não permite que perfis de convidados sejam iniciados.</translation> <translation id="1363275621236827384">Permitir consultas no Servidor Quirks para perfis de hardware</translation> <translation id="1376119291123231789">Ativar o modo avançado de carregamento da bateria</translation> -<translation id="1378850678793136128">Permite que você defina uma lista de padrões de URL que especifica quais sites recebem permissão automaticamente para acessar um dispositivo USB com os IDs de produto e de fornecedor especificados na tela de login. Cada item da lista precisa ter um campo "devices" e "urls" para que a política seja válida. Cada item no campo "devices" pode ter um campo "vendor_id" e "product_id". A omissão do campo "vendor_id" criará uma política válida para qualquer dispositivo. A omissão do campo "product_id" criará uma política válida para qualquer dispositivo com o ID de fornecedor especificado. Uma política com um campo "product_id" que não tiver um campo "vendor_id" será inválida. - - O modelo de permissão USB usa o URL do site solicitante ("URL solicitante") e o URL do site de frame de nível superior ("URL de incorporação") para conceder permissão ao URL solicitante para acessar o dispositivo USB. O URL solicitante pode ser diferente do URL de incorporação quando o site solicitante está carregado em um iframe. Portanto, o campo "urls" pode conter até duas strings de URL delimitadas por vírgula para especificar os URLs solicitante e de incorporação, respectivamente. Se apenas um URL for especificado, o acesso aos dispositivos USB correspondentes será concedido quando o URL do site solicitante coincidir com esse URL, independentemente do status de incorporação. Os URLs contidos em "urls" precisam ser válidos. Caso contrário, a política será ignorada. - - Se a política não for definida, o valor padrão global será usado para todos os sites (sem acesso automático).</translation> <translation id="1384459581748403878">Referência: <ph name="REFERENCE_URL" /></translation> <translation id="138847842893090358">Informar o status de atualização do SO</translation> <translation id="1390901586107713894">Permite especificar quais extensões os usuários NÃO podem instalar. As extensões já instaladas serão desativadas se estiverem bloqueadas, sem a opção de o usuário ativá-las novamente. Quando uma extensão que tiver sido desativada devido à lista de bloqueios for removida da lista, ela será reativada automaticamente. @@ -436,12 +431,6 @@ Se esta política não for definida, haverá falha na instalação do <ph name="PLUGIN_VM_NAME" /> caso o espaço livre disponível em disco seja inferior a 20 GB (valor padrão). Se esta política for definida, haverá falha na instalação do <ph name="PLUGIN_VM_NAME" /> caso o espaço livre disponível em disco no dispositivo seja inferior ao exigido pela política.</translation> -<translation id="1695708467571967752">Esta política controla se os usuários podem executar mídia enquanto o dispositivo está bloqueado. - - Se esta política for definida como falsa, os controles de mídia na tela de bloqueio serão desativados. - - Se esta política for definida como verdadeira ou não for definida, os controles serão mostrados na tela de bloqueio quando o usuário bloquear a tela durante a execução de mídia. - </translation> <translation id="1700811900332333712">Permitir que o dispositivo solicite um Powerwash</translation> <translation id="1708496595873025510">Definir a restrição para busca do termo-semente "Variações"</translation> <translation id="171511968762040550">Se a política for definida como verdadeira ou não for definida, os usuários poderão adicionar, remover ou modificar favoritos. @@ -656,7 +645,6 @@ Se essa configuração for desativada, a transferência de arquivos não será permitida. Se essa configuração for ativada ou não for definida, a transferência de arquivos será permitida.</translation> <translation id="2057317273526988987">Permitir acesso a uma lista de URLs</translation> <translation id="2061810934846663491">Configurar os nomes de domínio obrigatórios para hosts de acesso remoto</translation> -<translation id="2067011586099792101">Bloquear acesso a sites fora de pacotes de conteúdo</translation> <translation id="2069350366303315077">Definir a política como "Ativada" faz com que o <ph name="PRODUCT_NAME" /> aplique sessões de visitante e impeça logins de perfis. Logins de visitante são perfis do <ph name="PRODUCT_NAME" /> em que as janelas estão no modo de navegação anônima. Se a política for definida como "Desativada", não for definida ou se o modo visitante for desativado (pela <ph name="BROWSER_GUEST_MODE_ENABLED_POLICY_NAME" />), o uso de perfis novos e existentes será permitido.</translation> @@ -1111,6 +1099,7 @@ Se a política não for definida, nenhum site será adicionado à lista. Observação: também é possível adicionar elementos à lista pelas políticas <ph name="USE_IE_SITELIST_POLICY_NAME" /> e <ph name="EXTERNAL_SITELIST_URL_POLICY_NAME" />.</translation> +<translation id="2640898752536996430">Sair da conta do usuário.</translation> <translation id="264093234299818170">Todas as impressoras são mostradas, exceto as da lista de bloqueio.</translation> <translation id="264252574246191885">Não listado</translation> <translation id="2647069081229792812">Ativar ou desativar a edição de favoritos</translation> @@ -1442,6 +1431,7 @@ <translation id="3072847235228302527">Definir os Termos de Serviço para uma conta local do dispositivo</translation> <translation id="3086995894968271156">Configura a política Cast Receiver no <ph name="PRODUCT_NAME" />.</translation> <translation id="3091832372132789233">Carregar a bateria de dispositivos que ficam a maior parte do tempo conectados a uma fonte de energia externa.</translation> +<translation id="309416443108680956">Especifica o que acontece quando um usuário que está fazendo a autenticação com um token de segurança (por exemplo, com um cartão inteligente) remove o token durante a sessão. <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_IGNORE" />: nada acontece. <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" />: a tela é bloqueada até que o usuário faça a autenticação novamente. <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" />: a sessão é encerrada e o usuário é desconectado. Se esta política não for definida, o comportamento padrão será <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_IGNORE" />.</translation> <translation id="3096595567015595053">Lista de plug-ins ativados</translation> <translation id="3101501961102569744">Escolher o modo de especificar as configurações do servidor proxy</translation> <translation id="3101709781009526431">Data e hora</translation> @@ -1860,6 +1850,7 @@ Se você definir a política, os usuários não poderão mudar a página inicial no <ph name="PRODUCT_NAME" />. Se a política não for definida, o usuário poderá escolher se a página Nova guia será a inicial. No <ph name="MS_WIN_NAME" />, essa funcionalidade está disponível apenas em instâncias associadas a um domínio do <ph name="MS_AD_NAME" />, executadas no Windows 10 Pro ou registradas no <ph name="CHROME_BROWSER_CLOUSE_MANAGEMENT_NAME" />. No <ph name="MAC_OS_NAME" />, essa funcionalidade está disponível apenas em instâncias gerenciadas por MDM ou associadas a um domínio via MCX.</translation> +<translation id="3695706037816556327">Ação na remoção do token de segurança (por exemplo, um cartão inteligente) do <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="3701121231485832347">Controla configurações específicas de dispositivos <ph name="PRODUCT_OS_NAME" /> gerenciados pelo <ph name="MS_AD_NAME" />.</translation> <translation id="3702518095257671450">Atestado remoto</translation> <translation id="3702647575225525306"><ph name="POLICY_NAME" />: o campo de linha única é obsoleto e será removido no futuro. Comece a usar a caixa de texto de várias linhas abaixo.</translation> @@ -1897,6 +1888,8 @@ Deixar estas políticas se definição permitirá que os usuários escolham as configurações de proxy por conta própria.</translation> <translation id="3758249152301468420">Desativar Ferramentas de desenvolvedor</translation> +<translation id="3760231600118073732">Bloquear a sessão atual.</translation> +<translation id="3764097800332238572">Esta política só terá efeito quando a <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_POLICY_NAME" /> estiver definida como <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" /> ou <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" /> e um usuário que faz a autenticação por um cartão inteligente remover o cartão. Esta política especificará por quantos segundos uma notificação que informa o usuário sobre a ação futura será exibida. A notificação bloqueia a tela. A ação só acontecerá depois que a notificação for fechada. O usuário pode evitar o acontecimento da ação reinserindo o cartão inteligente antes que a notificação expire. Se esta política for definida como zero, nenhuma notificação será exibida e a ação acontecerá imediatamente.</translation> <translation id="3765260570442823273">Duração da mensagem de aviso de saída de usuário ocioso</translation> <translation id="377044054160169374">Aplicação de intervenção de experiência ofensiva</translation> <translation id="3780152581321609624">Incluir porta não padrão no SPN Kerberos</translation> @@ -2103,7 +2096,6 @@ <translation id="4056910949759281379">Desativar o protocolo SPDY</translation> <translation id="4061590579642538878">Enviar informações sobre relatórios de erros.</translation> <translation id="4075675819066819571">Posicionar a estante no lado esquerdo da tela</translation> -<translation id="4075864623710596000">Os nomes de host especificados nesta lista estarão isentos da verificação de política HSTS que poderia fazer upgrade de solicitações de http para https. Apenas nomes de host de etiqueta única são permitidos nesta política. Nomes de host precisam ser canonizados: todos os IDNs precisam ser convertidos no formato de etiqueta A, e todas as letras ASCII precisam ser minúsculas. Esta política se aplica apenas aos nomes de host especificados. Ela não se aplica a subdomínios dos nomes especificados.</translation> <translation id="408029843066770167">Permitir consultas a um serviço de hora do Google</translation> <translation id="408076456549153854">Ativar login no navegador</translation> <translation id="4082498585300984671">Ativar o recurso "Clique para ligar"</translation> @@ -2213,9 +2205,6 @@ Se a política for definida como desativada, o <ph name="PRODUCT_NAME" /> será desativado.</translation> <translation id="4203879074082863035">Somente impressoras da lista de permissões são mostradas para os usuários</translation> -<translation id="420512303455129789">Um dicionário que mapeia URLs para uma sinalização booleana e especifica se o acesso ao host deve ser permitido (verdadeiro) ou bloqueado (falso). - - Esta política é destinada a uso interno do próprio <ph name="PRODUCT_NAME" />.</translation> <translation id="4209297478239988291">Ativar o recurso de acessibilidade de clique automático. Este recurso é responsável por clicar sem pressionar fisicamente o mouse ou o teclado. Coloque o cursor sobre o objeto em que você quer clicar. @@ -2355,13 +2344,6 @@ <translation id="4494132853995232608">DTC wilco</translation> <translation id="449423975179525290">Configura políticas relacionadas ao <ph name="PLUGIN_VM_NAME" />.</translation> <translation id="4498493270899294764">Padrões de URL que não precisam de verificação de malware em conteúdo transferido por download</translation> -<translation id="450537894712826981">Configura o tamanho do cache que o <ph name="PRODUCT_NAME" /> usará para armazenar os arquivos de mídia em cache no disco. - - Se você definir esta política, o <ph name="PRODUCT_NAME" /> usará o tamanho de cache indicado independente de o usuário especificar ou não a sinalização '--media-cache-size' O valor especificado nesta política não é um limite rígido, mas sim uma sugestão para para o sistema de armazenamento em cache, por isso qualquer valor abaixo de alguns megabytes será considerado muito pequeno e será arredondado para um mínimo razoável. - - Se o valor desta política for 0, o tamanho de cache padrão será usado, porém o usuário não poderá alterá-lo. - - Se esta política não for definida, o tamanho padrão será usado e o usuário poderá modificá-lo com a sinalização --media-cache-size.</translation> <translation id="4508084713148633492">Permite ativar ou desativar uma notificação quando há pouco espaço em disco. Isso se aplica a todos os usuários no dispositivo. Se houver exatamente uma conta de usuário em um dispositivo gerenciado, a notificação será sempre exibida, independentemente do valor desta política. Se houver várias contas de usuário em um dispositivo gerenciado, a notificação será exibida apenas quando a política estiver definida como verdadeira. @@ -2653,7 +2635,6 @@ Se ela for definida como "Desativada", o <ph name="PRODUCT_NAME" /> não enviará essas consultas.</translation> <translation id="5032164758660626397">Impedir que o usuário transfira arquivos grandes</translation> -<translation id="5047604665028708335">Permitir acesso a sites fora de pacotes de conteúdo</translation> <translation id="5056708224511062314">Lupa desativada</translation> <translation id="5058573563327660283">Selecionar a estratégia usada para liberar espaço em disco durante a limpeza automática (obsoleta)</translation> <translation id="5061114193960158745">A definição a política controla a lista de sites que nunca causarão uma troca de navegador. Cada item é tratado como uma regra. As regras correspondentes não abrirão um navegador alternativo. Ao contrário da política <ph name="URL_LIST_POLICY_NAME" />, as regras se aplicam nas duas direções. Quando o suplemento do <ph name="IE_PRODUCT_NAME" /> estiver ativado, ele também controlará se o <ph name="IE_PRODUCT_NAME" /> abrirá os URLs no <ph name="PRODUCT_NAME" />. @@ -3117,10 +3098,6 @@ Isso não é recomendado, pois a extensão nameConstraints, que restringe os nomes de host para os quais um determinado certificado pode ser autorizado, pode ser ignorada. Se esta política não for definida ou for definida como false, os certificados de servidor sem a extensão subjectAlternativeName que contém um nome DNS ou endereço IP não serão confiáveis.</translation> -<translation id="5578571772998293651">Permita o feedback do usuário. - Se a política for definida como falsa, os usuários não poderão enviar feedback para o Google. - - Se a política não for definida ou for definida como verdadeira, os usuários poderão enviar feedback para o Google em "Menu" -> "Ajuda" -> "Informar um problema" ou usando uma combinação de teclas.</translation> <translation id="5579179012798142131">A não ser que o modo temporário ou o login múltiplo esteja ativado durante a sessão do usuário, a definição da política ArcEnabled como verdadeira ativará o ARC para o usuário. Se a política for definida como falsa ou não for definida, usuários corporativos não poderão usar o ARC.</translation> <translation id="5582429816116769246">Permite controlar se os usuários podem acessar impressoras que não sejam de empresas. @@ -3382,7 +3359,6 @@ <translation id="5951418260805607969">Mostrar uma notificação quando houver pouco espaço em disco</translation> <translation id="5961137303188584693">Endereço MAC da placa de rede integrada do dispositivo</translation> <translation id="5966615072639944554">Extensões que podem usar a API de declaração remota</translation> -<translation id="5983708779415553259">Comportamento padrão para sites fora de pacotes de conteúdo</translation> <translation id="5997543603646547632">Usar relógido de 24 horas por padrão</translation> <translation id="5997846976342452720">Especifica se o localizador de plug-ins deve ser desativado (uso suspenso)</translation> <translation id="5998198091336830580">Esta política faz parte do seguinte grupo atômico (apenas as políticas da fonte de maior prioridade presentes no grupo são aplicadas):</translation> @@ -3421,9 +3397,6 @@ <translation id="603768430528561926">Se a política for definida como "Ativada" ou não for definida, dispositivos de empresas poderão resgatar ofertas com o registro do <ph name="PRODUCT_OS_NAME" />. Se a política for definida como "Desativada", os usuários não poderão resgatar essas ofertas.</translation> -<translation id="6038407313189625985">Se esta política for ativada ou não for definida, a integridade de código renderizador será ativada. Ela será desativada apenas se forem encontrados problemas de compatibilidade com software de terceiros que precisa ser executado dentro dos processos de renderização do Chrome. - - A desativação desta política prejudica a segurança e a estabilidade do Chrome, uma vez que códigos desconhecidos e potencialmente hostis poderão ser carregados nos processos de renderização do Chrome. Consulte https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies (link em inglês) para mais informações.</translation> <translation id="6048199181629830227">Ativar o gerenciamento de energia no período de pico</translation> <translation id="6054485492411959335">Especifica as impressoras que um usuário pode usar. @@ -3900,6 +3873,7 @@ <translation id="6672070613706645316">Permitir que usuários personalizem o plano de fundo na página "Nova guia"</translation> <translation id="6672630473862787247">Ativar a autenticação pelo SO em sessões normais, anônimas e de visitante.</translation> <translation id="6685903773201985073">Ativar a autenticação pelo SO em sessões normais e de visitante.</translation> +<translation id="6689343802305995925">Nenhuma ação acontece.</translation> <translation id="6689792153960219308">Informar status de hardware</translation> <translation id="6690425645391461516">Desativar verificações de interceptação de DNS. Permitir barras de informações oferecendo "http://intranetsite/" como alternativa.</translation> <translation id="6698632841807204978">Ativar impressão monocromática</translation> @@ -4166,6 +4140,7 @@ Se a política for definida como desativada, o <ph name="PRODUCT_NAME" /> fechará a guia depois de mudar para um navegador alternativo, mesmo se essa for a última guia. Isso faz com que o <ph name="PRODUCT_NAME" /> seja completamente fechado.</translation> <translation id="7019805045859631636">Rápida</translation> +<translation id="7026351325994257733">Permitir que as configurações de rede Wi-Fi sejam sincronizadas entre dispositivos <ph name="PRODUCT_OS_NAME" /> e um smartphone Android conectado.</translation> <translation id="7027785306666625591">Configura o gerenciamento de energia no <ph name="PRODUCT_OS_NAME" />. Essas políticas permitem configurar a forma como o <ph name="PRODUCT_OS_NAME" /> se comporta quando o usuário permanece inativo por um período de tempo específico.</translation> @@ -4537,6 +4512,13 @@ - Se esta política for desativada, os administradores precisarão informar isso para os usuários finais do dispositivo.</translation> <translation id="747275827471712187">Reverter para comportamento <ph name="ATTRIBUTE_SAMESITE_NAME" /> legado para os cookies nesses sites</translation> +<translation id="7476621944304431784">Se esta definição estiver ativada, os usuários poderão sincronizar configurações de rede Wi-Fi entre dispositivos <ph name="PRODUCT_OS_NAME" /> e um smartphone Android conectado. Antes que as configurações sejam sincronizadas, os usuários precisam aceitar esse recurso explicitamente concluindo um fluxo de configuração. + + Se esta definição estiver desativada, os usuários não terão permissão para sincronizar as configurações de rede Wi-Fi. + + Este recurso depende da ativação do datatype <ph name="WIFI_CONFIGURATIONS_DATATYPE_NAME" /> na Sincronização do Chrome. Se <ph name="WIFI_CONFIGURATIONS_DATATYPE_NAME" /> estiver desativado na política <ph name="SYNC_TYPES_LIST_DISABLED_POLICY_NAME" /> ou se a Sincronização do Chrome estiver desativada na política <ph name="SYNC_DISABLED_POLICY_NAME" />, este recurso não será ativado. + + Se esta política não for definida, o comportamento padrão será não permitir a sincronização para usuários gerenciados.</translation> <translation id="7477231245051133709">Ativar o recurso de acessibilidade de áudio mono</translation> <translation id="7477239290070847560">Destinos de protocolos baseados em Zeroconf (mDNS + DNS-SD)</translation> <translation id="7485481791539008776">Regras de seleção de impressora padrão</translation> @@ -4728,9 +4710,6 @@ Observação: atualmente, as reinicializações automáticas ficam ativadas apenas enquanto a tela de login é exibida ou uma sessão de aplicativo de quiosque está em andamento. Isso mudará no futuro, quando a política será sempre aplicada, independentemente de qualquer tipo específico de sessão estar ou não em andamento.</translation> <translation id="7701341006446125684">Definir o tamanho do cache de aplicativos e extensões (em bytes)</translation> -<translation id="7709537117200051035">Um dicionário que mapeia nomes de host para uma sinalização booleana e especifica se o acesso ao host deve ser permitido (verdadeiro) ou bloqueado (falso). - - Esta política é destinada a uso interno do próprio <ph name="PRODUCT_NAME" />.</translation> <translation id="7710950688502974809">Lista de configurações para os serviços do Chrome Enterprise Connectors que serão aplicadas ao conector <ph name="ON_BULK_DATA_ENTRY_ENTERPRISE_CONNECTOR" />, que é acionado quando dados são inseridos no Chrome pela área de transferência ou arrastando e soltando conteúdos da Web. Os campos <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> e <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> são usados para determinar se o conector enviará dados para análise quando eles forem inseridos em uma página específica e quais tags serão incluídas na solicitação de análise desses dados. Uma tag correspondente ao padrão "ativar" será incluída na solicitação de análise se o URL da página corresponder a um padrão associado a essa tag. Isso acontecerá apenas se nenhum padrão "desativar" com a mesma tag corresponder ao URL da página. A análise será feita se pelo menos uma tag for incluída na solicitação. @@ -4878,7 +4857,6 @@ Se você ativar ou desativar esta política, os usuários não poderão alterar ou substituir essa configuração no <ph name="PRODUCT_NAME" />. Se a política não for definida, a configuração ficará ativada, mas o usuário poderá alterá-la.</translation> -<translation id="7953256619080733119">Hosts de exceção manual do usuário gerenciado</translation> <translation id="7956210013490975468">Configura o serviço de proxy do sistema para o <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="7958537754689366707">A senha precisa ser digitada a cada 12 horas</translation> <translation id="7961779417826583251">Desativar a aplicação da Transparência dos certificados para uma lista de Autoridades de certificação de legado</translation> @@ -5100,11 +5078,6 @@ Se você definir esta política, o usuário não poderá alterá-la ou modificá-la. Se a política não for definida, o ditado ficará desativado inicialmente, mas poderá ser ativado pelo usuário a qualquer momento.</translation> -<translation id="829337533107201925">Se a política for ativada, as políticas vindas de um grupo atômico que não compartilhe a fonte com prioridade mais alta do grupo serão ignoradas. - - Se esta política for desativada, nenhuma política será ignorada devido à fonte. Políticas serão ignoradas apenas se houver um conflito e a política não tiver a prioridade mais alta. - - Se esta política for definida a partir de uma origem em nuvem, não poderá ser destinada a um usuário específico.</translation> <translation id="8294750666104911727">Normalmente as páginas com X-UA-Compatible configuradas para chrome=1 são renderizadas no <ph name="PRODUCT_FRAME_NAME" /> independentemente da política "ChromeFrameRendererSettings". Se você ativar essa configuração, não haverá a busca de metatags nas páginas. @@ -5306,7 +5279,6 @@ <translation id="8544375438507658205">Renderizador padrão de HTML para o <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="8544465954173828789">Permite a sincronização de mensagens SMS do smartphone com o Chromebook.</translation> <translation id="8548832052135586762">Define a impressão para apenas em cores, apenas monocromática ou sem restrição de modo de cor. Se a política não for definida, não haverá restrição.</translation> -<translation id="8549772397068118889">Avisar ao visitar sites fora de pacotes de conteúdo</translation> <translation id="8566842294717252664">Ocultar a loja on-line da página "Nova guia" e do Acesso rápido aos apps</translation> <translation id="8569734380847633643"> Se esta política for definida como falsa, o Wi-Fi será desativado pelo <ph name="PRODUCT_OS_NAME" />, e a reativação pelo usuário não será possível. @@ -5426,7 +5398,6 @@ Se você definir esta política, os usuários não poderão mudá-la ou substituí-la. Esta política não afeta a possibilidade de os usuários configurarem impressoras em dispositivos individuais. Ela tem o objetivo de complementar a configuração de impressoras por usuários individuais.</translation> -<translation id="8764477907716150749">Esta política é destinada a uso interno pelo próprio <ph name="PRODUCT_NAME" />.</translation> <translation id="8767743923206070405">Se a política for definida como "Ativada", o botão "Início" será exibido na barra de ferramentas do <ph name="PRODUCT_NAME" />. Se a política for definida como "Desativada", o botão "Início" não será exibido. Se você definir a política, os usuários não poderão mudá-la no <ph name="PRODUCT_NAME" />. Se não defini-la, os usuários poderão decidir se o botão "Início" será exibido.</translation> @@ -5768,6 +5739,7 @@ <translation id="9152473318295429890">Ativa sugestões contextuais de páginas da Web relacionadas</translation> <translation id="9153446010242995516">Faça a reversão e permaneça na versão de destino se a versão do SO for mais recente que a de destino. Se possível, tente transferir a configuração do dispositivo (incluindo as credenciais de rede) por meio do processo de reversão. Porém, faça a reversão com o Powerwash completo mesmo se não for possível restaurar os dados, seja porque a versão de destino não é compatível com a restauração de dados ou devido a uma alteração incompatível com versões anteriores. Compatível com o <ph name="PRODUCT_OS_NAME" /> 75 ou versões posteriores. Para clientes com versões anteriores, esse valor significa que a reversão está desativada.</translation> +<translation id="9155218447258425310">Duração da notificação sobre a remoção do cartão inteligente do <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="9155375380628728544">A definição da política permite que os usuários adicionem apenas um dos idiomas listados nesta política à lista de idiomas preferidos. Se ela não for definida ou for definida como uma lista vazia, os usuários poderão especificar os idiomas preferidos.
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb index 32433915..b7d25c5 100644 --- a/components/policy/resources/policy_templates_ru.xtb +++ b/components/policy/resources/policy_templates_ru.xtb
@@ -200,11 +200,6 @@ Если правило отключено (значение False), <ph name="PRODUCT_NAME" /> не поддерживает вход через гостевой профиль.</translation> <translation id="1363275621236827384">Разрешить аппаратным профилям отправлять запросы на сервер Quirks</translation> <translation id="1376119291123231789">Включить расширенный режим зарядки</translation> -<translation id="1378850678793136128">Вы можете задать список шаблонов URL для указания сайтов, которым будет автоматически предоставляться доступ к USB-устройствам с определенными идентификаторами поставщика и продукта на экране входа. Каждый пункт списка должен включать устройства и URL. Для каждого устройства можно задать идентификатор поставщика "vendor_id" и идентификатор продукта "product_id". Если не заполнить поле "vendor_id", правило будет применяться для всех устройств. Правило с незаполненным полем "product_id" применяется для всех устройств с указанным идентификатором поставщика. Правило не будет работать, если заполнить только поле "product_id". - - В модели разрешения доступа к USB-устройству используется URL сайта, запрашивающего доступ (запрашивающий URL), и URL сайта из фрейма верхнего уровня (встраиваемый URL). Если сайт, запрашивающий доступ, загружается в окне iframe, эти два URL могут отличаться. Поэтому поле URL может содержать два адреса, указанные через запятую. Когда задан только один URL, доступ к USB-устройствам будет предоставлен, если этот URL совпадает с запрашивающим URL, независимо от способа встраивания. В поле URL необходимо указывать действительные адреса, иначе правило будет игнорироваться. - - Если это правило не настроено, для всех сайтов используется глобальное значение по умолчанию (автоматический доступ запрещен).</translation> <translation id="1384459581748403878">Источник: <ph name="REFERENCE_URL" /></translation> <translation id="138847842893090358">Сообщать о состоянии обновления ОС</translation> <translation id="1390901586107713894">Позволяет указать, какие расширения запрещено устанавливать пользователям. Установленные расширения будут отключены, если их внести в черный список. Пользователь не сможет включить их. Если расширение присутствовало в черном списке и было удалено из него, оно автоматически включится. @@ -447,12 +442,6 @@ Если не настроить это правило, установка <ph name="PLUGIN_VM_NAME" /> будет возможна, только если на устройстве не менее 20 ГБ свободного пространства (значение по умолчанию). Если правило настроено, установка <ph name="PLUGIN_VM_NAME" /> будет выполнена, только если на устройстве больше свободного пространства, чем задано в правиле.</translation> -<translation id="1695708467571967752">Это правило определяет, могут ли пользователи воспроизводить мультимедиа с заблокированного устройства. - - Если для правила указано значение False, элементы управления мультимедиа будут недоступны на заблокированном экране. - - Если задано значение True или правило не настроено, элементы управления мультимедиа будут появляться каждый раз, когда пользователь блокирует устройство во время воспроизведения медиафайла. - </translation> <translation id="1700811900332333712">Разрешить запрос функции Powerwash на устройстве</translation> <translation id="1708496595873025510">Ограничение загрузки исходного значения Variations</translation> <translation id="171511968762040550">Если правило не настроено или задано значение True, пользователи смогут добавлять, изменять и удалять закладки. @@ -661,7 +650,6 @@ Когда правило отключено, перенос файлов запрещен. Когда правило включено или не настроено, перенос файлов разрешен.</translation> <translation id="2057317273526988987">Разрешить доступ к списку URL</translation> <translation id="2061810934846663491">Настроить доменные имена для хостов удаленного доступа</translation> -<translation id="2067011586099792101">Блокировать доступ для сайтов, не включенных в пакеты контента</translation> <translation id="2069350366303315077">Если это правило включено, <ph name="PRODUCT_NAME" /> принудительно запускает гостевые сеансы и не допускает входа в профиль. При гостевом доступе все окна для профилей <ph name="PRODUCT_NAME" /> открываются в режиме инкогнито. Если правило отключено или не настроено, а также если гостевой режим в браузере запрещен правилом <ph name="BROWSER_GUEST_MODE_ENABLED_POLICY_NAME" />, пользователи могут входить в существующие профили и создавать новые.</translation> @@ -2115,7 +2103,6 @@ <translation id="4056910949759281379">Отключение протокола SPDY</translation> <translation id="4061590579642538878">Передача информации из отчетов о сбое</translation> <translation id="4075675819066819571">Расположить панель запуска с левой стороны экрана</translation> -<translation id="4075864623710596000">Для имен хостов, указанных в списке этого правила, не будет проверяться использование механизма HSTS (он позволяет изменить протокол, по которому осуществляются запросы, с HTTP на HTTPS). В списке правила могут быть только одноуровневые имена. Имена хостов необходимо нормализовать: доменные имена, содержащие символы национальных алфавитов, должны быть преобразованы в формат A-Label, а буквы из таблицы ASCII должны быть строчными. Это правило действует только для определенных имен хостов, указанных в списке. На субдомены оно не распространяется.</translation> <translation id="408029843066770167">Разрешить отправлять запросы в службу времени Google</translation> <translation id="408076456549153854">Включить вход в браузере</translation> <translation id="4082498585300984671">Включение функции вызова по нажатию</translation> @@ -2225,9 +2212,6 @@ Если выключить правило, технология <ph name="PRODUCT_NAME" /> не будет использоваться.</translation> <translation id="4203879074082863035">Пользователи видят только принтеры из белого списка</translation> -<translation id="420512303455129789">Словарь, в котором URL-адреса сопоставляются с логическими флагами, обозначающими разрешение (значение "true") или запрет (значение "false") доступа к хосту. - - Это внутреннее правило <ph name="PRODUCT_NAME" />.</translation> <translation id="4209297478239988291">Включает специальную возможность – автоматическое нажатие. Эта функция позволяет нажать на элемент интерфейса, не используя мышь или сенсорную панель. Достаточно навести указатель на объект. @@ -2367,16 +2351,6 @@ <translation id="4494132853995232608">Wilco DTC</translation> <translation id="449423975179525290">Настройте правила, связанные с <ph name="PLUGIN_VM_NAME" />.</translation> <translation id="4498493270899294764">Шаблоны URL, для которых не нужно проверять скачиваемый контент на наличие вредоносного ПО</translation> -<translation id="450537894712826981">Настраивает размер кеша, который <ph name="PRODUCT_NAME" /> будет использовать для хранения кешированных медиафайлов на диске. - - Если это правило задано, <ph name="PRODUCT_NAME" /> использует предоставленный кеш независимо от того, настроен ли флаг --media-cache-size. Значение, указанное в этом правиле, является не строгим ограничением, а, скорее, ориентиром для системы кеширования. Если значение будет слишком мало, оно будет увеличено до разумного минимума. - - - Если установлено значение 0, используется кеш стандартного размера, но пользователь не может его изменить. - - - - Если это правило не настроено, также используется кеш стандартного размера, но пользователь может изменить его с помощью флага --media-cache-size.</translation> <translation id="4508084713148633492">Это правило позволяет включить или отключить показ уведомления о том, что на диске осталось мало места. Правило действительно для всех пользователей устройства. Если на устройстве под управлением администратора есть только один аккаунт пользователя, упомянутое уведомление показывается независимо от значения, которое задано в этом правиле. Если на устройстве под управлением администратора есть несколько аккаунтов пользователей, уведомление показывается только при условии, что в правиле задано значение True. @@ -2670,7 +2644,6 @@ Если правило отключено, <ph name="PRODUCT_NAME" /> не отправляет эти запросы.</translation> <translation id="5032164758660626397">Запретить пользователю передачу больших файлов</translation> -<translation id="5047604665028708335">Разрешить доступ к сайтам, не включенным в пакеты контента</translation> <translation id="5056708224511062314">Экранная лупа отключена</translation> <translation id="5058573563327660283">Выбор стратегии удаления данных при автоматической очистке диска (устаревшее правило)</translation> <translation id="5061114193960158745">Это правило определяет список сайтов, которые никогда не должны открываться в другом браузере. Каждый элемент обрабатывается как отдельное правило. Сайты, которые соответствуют указанным элементам, не открываются в альтернативном браузере. В отличие от <ph name="URL_LIST_POLICY_NAME" /> заданные здесь элементы-правила применяются в обоих браузерах. Таким образом, если включено дополнение <ph name="IE_PRODUCT_NAME" />, оно определяет, должен ли браузер <ph name="IE_PRODUCT_NAME" /> открывать указанные сайты в <ph name="PRODUCT_NAME" />. @@ -3143,10 +3116,6 @@ Мы не рекомендуем использовать этот вариант, поскольку он позволяет пропускать расширение nameConstraints, ограничивающее список имен хоста, для которых может быть авторизован сертификат. Если правило не настроено либо для него задано значение False, сертификаты сервера без расширения subjectAlternativeName, содержащие только имя DNS или IP-адрес, будут считаться ненадежными.</translation> -<translation id="5578571772998293651">Правило разрешает пользователям оставлять отзывы. - Если для правила установлено значение false, пользователи не могут отправлять отзывы в Google. - - Если правило не настроено или для него установлено значение true, пользователи могут отправлять отзывы в Google. Для этого нужно нажать "Меню > Справка > Сообщить о проблеме" или использовать сочетание клавиш.</translation> <translation id="5579179012798142131">Если для правила ArcEnabled указано значение True, пользователь может запускать ARC (при условии, что во время сеанса пользователя не включен режим временного профиля или множественный вход). Если правило не настроено или задано значение False, корпоративные пользователи не могут применять ARC.</translation> <translation id="5582429816116769246">Позволяет разрешать или запрещать доступ к некорпоративным принтерам для пользователей. @@ -3412,7 +3381,6 @@ <translation id="5951418260805607969">Показывать уведомление, когда на диске остается мало места</translation> <translation id="5961137303188584693">MAC-адрес встроенной сетевой платы устройства</translation> <translation id="5966615072639944554">Разрешает расширениям использовать API удаленного подтверждения данных</translation> -<translation id="5983708779415553259">Действие по умолчанию для сайтов, не включенных в пакеты контента</translation> <translation id="5997543603646547632">Использовать по умолчанию 24-часовой формат времени</translation> <translation id="5997846976342452720">Отключение поиска плагинов (устаревшее)</translation> <translation id="5998198091336830580">Это правило входит в следующую мини-группу (применяются только правила из источника с максимальным приоритетом):</translation> @@ -3451,9 +3419,6 @@ <translation id="603768430528561926">Если правило включено или не настроено, пользователи корпоративных устройств могут использовать специальные приложения, регистрируя <ph name="PRODUCT_OS_NAME" />. Если правило отключено, использовать предложения нельзя.</translation> -<translation id="6038407313189625985">Если это правило включено или не настроено, будет использоваться инструмент Renderer Code Integrity. Его можно отключить только в том случае, если возникают проблемы совместимости со сторонним ПО, которое нужно запустить внутри процессов средства обработки Chrome. - - Отключение этого правила окажет негативный эффект на безопасность и стабильность Chrome, поскольку внутри процессов средства обработки Chrome будет разрешена загрузка неизвестного и потенциально вредоносного кода. Подробную информацию можно найти здесь: https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies.</translation> <translation id="6048199181629830227">Включить управление режимом пиковой нагрузки</translation> <translation id="6054485492411959335">Это правило определяет принтеры, с которыми может работать пользователь. @@ -4755,9 +4720,6 @@ Примечание. В настоящее время автоматическая перезагрузка включена в режиме показа главного экрана или в режиме киоска. Мы планируем доработать эту функцию, чтобы правило могло применяться независимо от текущего сеанса.</translation> <translation id="7701341006446125684">Задать размер кеша для приложений и расширений (в байтах)</translation> -<translation id="7709537117200051035">Словарь, в котором имена хостов сопоставляются с логическими флагами, обозначающими разрешение (значение "true") или запрет (значение "false") доступа к хосту. - - Это внутреннее правило <ph name="PRODUCT_NAME" />.</translation> <translation id="7710950688502974809">Список настроек, применяемых к коннектору <ph name="ON_BULK_DATA_ENTRY_ENTERPRISE_CONNECTOR" /> для Chrome Enterprise. Коннектор запускается при вставке в Chrome данных из буфера обмена или перетаскивании веб-контента. Значения полей <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> и <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> определяют, должен ли коннектор отправить на анализ данные, которые вставляются на определенной странице, и какие теги необходимо добавить в запрос на анализ этих данных. Тег, соответствующий шаблону в поле enable, будет включен в запрос на анализ, если URL страницы совпадет с шаблоном, связанным с этим тегом. При этом URL не должен соответствовать ни одному шаблону с таким же тегом в поле disable. Данные отправляются на анализ, если хотя бы один тег подходит для включения в запрос. @@ -4905,7 +4867,6 @@ Если параметр включен или отключен, пользователи не могут изменить или перезаписать его в <ph name="PRODUCT_NAME" />. Если правило не настроено, предопределение параметров сети будет активировано, но пользователи смогут выключить его.</translation> -<translation id="7953256619080733119">Исключения на доступ к хостам, устанавливаемые вручную управляемыми пользователями</translation> <translation id="7956210013490975468">Параметры системного прокси-сервиса для <ph name="PRODUCT_OS_NAME" /></translation> <translation id="7958537754689366707">Обязательный ввод пароля каждые 12 часов</translation> <translation id="7961779417826583251">Отключить проверку сертификатов для устаревших центров сертификации</translation> @@ -5125,11 +5086,6 @@ Если вы настроите это правило, пользователи не смогут его изменить или переопределить. Если не настроить это правило, изначально голосовой ввод будет отключен, но пользователь сможет включить его в любой момент.</translation> -<translation id="829337533107201925">Если это правило включено, будут игнорироваться те правила, которые применяются в мини-группе, но заданы не источником с максимальным приоритетом. - - Если это правило отключено, правила не будут игнорироваться по признаку источника. Они будут игнорироваться, только если у них не окажется максимального приоритета в случае конфликта с другими правилами. - - Если правило задано из облачного источника, оно не может быть нацелено на конкретного пользователя.</translation> <translation id="8294750666104911727">Как правило, если для страниц с заголовком X-UA-Compatible установлено значение "chrome=1", они обрабатываются с помощью <ph name="PRODUCT_FRAME_NAME" /> независимо от правила "ChromeFrameRendererSettings". Если параметр включен, проверка метатегов выполняться не будет. @@ -5333,7 +5289,6 @@ <translation id="8544375438507658205">Средство обработки HTML в <ph name="PRODUCT_FRAME_NAME" /> по умолчанию</translation> <translation id="8544465954173828789">Разрешить синхронизацию SMS на телефоне и устройстве Chromebook</translation> <translation id="8548832052135586762">Устанавливает режим печати: только цветная, только черно-белая, без ограничений. Если правило не задано, ограничение не действует.</translation> -<translation id="8549772397068118889">Предупреждать о переходе на сайт, не включенный в пакет контента</translation> <translation id="8566842294717252664">Удалить интернет-магазин со страницы быстрого доступа и панели запуска приложений</translation> <translation id="8569734380847633643"> Если задано значение False, функция Wi-Fi в <ph name="PRODUCT_OS_NAME" /> будет отключена и пользователи не смогут ее активировать. @@ -5453,7 +5408,6 @@ Если правило настроено, пользователи не могут изменить или переопределить его. С помощью этого правила нельзя разрешить или запретить пользователям настраивать принтеры на своих устройствах. Оно только дополняет настройки пользователей.</translation> -<translation id="8764477907716150749">Это внутреннее правило <ph name="PRODUCT_NAME" />.</translation> <translation id="8767743923206070405">Если правило включено, кнопка главного экрана будет располагаться на панели инструментов <ph name="PRODUCT_NAME" />. В противном случае она будет не видна. Если правило задано, не удастся изменить эту настройку в <ph name="PRODUCT_NAME" />. В противном случае пользователи смогут добавить или скрыть кнопку главного экрана.</translation>
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb index 99080481..5d4935b2 100644 --- a/components/policy/resources/policy_templates_th.xtb +++ b/components/policy/resources/policy_templates_th.xtb
@@ -203,11 +203,6 @@ หากตั้งค่านโยบายนี้เป็น False <ph name="PRODUCT_NAME" /> จะไม่อนุญาตให้เริ่มต้นโปรไฟล์ผู้เยี่ยมชม</translation> <translation id="1363275621236827384">เปิดใช้คำค้นหาไปยังเซิร์ฟเวอร์ Quirks สำหรับโปรไฟล์ฮาร์ดแวร์</translation> <translation id="1376119291123231789">เปิดใช้โหมดการชาร์จแบตเตอรี่ขั้นสูง</translation> -<translation id="1378850678793136128">ให้คุณกำหนดรายการรูปแบบ URL ซึ่งระบุเว็บไซต์ที่ได้รับสิทธิ์โดยอัตโนมัติให้เข้าถึงอุปกรณ์ USB ที่มีรหัสผู้ให้บริการและรหัสผลิตภัณฑ์ที่กำหนดในหน้าจอการเข้าสู่ระบบ แต่ละรายการย่อยในรายการต้องมีช่อง "devices" และ "urls" นโยบายจึงจะมีผล แต่ละรายการย่อยในช่อง "devices" อาจมีช่อง "vendor_id" และ "product_id" การละเว้นช่อง "vendor_id" จะสร้างนโยบายที่ตรงกับอุปกรณ์ทุกเครื่อง การละเว้นช่อง "product_id" จะสร้างนโยบายที่ตรงกับอุปกรณ์ทุกเครื่องที่มีรหัสผู้ให้บริการที่กำหนด นโยบายที่มีช่อง "product_id" แต่ไม่มีช่อง "vendor_id" จะไม่มีผล - - โมเดลสิทธิ์ USB ใช้ URL ของเว็บไซต์ที่ส่งคำขอ ("URL ที่ส่งคำขอ") และ URL ของเว็บไซต์กรอบระดับบนสุด ("URL ที่มีการฝัง") เพื่อให้สิทธิ์ URL ที่ส่งคำขอในการเข้าถึงอุปกรณ์ USB โดย URL ที่ส่งคำขออาจต่างจาก URL ที่มีการฝังเมื่อมีการโหลดเว็บไซต์ที่ส่งคำขอใน iframe ดังนั้นช่อง "urls" อาจมีสตริง URL ได้ถึง 2 สตริงโดยคั่นด้วยเครื่องหมายจุลภาคเพื่อระบุ URL ที่ส่งคำขอและ URL ที่มีการฝังตามลำดับ หากมีการระบุ URL เพียงรายการเดียว ระบบจะให้สิทธิ์เข้าถึงอุปกรณ์ USB ที่เกี่ยวข้องเมื่อ URL ของเว็บไซต์ที่ส่งคำขอตรงกับ URL นี้ไม่ว่าสถานะการฝังจะเป็นอย่างไร URL ในช่อง "urls" ต้องเป็น URL ที่ถูกต้อง มิเช่นนั้น ระบบจะไม่สนใจนโยบายดังกล่าว - - หากไม่ได้ตั้งค่านโยบายนี้ ระบบจะใช้ค่าเริ่มต้นส่วนกลางกับเว็บไซต์ทั้งหมด (ไม่มีการเข้าถึงโดยอัตโนมัติ)</translation> <translation id="1384459581748403878">การอ้างอิง: <ph name="REFERENCE_URL" /></translation> <translation id="138847842893090358">รายงานสถานะการอัปเดตระบบปฏิบัติการ</translation> <translation id="1390901586107713894">ให้คุณระบุว่าส่วนขยายใดบ้างที่ผู้ใช้ติดตั้งไม่ได้ ระบบจะปิดใช้ส่วนขยายที่ติดตั้งแล้วหากถูกบล็อกโดยไม่มีวิธีให้ผู้ใช้เปิดใช้ เมื่อนำส่วนขยายที่ปิดใช้เนื่องจากอยู่ในรายการที่บล็อกออกแล้ว ระบบจะเปิดใช้อีกครั้งโดยอัตโนมัติ @@ -439,12 +434,6 @@ หากไม่ได้ตั้งค่านโยบายนี้ การติดตั้ง <ph name="PLUGIN_VM_NAME" /> จะไม่สำเร็จหากอุปกรณ์มีพื้นที่ว่างในดิสก์น้อยกว่า 20 GB (ค่าเริ่มต้น) หากตั้งค่านโยบายนี้ การติดตั้ง <ph name="PLUGIN_VM_NAME" /> จะไม่สำเร็จหากอุปกรณ์มีพื้นที่ว่างในดิสก์น้อยกว่าที่นโยบายกำหนดไว้</translation> -<translation id="1695708467571967752">นโยบายนี้กำหนดว่าผู้ใช้จะเล่นสื่อได้หรือไม่เมื่อมีการล็อกอุปกรณ์อยู่ - - หากตั้งค่านโยบายนี้เป็น "เท็จ" ระบบจะปิดใช้ส่วนควบคุมสื่อในหน้าจอล็อก - - หากตั้งค่านโยบายนี้เป็น "จริง" หรือไม่ได้ตั้งค่า ระบบจะแสดงส่วนควบคุมสื่อในหน้าจอล็อกหากผู้ใช้ล็อกอุปกรณ์ไว้ขณะที่สื่อกำลังเล่น - </translation> <translation id="1700811900332333712">อนุญาตให้อุปกรณ์ขอทำ Powerwash</translation> <translation id="1708496595873025510">ตั้งค่าข้อจำกัดการเรียกเมล็ดรูปแบบ</translation> <translation id="171511968762040550">การตั้งค่านโยบายเป็น "จริง" หรือไม่ได้ตั้งค่าจะให้ผู้ใช้เพิ่ม แก้ไข หรือนำบุ๊กมาร์กออกได้ @@ -649,10 +638,9 @@ หากปิดใช้การตั้งค่านี้ ระบบจะไม่อนุญาตให้โอนไฟล์ หากเปิดใช้การตั้งค่านี้หรือไม่ได้ตั้งค่า ระบบจะอนุญาตให้โอนไฟล์ได้</translation> <translation id="2057317273526988987">อนุญาตให้เข้าถึงรายการ URL</translation> <translation id="2061810934846663491">กำหนดค่าชื่อโดเมนที่จำเป็นสำหรับโฮสต์การเข้าถึงระยะไกล</translation> -<translation id="2067011586099792101">บล็อกการเข้าถึงเว็บไซต์ที่อยู่นอกชุดเนื้อหา</translation> <translation id="2069350366303315077">การตั้งค่านโยบายเป็น "เปิดใช้" หมายความว่า <ph name="PRODUCT_NAME" /> จะบังคับใช้เซสชันผู้เยี่ยมชมและป้องกันการลงชื่อเข้าใช้โปรไฟล์ การลงชื่อเข้าใช้ของผู้เยี่ยมชมเป็นโปรไฟล์ <ph name="PRODUCT_NAME" /> ซึ่งมีหน้าต่างอยู่ในโหมดไม่ระบุตัวตน - การตั้งค่านโยบายเป็น "ปิดใช้" ไม่ตั้งค่านโยบาย หรือปิดใช้โหมดผู้เยี่ยมชมของเบราว์เซอร์ (ผ่าน <ph name="BROWSER_GUEST_MODE_ENABLED_POLICY_NAME" />) จะทำให้ใช้โปรไฟล์ใหม่และโปรไฟล์ที่มีอยู่ได้</translation> + การตั้งค่านโยบายเป็น "ปิดใช้", ไม่ตั้งค่านโยบาย หรือปิดใช้โหมดผู้เยี่ยมชมของเบราว์เซอร์ (ผ่าน <ph name="BROWSER_GUEST_MODE_ENABLED_POLICY_NAME" />) จะทำให้ใช้โปรไฟล์ใหม่และโปรไฟล์ที่มีอยู่ได้</translation> <translation id="2073552873076775140">อนุญาตให้ลงชื่อเข้าใช้ <ph name="PRODUCT_NAME" /></translation> <translation id="2075732129949889165">Crostini Ansible Playbook</translation> <translation id="2077129598763517140">ใช้การเร่งฮาร์ดแวร์เมื่อสามารถใช้ได้</translation> @@ -1103,6 +1091,7 @@ การไม่ตั้งค่านโยบายนี้จะไม่เพิ่มเว็บไซต์ลงในรายการ โปรดทราบว่าคุณเพิ่มเอลิเมนต์ลงในรายการนี้ผ่านนโยบาย <ph name="USE_IE_SITELIST_POLICY_NAME" /> และ <ph name="EXTERNAL_SITELIST_URL_POLICY_NAME" /> ได้ด้วย</translation> +<translation id="2640898752536996430">นำผู้ใช้ออกจากระบบ</translation> <translation id="264093234299818170">ระบบจะแสดงเครื่องพิมพ์ทั้งหมดยกเว้นที่อยู่ในรายการที่บล็อก</translation> <translation id="264252574246191885">ไม่แสดง</translation> <translation id="2647069081229792812">เปิดหรือปิดใช้การแก้ไขบุ๊กมาร์ก</translation> @@ -1433,6 +1422,7 @@ <translation id="3072847235228302527">ตั้งข้อกำหนดในการให้บริการสำหรับบัญชีภายในอุปกรณ์</translation> <translation id="3086995894968271156">กำหนดค่า Cast Receiver ใน <ph name="PRODUCT_NAME" /></translation> <translation id="3091832372132789233">ชาร์จแบตเตอรี่สำหรับอุปกรณ์ที่เชื่อมต่อกับแหล่งจ่ายไฟภายนอกเป็นหลัก</translation> +<translation id="309416443108680956">ระบุสิ่งที่จะเกิดขึ้นเมื่อผู้ใช้ที่ตรวจสอบสิทธิ์ผ่านโทเค็นความปลอดภัย (เช่น ด้วยสมาร์ทการ์ด) นำโทเค็นดังกล่าวออกขณะอยู่ในเซสชัน <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_IGNORE" />: ไม่มีอะไรเกิดขึ้น <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" />: หน้าจอจะล็อกจนกว่าผู้ใช้จะตรวจสอบสิทธิ์อีกครั้ง <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" />: สิ้นสุดเซสชันและนำผู้ใช้ออกจากระบบ หากไม่ได้ตั้งค่านโยบายนี้ ระบบจะใช้ <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_IGNORE" /> เป็นค่าเริ่มต้น</translation> <translation id="3096595567015595053">รายการปลั๊กอินที่เปิดใช้งาน</translation> <translation id="3101501961102569744">เลือกวิธีระบุการตั้งค่าพร็อกซีเซิร์ฟเวอร์</translation> <translation id="3101709781009526431">วันที่และเวลา</translation> @@ -1527,7 +1517,7 @@ เว็บไซต์ที่กำหนดค่าไว้จะเปิดในเบราว์เซอร์อื่นแทน <ph name="PRODUCT_NAME" /> โดยอัตโนมัติ</translation> <translation id="3255624750680556186">การตั้งค่านโยบายเป็น "เปิดใช้" หรือไม่ได้ตั้งค่าจะทำให้อุปกรณ์ทริกเกอร์ Powerwash ได้ - การตั้งค่านโยบายเป็น "ปิดใช้" จะทำให้อุปกรณ์ทริกเกอร์ Powerwash ไม่ได้ อาจเกิดข้อยกเว้นให้ทำ Powerwash ได้หากตั้งค่า <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_NAME" /> เป็นค่าที่อนุญาตให้ทำการอัปเดตเฟิร์มแวร์ TPM แต่เฟิร์มแวร์ TPM ยังไม่ได้รับการอัปเดต</translation> + การตั้งค่านโยบายเป็น "ปิดใช้" จะทำให้อุปกรณ์ทริกเกอร์ Powerwash ไม่ได้ อาจเกิดข้อยกเว้นให้ทำ Powerwash ได้หากตั้งค่า <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_NAME" /> เป็นค่าที่อนุญาตให้อัปเดตเฟิร์มแวร์ TPM แต่เฟิร์มแวร์ TPM ยังไม่ได้รับการอัปเดต</translation> <translation id="3255762580838224124">การตั้งค่านโยบายจะมีการหมุนจอแสดงผลแต่ละจอไปตามการวางแนวที่กำหนดทุกครั้งที่รีบูตและเมื่อเชื่อมต่อเป็นครั้งแรกหลังจากเปลี่ยนค่าของนโยบาย ผู้ใช้อาจเปลี่ยนการหมุนจอแสดงผลได้จากหน้าการตั้งค่าหลังจากลงชื่อเข้าใช้ แต่จะมีการเปลี่ยนเมื่อรีบูตครั้งถัดไป นโยบายนี้จะใช้กับจอแสดงผลหลักและรอง หากไม่ได้ตั้งค่าไว้ ค่าเริ่มต้นจะเป็น 0 องศา และผู้ใช้เปลี่ยนค่าได้ตามต้องการ ในกรณีนี้ ระบบจะไม่ใช้ค่าเริ่มต้นซ้ำเมื่อรีสตาร์ท</translation> @@ -1851,6 +1841,7 @@ หากคุณตั้งค่านโยบายนี้ ผู้ใช้จะเปลี่ยนประเภทหน้าแรกของตนใน <ph name="PRODUCT_NAME" /> ไม่ได้ หากไม่ได้ตั้งค่า ผู้ใช้จะเป็นผู้ตัดสินใจว่าจะใช้หน้าแท็บใหม่เป็นหน้าแรกหรือไม่ ใน <ph name="MS_WIN_NAME" /> ฟังก์ชันการทำงานนี้ใช้ได้เฉพาะในอินสแตนซ์ที่เข้าร่วมโดเมน <ph name="MS_AD_NAME" />, ทำงานใน Windows 10 Pro หรือลงทะเบียนใน<ph name="CHROME_BROWSER_CLOUSE_MANAGEMENT_NAME" /> ใน <ph name="MAC_OS_NAME" /> ฟังก์ชันการทำงานนี้ใช้ได้เฉพาะในอินสแตนซ์ที่จัดการผ่าน MDM หรือเข้าร่วมโดเมนผ่าน MCX</translation> +<translation id="3695706037816556327">การดำเนินการเมื่อมีการนำโทเค็นความปลอดภัยออก (เช่น สมาร์ทการ์ด) สำหรับ <ph name="PRODUCT_OS_NAME" /></translation> <translation id="3701121231485832347">ควบคุมการตั้งค่าเฉพาะของอุปกรณ์ <ph name="PRODUCT_OS_NAME" /> ที่ <ph name="MS_AD_NAME" /> จัดการ</translation> <translation id="3702518095257671450">เอกสารรับรองระยะไกล</translation> <translation id="3702647575225525306"><ph name="POLICY_NAME" /> (เราเลิกใช้งานช่องบรรทัดเดียวแล้วและจะนำออกในเร็วๆ นี้ โปรดเริ่มใช้กล่องข้อความหลายบรรทัดด้านล่างนี้)</translation> @@ -1887,6 +1878,8 @@ การไม่ตั้งค่านโยบายนี้จะทำให้ผู้ใช้สามารถเลือกการตั้งค่าพร็อกซีได้ด้วยตนเอง</translation> <translation id="3758249152301468420">ปิดใช้งานเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์</translation> +<translation id="3760231600118073732">ล็อกเซสชันปัจจุบัน</translation> +<translation id="3764097800332238572">นโยบายนี้จะมีผลก็ต่อเมื่อตั้งค่านโยบาย <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_POLICY_NAME" /> เป็น <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" /> หรือ <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" /> และผู้ใช้ที่ตรวจสอบสิทธิ์ผ่านสมาร์ทการ์ดนำสมาร์ทการ์ดดังกล่าวออก จากนั้นนโยบายนี้จะระบุระยะเวลาเป็นวินาทีที่ระบบจะแสดงการแจ้งเตือนซึ่งแจ้งให้ผู้ใช้ทราบถึงการดำเนินการที่กำลังจะเกิดขึ้น การแจ้งเตือนนี้จะบล็อกหน้าจอ การดำเนินการจะเกิดขึ้นหลังจากที่การแจ้งเตือนนี้หมดอายุเท่านั้น ผู้ใช้ป้องกันไม่ให้เกิดการดำเนินการได้ด้วยการเสียบสมาร์ทการ์ดกลับเข้าไปก่อนที่การแจ้งเตือนจะหมดอายุ หากตั้งค่านโยบายนี้เป็น 0 จะไม่มีการแสดงการแจ้งเตือนและการดำเนินการจะเกิดขึ้นทันที</translation> <translation id="3765260570442823273">ระยะเวลาของข้อความเตือนการออกจากระบบจากการไม่มีการใช้งาน</translation> <translation id="377044054160169374">การบังคับใช้การแทรกแซงเมื่อเกิดประสบการณ์ที่ไม่เหมาะสม</translation> <translation id="3780152581321609624">รวมพอร์ตที่ไม่ใช่แบบมาตรฐานใน Kerberos SPN</translation> @@ -2093,7 +2086,6 @@ <translation id="4056910949759281379">ปิดใช้งานโปรโตคอล SPDY</translation> <translation id="4061590579642538878">รายงานข้อมูลเกี่ยวกับรายงานข้อขัดข้อง</translation> <translation id="4075675819066819571">กำหนดตำแหน่งชั้นวางให้อยู่ที่ด้านซ้ายของหน้าจอ</translation> -<translation id="4075864623710596000">ชื่อโฮสต์ที่ระบุไว้ในรายการนี้จะได้รับการยกเว้นไม่ต้องรับการตรวจสอบตามนโยบาย HSTS ที่อาจอัปเกรดคำขอจาก HTTP เป็น HTTPS นโยบายนี้อนุญาตเฉพาะชื่อโฮสต์ที่ติดป้ายกำกับป้ายเดียวเท่านั้น ชื่อโฮสต์ต้องกำหนดเป็น Canonical ซึ่งหมายความว่าต้องแปลง IDN ทั้งหมดเป็นรูปแบบ A-label และตัวอักษร ASCII ทั้งหมดต้องเป็นตัวพิมพ์เล็ก นโยบายนี้มีผลเฉพาะกับชื่อโฮสต์ที่ระบุไว้บางรายการเท่านั้น ไม่ใช่กับโดเมนย่อยของชื่อที่ระบุ</translation> <translation id="408029843066770167">อนุญาตคำค้นหาที่ส่งไปยังบริการเวลาของ Google</translation> <translation id="408076456549153854">เปิดใช้การลงชื่อเข้าใช้เบราว์เซอร์</translation> <translation id="4082498585300984671">เปิดใช้ฟีเจอร์คลิกเพื่อโทร</translation> @@ -2203,9 +2195,6 @@ การตั้งค่านโยบายเป็น "ปิดใช้" จะปิด <ph name="PRODUCT_NAME" /></translation> <translation id="4203879074082863035">มีเฉพาะเครื่องพิมพ์ในรายการที่อนุญาตพิเศษที่จะแสดงต่อผู้ใช้</translation> -<translation id="420512303455129789">URL การจับคู่พจนานุกรมเข้ากับธงบูลีนที่ระบุว่าการเข้าถึงโฮสต์ต้องได้รับอนุญาต (True) หรือถูกบล็อก (False) - - นโยบายนี้ใช้สำหรับการใช้งานภายใน <ph name="PRODUCT_NAME" /> เอง</translation> <translation id="4209297478239988291">เปิดใช้ฟีเจอร์การช่วยเหลือพิเศษสำหรับการคลิกอัตโนมัติ ฟีเจอร์นี้ทำหน้าที่คลิกโดยไม่ต้องกดเมาส์หรือทัชแพดเมื่อวางเมาส์เหนือวัตถุที่ต้องการคลิก @@ -2345,13 +2334,6 @@ <translation id="4494132853995232608">Wilco DTC</translation> <translation id="449423975179525290">กำหนดค่านโยบายที่เกี่ยวข้องกับ <ph name="PLUGIN_VM_NAME" /></translation> <translation id="4498493270899294764">รูปแบบ URL ที่จะไม่มีการตรวจหามัลแวร์ในเนื้อหาที่ดาวน์โหลด</translation> -<translation id="450537894712826981">กำหนดค่าขนาดของแคชที่ <ph name="PRODUCT_NAME" /> จะใช้สำหรับการเก็บไฟล์สื่อที่แคชบนดิสก์ - - หากคุณตั้งนโยบายนี้ <ph name="PRODUCT_NAME" /> จะใช้ขนาดของแคชที่ระบุไว้โดยไม่คำนึงว่าผู้ใช้ได้ระบุธง '--media-cache-size' ไว้หรือไม่ ค่าที่ระบุในนโยบายนี้ไม่ใช่ข้อบังคับ แต่เป็นคำแนะนำสำหรับระบบการแคช ค่าใดก็ตามที่ต่ำกว่าไม่กี่เมกะไบต์จะถือว่าเล็กเกินไปและจะปัดให้เป็นค่าต่ำสุดที่รับได้ - - หากค่าของนโยบายนี้คือ 0 จะมีการใช้ขนาดของแคชเริ่มต้นแต่ผู้ใช้จะไม่สามารถเปลี่ยนขนาดได้ - - หากไม่มีการตั้งค่านโยบายนี้ จะมีการใช้ขนาดเริ่มต้นและผู้ใช้จะสามารถลบล้างด้วยค่าสถานะ --media-cache-size</translation> <translation id="4508084713148633492">อนุญาตให้เปิดหรือปิดใช้การแจ้งเตือนเมื่อพื้นที่ในดิสก์เหลือน้อย การตั้งค่านี้มีผลกับผู้ใช้ทุกคนในอุปกรณ์ หากอุปกรณ์ที่มีการจัดการมีบัญชีผู้ใช้เพียงบัญชีเดียว การแจ้งเตือนจะแสดงเสมอไม่ว่าค่าของนโยบายนี้จะเป็นอะไรก็ตาม หากอุปกรณ์ที่มีการจัดการมีบัญชีผู้ใช้หลายบัญชี การแจ้งเตือนจะแสดงต่อเมื่อตั้งค่านโยบายนี้เป็น "จริง" @@ -2643,7 +2625,6 @@ การตั้งค่านโยบายเป็น "ปิดใช้" จะหยุด <ph name="PRODUCT_NAME" /> ไม่ให้ส่งการค้นหาเหล่านี้</translation> <translation id="5032164758660626397">ป้องกันผู้ใช้ไม่ให้โอนไฟล์ขนาดใหญ่</translation> -<translation id="5047604665028708335">อนุญาตการเข้าถึงเว็บไซต์ที่อยู่นอกชุดเนื้อหา</translation> <translation id="5056708224511062314">ปิดใช้งานแว่นขยายหน้าจอ</translation> <translation id="5058573563327660283">เลือกกลยุทธ์ที่ใช้ในการเพิ่มพื้นที่ว่างของดิสก์ระหว่างการล้างข้อมูลอัตโนมัติ (เลิกใช้แล้ว)</translation> <translation id="5061114193960158745">การตั้งค่านโยบายจะควบคุมรายการเว็บไซต์ที่จะไม่ทำให้มีการเปลี่ยนเบราว์เซอร์ ระบบจะถือว่ารายการย่อยแต่ละรายการเป็นกฎ กฎที่ตรงกันจะไม่เปิดเบราว์เซอร์สำรอง ซึ่งต่างจากนโยบาย <ph name="URL_LIST_POLICY_NAME" /> ที่กฎต่างๆ จะใช้กับทั้ง 2 ทาง เมื่อ Add-in ของ <ph name="IE_PRODUCT_NAME" /> เปิดอยู่ ก็จะเป็นตัวควบคุมด้วยว่า <ph name="IE_PRODUCT_NAME" /> ควรเปิด URL เหล่านี้ใน <ph name="PRODUCT_NAME" /> หรือไม่ @@ -3114,10 +3095,6 @@ โปรดทราบว่าเราไม่แนะนำวิธีดังกล่าว เนื่องจากวิธีนี้อาจทำให้สามารถข้ามผ่านส่วนขยาย nameConstraints ซึ่งจำกัดชื่อโฮสต์ที่ใบรับรองได้รับสิทธิ์ให้ใช้ หากไม่มีการตั้งค่านโยบายนี้ หรือตั้งค่าเป็น False ระบบจะไม่เชื่อถือใบรับรองเซิร์ฟเวอร์ที่ไม่มีส่วนขยาย subjectAlternativeName ที่มีชื่อ DNS หรือที่อยู่ IP</translation> -<translation id="5578571772998293651">อนุญาตความคิดเห็นจากผู้ใช้ - หากตั้งค่านโยบายเป็น "เท็จ" ผู้ใช้จะส่งความคิดเห็นไปที่ Google ไม่ได้ - - หากไม่ได้ตั้งนโยบายหรือตั้งค่าเป็น "จริง" ผู้ใช้จะส่งความคิดเห็นไปที่ Google ได้ผ่านทางเมนู->ความช่วยเหลือ->รายงานปัญหา หรือโดยการกดแป้นร่วมกัน</translation> <translation id="5579179012798142131">การตั้งค่า ArcEnabled เป็น "จริง" จะเปิด ARC สำหรับผู้ใช้ เว้นแต่โหมดชั่วคราวหรือการลงชื่อเข้าสู่ระบบพร้อมกันหลายบัญชีเปิดอยู่ระหว่างเซสชันของผู้ใช้ การตั้งค่านโยบายเป็น "เท็จ" หรือไม่ได้ตั้งค่าหมายความว่าผู้ใช้ระดับองค์กรจะใช้ ARC ไม่ได้</translation> <translation id="5582429816116769246">อนุญาตให้คุณควบคุมว่าผู้ใช้จะเข้าถึงเครื่องพิมพ์ที่ไม่ใช่ขององค์กรได้หรือไม่ @@ -3379,7 +3356,6 @@ <translation id="5951418260805607969">แสดงการแจ้งเตือนเมื่อพื้นที่ในดิสก์เหลือน้อย</translation> <translation id="5961137303188584693">ที่อยู่ MAC ของ NIC ในตัวของอุปกรณ์</translation> <translation id="5966615072639944554">ส่วนขยายได้รับอนุญาตให้ใช้ API การยืนยันระยะไกล</translation> -<translation id="5983708779415553259">ลักษณะการทำงานเริ่มต้นสำหรับเว็บไซต์ที่ไม่ได้อยู่ในชุดเนื้อหาใดๆ</translation> <translation id="5997543603646547632">ใช้เวลารูปแบบ 24 ชั่วโมงโดยค่าเริ่มต้น</translation> <translation id="5997846976342452720">ระบุว่าควรปิดเครื่องมือค้นหาปลั๊กอินไหม (เลิกใช้งานแล้ว)</translation> <translation id="5998198091336830580">นโยบายนี้เป็นส่วนหนึ่งของกลุ่มขนาดเล็กต่อไปนี้ (ระบบใช้เฉพาะนโยบายจากแหล่งที่มาที่มีลำดับความสำคัญสูงสุดในกลุ่ม)</translation> @@ -3415,12 +3391,9 @@ <translation id="6034341625190551415">ควบคุมเซสชันสาธารณะและประเภทบัญชีคีออสก์</translation> <translation id="6034603289689965535">อนุญาตให้หน้าเว็บแสดงป๊อปอัประหว่างยกเลิกการโหลด</translation> <translation id="6036523166753287175">เปิดใช้งานไฟร์วอลล์ Traversal จากโฮสต์สำหรับการเข้าถึงระยะไกล</translation> -<translation id="603768430528561926">การตั้งค่านโยบายเป็น "เปิดใช้" หรือไม่ได้ตั้งค่าจะทำให้ผู้ใช้อุปกรณ์ระดับองค์กรแลกข้อเสนอผ่านการลงทะเบียน <ph name="PRODUCT_OS_NAME" /> ได้ +<translation id="603768430528561926">การตั้งค่านโยบายเป็น "เปิดใช้" หรือไม่ได้ตั้งค่าจะทำให้ผู้ใช้อุปกรณ์ระดับองค์กรแลกรับข้อเสนอผ่านการลงทะเบียน <ph name="PRODUCT_OS_NAME" /> ได้ - การตั้งค่านโยบายเป็น "ปิดใช้" หมายความว่าผู้ใช้จะแลกข้อเสนอเหล่านี้ไม่ได้</translation> -<translation id="6038407313189625985">หากเปิดใช้นโยบายนี้หรือไม่ได้ตั้งค่าไว้ จะทำให้เปิดใช้ฟีเจอร์ความสมบูรณ์ของโค้ดในการแสดงผล นโยบายนี้ควรปิดใช้เฉพาะเมื่อมีปัญหาเรื่องความเข้ากันได้กับซอฟต์แวร์ของบุคคลที่สามที่ต้องทำงานในกระบวนการแสดงผลของ Chrome - - การปิดใช้นโยบายนี้มีผลกระทบที่เป็นอันตรายต่อความปลอดภัยและความเสถียรของ Chrome เพราะจะอนุญาตให้โค้ดที่ไม่รู้จักหรืออาจมีเจตนาร้ายโหลดเข้ามาในกระบวนการแสดงผลของ Chrome ได้ ดูข้อมูลเพิ่มเติมได้ที่ https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies</translation> + การตั้งค่านโยบายเป็น "ปิดใช้" หมายความว่าผู้ใช้จะแลกข้อรับเสนอเหล่านี้ไม่ได้</translation> <translation id="6048199181629830227">เปิดใช้การจัดการการใช้ไฟจากแบตเตอรี่</translation> <translation id="6054485492411959335">ระบุเครื่องพิมพ์ที่ผู้ใช้ใช้งานได้ @@ -3897,6 +3870,7 @@ <translation id="6672070613706645316">อนุญาตให้ผู้ใช้ปรับแต่งพื้นหลังในหน้าแท็บใหม่</translation> <translation id="6672630473862787247">เปิดใช้การตรวจสอบสิทธิ์แบบแอมเบียนท์ในเซสชันปกติ เซสชันไม่ระบุตัวตน และเซสชันผู้เยี่ยมชม</translation> <translation id="6685903773201985073">เปิดใช้การตรวจสอบสิทธิ์แบบแอมเบียนท์ในเซสชันผู้เยี่ยมชมและเซสชันปกติ</translation> +<translation id="6689343802305995925">ไม่มีการดำเนินการใดๆ เกิดขึ้น</translation> <translation id="6689792153960219308">รายงานสถานะของฮาร์ดแวร์</translation> <translation id="6690425645391461516">ปิดใช้การตรวจสอบการสกัดกั้น DNS อนุญาตแถบข้อมูล "หรือคุณหมายถึง http://intranetsite/"</translation> <translation id="6698632841807204978">เปิดใช้การพิมพ์ขาวดำ</translation> @@ -4163,6 +4137,7 @@ การตั้งค่านโยบายเป็น "ปิดใช้" จะทำให้ <ph name="PRODUCT_NAME" /> ปิดแท็บหลังจากเปลี่ยนไปเป็นเบราว์เซอร์สำรอง แม้ว่าจะเป็นแท็บสุดท้ายที่เปิดอยู่ ซึ่งจะปิด <ph name="PRODUCT_NAME" /> ไปเลย</translation> <translation id="7019805045859631636">เร็ว</translation> +<translation id="7026351325994257733">อนุญาตให้ซิงค์การกำหนดค่าเครือข่าย Wi-Fi ระหว่างอุปกรณ์ <ph name="PRODUCT_OS_NAME" /> กับโทรศัพท์ Android ที่เชื่อมต่อ</translation> <translation id="7027785306666625591">กำหนดค่าการจัดการพลังงานใน <ph name="PRODUCT_OS_NAME" /> นโยบายเหล่านี้ช่วยให้คุณกำหนดพฤติกรรมของ <ph name="PRODUCT_OS_NAME" /> เมื่อผู้ใช้ไม่มีการใช้งานในช่วงระยะเวลาหนึ่งได้</translation> @@ -4535,6 +4510,13 @@ - หากตั้งค่านโยบายนี้เป็น "ปิดใช้" ผู้ดูแลระบบต้องแจ้งข้อมูลนี้กับผู้ใช้ปลายทางของอุปกรณ์</translation> <translation id="747275827471712187">เปลี่ยนกลับไปใช้ลักษณะการทำงาน <ph name="ATTRIBUTE_SAMESITE_NAME" /> เดิมสำหรับคุกกี้ในเว็บไซต์เหล่านี้</translation> +<translation id="7476621944304431784">หากเปิดใช้การตั้งค่านี้ ผู้ใช้จะได้รับอนุญาตให้ซิงค์การกำหนดค่าเครือข่าย Wi-Fi ระหว่างอุปกรณ์ <ph name="PRODUCT_OS_NAME" /> กับโทรศัพท์ Android ที่เชื่อมต่อ ก่อนที่จะซิงค์การกำหนดค่าเครือข่าย Wi-Fi ได้ ผู้ใช้ต้องเลือกใช้ฟีเจอร์นี้อย่างชัดแจ้งด้วยการทำตามขั้นตอนการตั้งค่าให้เสร็จสมบูรณ์ + + หากเปิดใช้การตั้งค่านี้ ผู้ใช้จะไม่ได้รับอนุญาตให้ซิงค์การกำหนดค่าเครือข่าย Wi-Fi + + ฟีเจอร์นี้ขึ้นอยู่กับประเภทข้อมูล <ph name="WIFI_CONFIGURATIONS_DATATYPE_NAME" /> ในการซิงค์ของ Chrome ที่เปิดใช้อยู่ หาก <ph name="WIFI_CONFIGURATIONS_DATATYPE_NAME" /> ปิดใช้อยู่ในนโยบาย <ph name="SYNC_TYPES_LIST_DISABLED_POLICY_NAME" /> หรือการซิงค์ของ Chrome ปิดใช้อยู่ในนโยบาย <ph name="SYNC_DISABLED_POLICY_NAME" /> ระบบจะไม่เปิดใช้ฟีเจอร์นี้ + + หากไม่ได้ตั้งค่านโยบายนี้ ผู้ใช้ที่มีการจัดการจะใช้ค่าเริ่มต้นไม่ได้</translation> <translation id="7477231245051133709">เปิดใช้ฟีเจอร์การช่วยเหลือพิเศษสำหรับเสียงโมโน</translation> <translation id="7477239290070847560">ปลายทางโปรโตคอลตาม Zeroconf (mDNS + DNS-SD)</translation> <translation id="7485481791539008776">กฎการเลือกเครื่องพิมพ์เริ่มต้น</translation> @@ -4725,9 +4707,6 @@ หมายเหตุ: ปัจจุบันนี้ การรีบูตอัตโนมัติจะเปิดใช้งานเฉพาะในขณะที่หน้าจอการเข้าสู่ระบบกำลังแสดงหรือเซสชันแอปคีออสก์กำลังดำเนินการอยู่ ซึ่งจะมีการเปลี่ยนแปลงในอนาคต และนโยบายจะบังคับใช้อยู่เสมอ โดยไม่คำนึงว่าจะมีเซสชันประเภทใดๆ กำลังดำเนินการอยู่หรือไม่</translation> <translation id="7701341006446125684">ตั้งค่าขนาดแคชของแอปและส่วนขยาย (เป็นไบต์)</translation> -<translation id="7709537117200051035">ชื่อโฮสต์การจับคู่พจนานุกรมเข้ากับธงบูลีนที่ระบุว่าการเข้าถึงโฮสต์ต้องได้รับอนุญาต (True) หรือถูกบล็อก (False) - - นโยบายนี้ใช้สำหรับการใช้งานภายใน <ph name="PRODUCT_NAME" /> เอง</translation> <translation id="7710950688502974809">รายการของการตั้งค่าบริการเครื่องมือเชื่อมต่อ Chrome Enterprise ที่จะใช้กับเครื่องมือเชื่อมต่อ <ph name="ON_BULK_DATA_ENTRY_ENTERPRISE_CONNECTOR" /> Enterprise ซึ่งจะเรียกใช้งานเมื่อมีการป้อนข้อมูลใน Chrome จากคลิปบอร์ดหรือผ่านการลากและวางเนื้อหาเว็บ ช่อง <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> และ <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> ใช้เพื่อกำหนดว่าเครื่องมือเชื่อมต่อควรส่งข้อมูลสำหรับการวิเคราะห์หรือไม่เมื่อมีการป้อนข้อมูลจากหน้าหนึ่งๆ และแท็กใดที่จะรวมอยู่ในคำขอการวิเคราะห์สำหรับข้อมูลนั้น แท็กที่สอดคล้องกับรูปแบบ "เปิดใช้" จะรวมอยู่ในคำขอการวิเคราะห์หาก URL ของหน้าตรงกับรูปแบบที่เกี่ยวข้องกับแท็กดังกล่าวตราบใดที่ไม่มีรูปแบบ "ปิดใช้" ที่มีแท็กเดียวกันนั้นตรงกับ URL ของหน้า การวิเคราะห์จะเกิดขึ้นหากมีอย่างน้อย 1 แท็กในคำขอ @@ -4875,7 +4854,6 @@ หากคุณเปิดหรือปิดใช้การตั้งค่านี้ ผู้ใช้จะเปลี่ยนหรือลบล้างการตั้งค่านี้ใน <ph name="PRODUCT_NAME" /> ไม่ได้ หากไม่มีการตั้งค่านโยบายนี้ ระบบจะเปิดใช้การตั้งค่านี้แต่ผู้ใช้เปลี่ยนแปลงการตั้งค่าได้</translation> -<translation id="7953256619080733119">โฮสต์ข้อยกเว้นแบบกำหนดเองของผู้ใช้ที่ได้รับการจัดการ</translation> <translation id="7956210013490975468">กำหนดค่าบริการพร็อกซีของระบบสำหรับ <ph name="PRODUCT_OS_NAME" /></translation> <translation id="7958537754689366707">ต้องป้อนรหัสผ่านทุก 12 ชั่วโมง</translation> <translation id="7961779417826583251">ปิดการบังคับใช้ความโปร่งใสของใบรับรองสำหรับรายการผู้ออกใบรับรองเดิม</translation> @@ -5095,11 +5073,6 @@ หากคุณตั้งค่านโยบายนี้ ผู้ใช้จะเปลี่ยนหรือลบล้างไม่ได้ หากไม่มีการตั้งค่านโยบายนี้ ระบบจะปิดฟีเจอร์เขียนตามคำบอกในขั้นต้น แต่ผู้ใช้เปิดใช้ได้ทุกเมื่อ</translation> -<translation id="829337533107201925">หากเปิดใช้นโยบายนี้ ระบบจะไม่สนใจนโยบายที่มาจากกลุ่มขนาดเล็กที่ไม่แชร์แหล่งที่มากับแหล่งที่มาที่มีลำดับความสำคัญสูงสุดในกลุ่ม - - หากปิดใช้นโยบายนี้ จะไม่มีนโยบายไหนถูกมองข้ามเพราะแหล่งที่มาของนโยบาย ระบบจะไม่สนใจนโยบายก็ต่อเมื่อมีความขัดแย้ง และนโยบายนั้นไม่ได้มีลำดับความสำคัญสูงสุด - - หากนโยบายนี้ตั้งค่ามาจากแหล่งที่มาในระบบคลาวด์ นโยบายจะกำหนดเป้าหมายเป็นผู้ใช้ที่เจาะจงไม่ได้</translation> <translation id="8294750666104911727">ตามปกติหน้าที่มีการตั้งค่า X-UA-Compatible เป็น Chrome=1 จะได้รับการแสดงผลใน <ph name="PRODUCT_FRAME_NAME" /> ไม่ว่านโยบาย "ChromeFrameRendererSettings" จะเป็นเช่นไร หากคุณเปิดใช้การตั้งค่านี้ หน้าจะไม่ได้รับการสแกนหาเมตาแท็ก @@ -5305,7 +5278,6 @@ <translation id="8544375438507658205">โปรแกรมแสดง HTML เริ่มต้นสำหรับ <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="8544465954173828789">อนุญาตให้ซิงค์ข้อความ SMS จากโทรศัพท์ไปยัง Chromebook</translation> <translation id="8548832052135586762">ตั้งค่าการพิมพ์เป็นสีเท่านั้น ขาวดำเท่านั้น หรือไม่มีข้อจำกัดโหมดสี ระบบจะถือว่าไม่มีข้อจำกัดหากไม่ได้ตั้งค่านโยบายไว้</translation> -<translation id="8549772397068118889">เตือนเมื่อไปที่เว็บไซต์ภายนอกชุดเนื้อหา</translation> <translation id="8566842294717252664">ซ่อนเว็บสโตร์จากหน้าแท็บใหม่และเครื่องเรียกใช้งานแอป</translation> <translation id="8569734380847633643"> หากตั้งค่านโยบายเป็น "เท็จ" <ph name="PRODUCT_OS_NAME" /> จะปิดใช้ Wi-Fi และผู้ใช้จะเปิดใช้ไม่ได้ @@ -5425,7 +5397,6 @@ หากตั้งค่านโยบายนี้ ผู้ใช้จะเปลี่ยนหรือลบล้างไม่ได้ นโยบายนี้ไม่มีผลต่อความสามารถของผู้ใช้ในการกำหนดค่าเครื่องพิมพ์ในอุปกรณ์ใดๆ แต่เป็นเพียงนโยบายเพิ่มเติมสำหรับการกำหนดค่าเครื่องพิมพ์ของผู้ใช้แต่ละราย</translation> -<translation id="8764477907716150749">นโยบายนี้มีไว้สำหรับการใช้งานภายในของ <ph name="PRODUCT_NAME" /> เอง</translation> <translation id="8767743923206070405">การตั้งค่านโยบายเป็น "เปิดใช้" จะแสดงปุ่มหน้าแรกในแถบเครื่องมือของ <ph name="PRODUCT_NAME" /> การตั้งค่านโยบายเป็น "ปิดใช้" จะทำให้ปุ่มหน้าแรกไม่ปรากฏขึ้นมา หากคุณตั้งค่านโยบายไว้ ผู้ใช้จะเปลี่ยนการตั้งค่าดังกล่าวใน <ph name="PRODUCT_NAME" /> ไม่ได้ หากไม่ได้ตั้งค่า ผู้ใช้จะเลือกว่าจะแสดงปุ่มหน้าแรกหรือไม่</translation> @@ -5768,6 +5739,7 @@ <translation id="9152473318295429890">เปิดใช้คำแนะนำตามบริบทของหน้าเว็บที่เกี่ยวข้อง</translation> <translation id="9153446010242995516">ย้อนกลับไปใช้เวอร์ชันเป้าหมายและใช้เวอร์ชันเป้าหมายเสมอหากใช้ระบบปฏิบัติการเวอร์ชันที่ใหม่กว่า พยายามใช้ค่ากำหนดระดับอุปกรณ์ต่อไป (รวมถึงข้อมูลเข้าสู่ระบบเครือข่าย) ผ่านขั้นตอนการย้อนกลับเวอร์ชัน หากเป็นไปได้ แต่อย่าทำ Powerwash เต็มรูปแบบถ้าคืนค่าข้อมูลไม่ได้ (เพราะเวอร์ชันเป้าหมายไม่รองรับการคืนค่าข้อมูลหรือเพราะมีการเปลี่ยนแปลงย้อนหลังที่เข้ากันไม่ได้) รองรับใน <ph name="PRODUCT_OS_NAME" /> เวอร์ชัน 75 ขึ้นไป สำหรับไคลเอ็นต์เก่า ค่านี้หมายความว่าการย้อนกลับเวอร์ชันปิดอยู่</translation> +<translation id="9155218447258425310">ระยะเวลาของการแจ้งเตือนเมื่อมีการนำสมาร์ทการ์ดออกสำหรับ <ph name="PRODUCT_OS_NAME" /></translation> <translation id="9155375380628728544">การตั้งค่านโยบายให้ผู้ใช้เพิ่มภาษาที่ระบุไว้ในนโยบายนี้ลงในรายการภาษาที่ต้องการได้เพียงภาษาเดียว หากไม่ได้ตั้งค่าหรือตั้งค่าเป็นรายการว่างเปล่า ผู้ใช้จะระบุภาษาเป็นภาษาที่ต้องการได้
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb index 0abf08b..96fbf9d 100644 --- a/components/policy/resources/policy_templates_tr.xtb +++ b/components/policy/resources/policy_templates_tr.xtb
@@ -202,11 +202,6 @@ Bu politika yanlış seçeneğine ayarlanırsa, <ph name="PRODUCT_NAME" /> misafir profillerinin başlatılmasına izin vermez.</translation> <translation id="1363275621236827384">Quirks Server'dan donanım profillerini sorgulamayı etkinleştir</translation> <translation id="1376119291123231789">Gelişmiş pil şarj modunu etkinleştir</translation> -<translation id="1378850678793136128">Giriş ekranında sağlanan tedarikçi ve ürün kimliklerine sahip USB cihazlarına erişmesine otomatik olarak izin verilen siteleri belirten URL kalıpları için liste oluşturmanıza olanak tanır. Politikanın geçerli olabilmesi için listedeki her öğenin hem "cihazlar" hem de "URL'ler" alanı olması gerekir. "Cihazlar" alanındaki her öğe, "vendor_id" ve "product_id" alanı içerebilir. "Vendor_id" alanının atlanması her cihazla eşleşen bir politika oluşturur. "Product_id" alanının atlanması belirtilen satıcı kimliğiyle her cihazla eşleşen bir politika oluşturur. "Product_id" alanı olup "vendor_id" alanı olmayan politika geçersizdir. - - USB izin modeli, istekte bulunan sitenin URL'sini ("istekte bulunan URL") ve üst düzey çerçeve sitesinin URL'sini ("yerleştirme URL'si") kullanarak istekte bulunan URL'ye USB cihazına erişmesi için izin verir. İstekte bulunan site bir iFrame içinde yüklendiğinde, istekte bulunan URL yerleştirme URL'sinden farklı olabilir. Bu nedenle, "URL'ler" alanı, sırasıyla istekte bulunan URL'yi ve yerleştirme URL'sini belirtmek için virgülle sınırlandırılmış en fazla iki URL dizesi içerebilir. Yalnızca bir URL belirtilirse yerleştirme durumundan bağımsız olarak bu URL ile eşleşen istekte bulunan sitenin URL'sine karşılık gelen USB cihazlarına erişim izni verilir. "URL'ler" alanındaki URL'lerin geçerli URL'ler olmaları gerekir; aksi halde, politika yoksayılır. - - Bu politika ayarlanmadan bırakılırsa genel varsayılan değer tüm siteler için kullanılır (otomatik erişim olmaz).</translation> <translation id="1384459581748403878">Referans: <ph name="REFERENCE_URL" /></translation> <translation id="138847842893090358">OS güncelleme durumunu bildirir</translation> <translation id="1390901586107713894">Kullanıcıların YÜKLEYEMEYECEĞİ uzantıları belirlemenize olanak tanır. Zaten yüklü olan uzantılar engellenirse devre dışı bırakılır ve kullanıcıya bunları etkinleştirmek için bir yol sunulmaz. Engellenenler listesi nedeniyle devre dışı bırakılan bir uzantı listeden çıkarıldıktan sonra otomatik olarak yeniden etkinleştirilir. @@ -439,12 +434,6 @@ Bu politika ayarlanmadan bırakılırsa boş disk alanınız 20 GB'tan (varsayılan değer) az olduğunda <ph name="PLUGIN_VM_NAME" /> yüklemesi başarısız olur. Politika ayarlanırsa cihazda yetersiz disk alanı olduğunda <ph name="PLUGIN_VM_NAME" /> yüklemesi başarısız olur.</translation> -<translation id="1695708467571967752">Bu politika, kullanıcıların cihaz kilitliyken medya oynatıp oynatamayacaklarını kontrol eder. - - Bu politika False (Yanlış) değerine ayarlanırsa medya denetimleri kilit ekranında devre dışı bırakılır. - - Bu politika True (Doğru) değerine ayarlanırsa veya ayarlanmadan bırakılırsa medya oynatılırken kullanıcı -cihazı kilitlerse medya denetimleri kilit ekranında görüntülenir. - </translation> <translation id="1700811900332333712">Cihaza Powerwash isteme izni verme</translation> <translation id="1708496595873025510">Varyasyon temelini alma sınırlamasını ayarla</translation> <translation id="171511968762040550">Politikayı True (Doğru) değerine ayarlamak veya ayarlamadan bırakmak, kullanıcıların yer işaretleri eklemelerine, kaldırmalarına veya bunları değiştirmelerine izin verir. @@ -639,7 +628,7 @@ </translation> <translation id="2030905906517501646">Varsayılan arama sağlayıcı anahtar kelimesi</translation> <translation id="203096360153626918">Bu politikanın Android uygulamaları üzerinde hiçbir etkisi yoktur. Bu politika <ph name="FALSE" /> seçeneğine ayarlansa bile uygulamalar tam ekran moduna girebilir.</translation> -<translation id="2036522553891755455">Politika Etkin değerine ayarlanırsa paylaşım keşfi (<ph name="PRODUCT_NAME" /> için Ağ Üzerinde Dosya Paylaşımı özelliği), ağdaki paylaşımları keşfetmek için <ph name="NETBIOS_PROTOCOL" /> politikasını kullanır. Politika Devre Dışı değerine ayarlanırsa paylaşım keşfi, paylaşımları keşfetmek için bu protokolü kullanmaz. +<translation id="2036522553891755455">Politika, Etkin değerine ayarlanırsa paylaşım keşfi (<ph name="PRODUCT_NAME" /> için Ağ Üzerinde Dosya Paylaşımı özelliği), ağdaki paylaşımları keşfetmek için <ph name="NETBIOS_PROTOCOL" /> politikasını kullanır. Politika, Devre Dışı değerine ayarlanırsa paylaşım keşfi, paylaşımları keşfetmek için bu protokolü kullanmaz. Politika ayarlanmadan bırakılırsa paylaşım keşfi, varsayılan olarak yönetilen kullanıcılar için devre dışı bırakılır, diğer kullanıcılar için etkinleştirilir.</translation> <translation id="2037214548071298156">Politika Etkin değerine ayarlanır veya ayarlanmadan bırakılırsa kayıtlı cihazlar CPU/RAM kullanımı gibi donanım istatistiklerini bildirir. @@ -653,7 +642,6 @@ Bu ayar devre dışı bırakılırsa dosya aktarımına izin verilmez. Bu ayar etkinleştirilirse veya ayarlanmazsa dosya aktarımına izin verilir.</translation> <translation id="2057317273526988987">URL listesine erişimi engelle</translation> <translation id="2061810934846663491">Uzaktan erişim ana makineleri için gereken alan adlarını yapılandır</translation> -<translation id="2067011586099792101">İçerik paketlerinin dışındaki sitelere erişimi engelle</translation> <translation id="2069350366303315077">Politika Etkin değerine ayarlanırsa <ph name="PRODUCT_NAME" />, misafir oturumunu zorunlu kılıp profil oturum açmalarını engeller. Misafir oturum açmaları, tüm pencerelerin gizli modda olduğu <ph name="PRODUCT_NAME" /> profilleridir. Politika Devre Dışı değerine ayarlanır, ayarlanmadan bırakılır veya tarayıcı Misafir Modu devre dışı bırakılırsa (<ph name="BROWSER_GUEST_MODE_ENABLED_POLICY_NAME" /> politikasıyla) yeni ve mevcut profiller kullanılabilir.</translation> @@ -666,7 +654,7 @@ <translation id="2098658257603918882">Kullanım ve kilitlenme ile ilgili verilerin raporlanmasını etkinleştir</translation> <translation id="2104418465060359056">Uzantı ve Eklenti bilgilerini bildirme</translation> <translation id="2106627642643925514">Varsayılan PIN ile yazdırma modunu geçersiz kılar. Mod kullanılamıyorsa bu politika yoksayılır.</translation> -<translation id="2107563874993284076">Politika Etkin değerine ayarlanırsa kullanıcılar, <ph name="PRODUCT_NAME" /> için Ağ Üzerinde Dosya Paylaşımı özelliğini kullanabilirler. Politika Devre Dışı değerine ayarlanırsa kullanıcılar bu özelliği kullanamazlar.</translation> +<translation id="2107563874993284076">Politika, Etkin değerine ayarlanırsa kullanıcılar, <ph name="PRODUCT_NAME" /> için Ağ Üzerinde Dosya Paylaşımı özelliğini kullanabilirler. Politika, Devre Dışı değerine ayarlanırsa kullanıcılar bu özelliği kullanamazlar.</translation> <translation id="2107601598727098402"> Bu politika M72 sürümünde kullanımdan kaldırılmıştır. Lütfen bunun yerine CloudManagementEnrollmentToken politikasını kullanın. </translation> @@ -1168,9 +1156,9 @@ Bu ayar devre dışı bırakılırsa, Web sayfaları JavaScript'i kullanamaz ve kullanıcı bu ayarı değiştiremez. Bu ayar etkinleştirilir veya ayarlanmazsa, Web sayfaları JavaScript'i kullanabilir ancak kullanıcı ilgili ayarı değiştirebilir.</translation> -<translation id="2752046642026416564">Politika Etkin değerine ayarlanır veya ayarlanmadan bırakılırsa <ph name="PRODUCT_NAME" />, yüklü yerel mesajlaşma ana makinelerini kullanıcı düzeyinde kullanabilir. +<translation id="2752046642026416564">Politika, Etkin değerine ayarlanır veya ayarlanmadan bırakılırsa <ph name="PRODUCT_NAME" />, yüklü yerel mesajlaşma ana makinelerini kullanıcı düzeyinde kullanabilir. - Politika Devre Dışı değerine ayarlanırsa <ph name="PRODUCT_NAME" />, bu ana makineleri yalnızca sistem düzeyinde yüklendiyse kullanabilir.</translation> + Politika, Devre Dışı değerine ayarlanırsa <ph name="PRODUCT_NAME" />, bu ana makineleri yalnızca sistem düzeyinde yüklendiyse kullanabilir.</translation> <translation id="2753637905605932878">WebRTC tarafından kullanılan yerel UDP bağlantı noktaları aralığını kısıtlama</translation> <translation id="2757054304033424106">Yüklenmesine izin verilen uzantı/uygulama türleri</translation> <translation id="2758689548159678032">Bu politika etkinleştirildiğinde <ph name="PRODUCT_NAME" /> özelliği, kullanıcının tarayıcısı ve ortamı hakkında ayrıntılı bilgiler içeren istek başlıkları gönderir. @@ -2103,7 +2091,6 @@ <translation id="4056910949759281379">SPDY protokolünü devre dışı bırak</translation> <translation id="4061590579642538878">Kilitlenme raporlarıyla ilgili bilgileri raporlama</translation> <translation id="4075675819066819571">Rafı ekranın sol tarafında konumlandır</translation> -<translation id="4075864623710596000">Bu listede belirtilen ana makine adları, istekleri http'den https'ye yükseltebilecek HSTS politika kontrolünden muaf tutulur. Bu politikada yalnızca tek etiketli ana makine adlarına izin verilir. Ana makine adları standartlaştırılmalıdır: Tüm IDN'ler, A-etiket biçimine dönüştürülmeli ve tüm ASCII harfleri küçük harf olmalıdır. Bu politika yalnızca belirtilen spesifik ana makine adları için geçerlidir; belirtilen adların alt alanları için geçerli değildir.</translation> <translation id="408029843066770167">Google zaman hizmetini sorgulamaya izin ver</translation> <translation id="408076456549153854">Tarayıcıda oturum açmayı etkinleştir</translation> <translation id="4082498585300984671">Tıkla ve Ara Özelliğini Etkinleştirme</translation> @@ -2214,9 +2201,6 @@ Politika Devre dışı değerine ayarlanırsa <ph name="PRODUCT_NAME" /> kapatılır.</translation> <translation id="4203879074082863035">Kullanıcılara sadece beyaz listedeki yazıcılar gösterilir</translation> -<translation id="420512303455129789">Ana makineye erişime izin verileceğini (doğru) veya engelleneceğini (yanlış) belirten bir boole bayrağına URL'leri eşleyen bir sözlük. - - Bu politika <ph name="PRODUCT_NAME" /> tarafından dahili kullanım içindir.</translation> <translation id="4209297478239988291">Otomatik tıklama erişilebilirlik özelliğini etkinleştirin. Bu özellik fiziksel olarak farenize veya dokunmatik alanınıza basmadan tıklamanızı sağlar. İmlecinizi tıklamak istediğiniz nesnenin üzerine getirin. @@ -2356,13 +2340,6 @@ <translation id="4494132853995232608">Wilco DTC</translation> <translation id="449423975179525290"><ph name="PLUGIN_VM_NAME" /> ile ilgili politikaları yapılandırır.</translation> <translation id="4498493270899294764">İndirilen içeriğin kötü amaçlı yazılıma karşı kontrol edilmeyeceği URL kalıpları</translation> -<translation id="450537894712826981">Önbelleğe alınan medya dosyalarının diskte depolanması için <ph name="PRODUCT_NAME" /> tarafından kullanılacak önbellek boyutunu yapılandırır. - - Bu politikayı ayarlarsanız kullanıcı "--media-cache-size" bayrağını belirtmiş olsun veya olmasın, <ph name="PRODUCT_NAME" /> sağlanan önbelllek boyutunu kullanır. Bu politikada belirtilen değer kesin bir sınır değil, daha çok önbellek sistemi için bir öneridir. Birkaç mega baytın altındaki her değer çok küçük sayılır ve mantıklı bir minimum sayı olacak şekilde ayarlanır. - - Bu politikanın değeri 0 olursa varsayılan önbellek boyutu kullanılır, ancak kullanıcı bu değeri değiştiremez. - - Bu politika ayarlanmazsa varsayılan boyut kullanılır ve kullanıcı --media-cache-size bayrağıyla bu değeri geçersiz kılabilir.</translation> <translation id="4508084713148633492">Disk alanı azaldığında bir bildirimin etkinleştirilmesini veya devre dışı bırakılmasını sağlar. Bu, bu cihazdaki tüm kullanıcılar için geçerlidir. Yönetilen bir cihazda tam olarak bir kullanıcı hesabı varsa bildirim bu politikanın değerinden bağımsız olarak her zaman gösterilir. Yönetilen bir cihazda birden fazla kullanıcı hesabı varsa politika yalnızca True (Doğru) değerine ayarlandığında bildirim gösterilir. @@ -2654,7 +2631,6 @@ Politika Devre Dışı değerine ayarlanırsa <ph name="PRODUCT_NAME" />, bu sorguları göndermez.</translation> <translation id="5032164758660626397">Kullanıcının büyük dosyalar aktarmasını engelle</translation> -<translation id="5047604665028708335">İçerik paketlerinin dışındaki sitelere erişime izin ver</translation> <translation id="5056708224511062314">Ekran büyüteci devre dışı</translation> <translation id="5058573563327660283">Otomatik temizlik sırasında disk alanı boşaltmak için kullanılan stratejiyi seç (kullanımdan kaldırıldı)</translation> <translation id="5061114193960158745">Bu politika, hiçbir zaman tarayıcı geçişine neden olmayacak web sitelerinin listesini kontrol eder. Her öğe bir kural olarak ele alınır. Eşleşen kurallar alternatif bir tarayıcı açmaz. <ph name="URL_LIST_POLICY_NAME" /> politikasından farklı olarak, kurallar her iki yönde de uygulanır. <ph name="IE_PRODUCT_NAME" /> eklentisi etkinse aynı zamanda <ph name="IE_PRODUCT_NAME" /> tarayıcısının bu URL'leri <ph name="PRODUCT_NAME" /> ile açıp açmayacağını da kontrol eder. @@ -2799,9 +2775,9 @@ <translation id="5236882091572996759">Bu politika True (Doğru) değerine ayarlanırsa veya ayarlanmadan bırakılırsa, ses çalınırken kullanıcı boşta sayılmaz. Böylece hiçbir zaman boşta kalma zaman aşımı süresi dolmaz ve boşta kalma işlemi uygulanmaz. Ancak, ses etkinliğinden bağımsız olarak, yapılandırılmış zaman aşımı sürelerinden sonra ekran karartma, ekran kapatma ve ekran kilitleme işlemi uygulanır. Bu politika False (Yanlış) değerine ayarlanırsa, ses etkinliği kullanıcının boşta olarak algılanmasını önlemez.</translation> -<translation id="52393120393725840">Politika Etkin değerine ayarlanırsa kullanıcılar, <ph name="PRODUCT_NAME" /> ürününün, şifreleri hatırlayıp bir sitede tekrar oturum açtıklarında şifreleri sunmasını sağlayabilirler. +<translation id="52393120393725840">Politika, Etkin değerine ayarlanırsa kullanıcılar, <ph name="PRODUCT_NAME" /> ürününün, şifreleri hatırlayıp bir sitede tekrar oturum açtıklarında şifreleri sunmasını sağlayabilirler. - Politika Devre Dışı değerine ayarlanırsa kullanıcılar yeni şifreleri kaydedemez, ancak önceden kaydedilmiş şifreler çalışmaya devam eder. + Politika, Devre Dışı değerine ayarlanırsa kullanıcılar yeni şifreleri kaydedemez, ancak önceden kaydedilmiş şifreler çalışmaya devam eder. Politika ayarlanırsa kullanıcılar bunu <ph name="PRODUCT_NAME" /> ürününde değiştiremezler. Politika ayarlanmadan bırakılırsa kullanıcı şifre kaydetmeyi devre dışı bırakabilir.</translation> <translation id="5239333626804545932">Politika Etkin değerine ayarlanır veya ayarlanmadan bırakılırsa Chrome Temizleme Aracı belirli aralıklarla sistemdeki istenmeyen yazılımları tarar ve böyle bir yazılım bulursa kullanıcıya, bulduğu yazılımı kaldırmak isteyip istemediğini sorar. Chrome Temizleme Aracı'nın chrome://settings adresinden manuel olarak tetiklenmesine izin verilir. @@ -3132,10 +3108,6 @@ Belirli bir sertifikanın yetkilendirilebileceği ana makine adlarını sınırlandıran nameConstraints uzantısının atlanmasına olanak tanıyabileceği için bunun önerilen bir yöntem olmadığını unutmayın. Bu politika ayarlanmazsa veya false (yanlış) değerine ayarlanırsa bir DNS adı veya IP adresi içerip de subjectAlternativeName uzantısı bulunmayan sunucu sertifikalarına güvenilmez.</translation> -<translation id="5578571772998293651">Kullanıcı geri bildirimine izin verilir. - Politika false (yanlış) değerine ayarlanırsa kullanıcılar Google'a geri bildirim gönderemezler. - - Politika ayarlanmazsa veya true (doğru) değerine ayarlanırsa kullanıcılar Menü->Yardım->Sorun bildir veya tuş kombinasyonunu kullanarak Google'a geri bildirim gönderebilirler.</translation> <translation id="5579179012798142131">Kullanıcının oturumu sırasında Geçici mod veya çoklu oturum açma özelliği açık olmadığı sürece, ArcEnabled politikasının True (Doğru) değerine ayarlanması kullanıcı için ARC'yi açar. Politikayı False (Yanlış) değerine ayarlamak veya ayarlamadan bırakmak, kurumsal kullanıcıların ARC'yi kullanamayacağı anlamına gelir.</translation> <translation id="5582429816116769246">Kullanıcıların kuruma ait olmayan yazıcılara erişip erişemeyeceklerini kontrol etmenize olanak tanır @@ -3289,7 +3261,7 @@ <translation id="5815129011704381141">Güncelleme sonrasında otomatik olarak yeniden başlat</translation> <translation id="582857022372205358">Kısa kenar dupleks yazdırmayı etkinleştir</translation> <translation id="5832274826894536455">Kullanımdan kaldırılan politikalar</translation> -<translation id="5835253272509953988">Politika Etkin değerine ayarlanırsa kullanıcılar, <ph name="PRODUCT_NAME" /> ürününün, girilen kullanıcı adları ve şifrelerin bir sızıntının parçası olup olmadığını kontrol etmesini sağlayabilirler. +<translation id="5835253272509953988">Politika, Etkin değerine ayarlanırsa kullanıcılar, <ph name="PRODUCT_NAME" /> ürününün, girilen kullanıcı adları ve şifrelerin bir sızıntının parçası olup olmadığını kontrol etmesini sağlayabilirler. Politika ayarlanırsa kullanıcılar bunu <ph name="PRODUCT_NAME" /> ürününde değiştiremezler. Politika ayarlanmazsa kimlik bilgisi sızıntısı kontrolüne izin verilir ancak kullanıcı bunu devre dışı bırakamaz. @@ -3395,7 +3367,6 @@ <translation id="5951418260805607969">Disk alanı azaldığında bildirim göster</translation> <translation id="5961137303188584693">Cihazın dahili NIC MAC adresi</translation> <translation id="5966615072639944554">Uzaktan doğrulama API'sını kullanmasına izin verilen uzantılar</translation> -<translation id="5983708779415553259">Hiçbir içerik paketinde bulunmayan siteler için varsayılan davranış</translation> <translation id="5997543603646547632">Varsayılan olarak 24 saatlik saat biçimini kullan</translation> <translation id="5997846976342452720">Eklenti bulucunun devre dışı bırakılıp bırakılmayacağını belirt (kullanımdan kaldırıldı)</translation> <translation id="5998198091336830580">Bu politika, aşağıdaki atom grubunun bir parçasıdır (yalnızca grupta bulunan en yüksek öncelikli kaynaktan gelen politikalar geçerlidir):</translation> @@ -3434,9 +3405,6 @@ <translation id="603768430528561926">Politika Etkin değerine ayarlanır veya ayarlanmadan bırakılırsa kurumsal cihaz kullanıcıları, <ph name="PRODUCT_OS_NAME" /> Kaydı aracılığıyla teklifleri kullanabilirler. Politika Devre Dışı değerine ayarlanırsa kullanıcılar teklifleri kullanamazlar.</translation> -<translation id="6038407313189625985">Bu politika etkinleştirilirse veya ayarlanmamış olarak bırakılırsa Oluşturucu Kod Bütünlüğü etkinleştirilir. Bu, yalnızca Chrome'un oluşturucu işlemlerinin içinde çalışması gereken üçüncü taraf yazılımı ile uyumluluk sorunlarıyla karşılaşılırsa devre dışı bırakılmalıdır. - - Bilinmeyen ve muhtemelen zararlı kodun Chrome'un oluşturucu işlemlerine yüklenmesine izin vereceğinden, bu politikayı devre dışı bırakmanın Chrome'un güvenliğine ve kararlılığına zarar verici bir etkisi olacaktır. Daha fazla bilgi için https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies adresine göz atın.</translation> <translation id="6048199181629830227">Güç tüketimi en üst düzeydeyken pil kullanımına geçme güç yönetimini etkinleştir</translation> <translation id="6054485492411959335">Kullanıcının kullanabileceği yazıcıları belirtir. @@ -3752,7 +3720,7 @@ Politika ayarlanırsa kullanıcılar, uygulamanın uzantı kimliği politika listesi değerinde yer aldığı takdirde uygulamayı kilit ekranında açabilirler. Bu nedenle, politikayı boş bir listeye ayarlamak kilit ekranında not almayı kapatır. Politikada bir uygulama kimliği bulunması, kullanıcının bu uygulamayı kilit ekranında not alma uygulaması olarak açabileceği anlamına gelmez. Örneğin <ph name="PRODUCT_NAME" /> 61 sürümünde, kullanılabilir uygulamalar dizisi platform tarafından da kısıtlanır. Politika uygulamadan bırakılırsa politika, kullanıcının kilit ekranında etkinleştirebileceği uygulama dizisini kısıtlamaz.</translation> -<translation id="6506486086262398387">Politika Etkin değerine ayarlanırsa <ph name="PRODUCT_OS_NAME" /> için Ağ Üzerinde Dosya Paylaşımı özelliği, gerektiğinde SMB paylaşımlarında NTLM ile kimlik doğrulama kullanır. Politika Devre Dışı değerine ayarlanırsa SMB paylaşımlarında NTLM ile kimlik doğrulama devre dışı bırakılır. +<translation id="6506486086262398387">Politika Etkin değerine ayarlanırsa <ph name="PRODUCT_OS_NAME" /> için Ağ Üzerinde Dosya Paylaşımı özelliği, gerektiğinde SMB paylaşımlarında NTLM ile kimlik doğrulama kullanır. Politika, Devre Dışı değerine ayarlanırsa SMB paylaşımlarında NTLM ile kimlik doğrulama devre dışı bırakılır. Politika ayarlanmadan bırakılırsa paylaşım keşfi, varsayılan olarak yönetilen kullanıcılar için devre dışı bırakılır, diğer kullanıcılar için etkinleştirilir.</translation> <translation id="6515357889978918016"><ph name="PLUGIN_VM_NAME" /> resmi</translation> @@ -4746,9 +4714,6 @@ Not: Şu an için, otomatik yeniden başlatmalar yalnızca giriş ekranı gösteriliyorsa veya bir kiosk uygulama oturumu devam ediyorsa etkinleştirilir. Bu durum gelecekte değişecektir ve politika, herhangi bir özel türden oturumun devam edip etmediğinden bağımsız olarak her zaman uygulanacaktır.</translation> <translation id="7701341006446125684">Uygulamalar ve Uzantılar için önbellek boyutunu ayarla (bayt olarak)</translation> -<translation id="7709537117200051035">Ana makineye erişime izin verileceğini (doğru) veya engelleneceğini (yanlış) belirten bir boole bayrağına ana makine adlarını eşleyen bir sözlük. - - Bu politika <ph name="PRODUCT_NAME" /> tarafından dahili kullanım içindir.</translation> <translation id="7710950688502974809">Chrome'da panodan veri girildiğinde veya web içeriği sürüklenip bırakıldığında tetiklenen <ph name="ON_BULK_DATA_ENTRY_ENTERPRISE_CONNECTOR" /> Enterprise Bağlayıcı'ya uygulanacak Chrome Enterprise Bağlayıcılar hizmetleri ayarlarının listesidir. <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> ve <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> alanları, bağlayıcı belirli bir sayfada girildiğinde analiz için veri gönderip göndermemesi gerektiğini ve bu veri analiz isteğine hangi etiketlerin dahil edileceğini belirlemek üzere kullanılır. Sayfa URL'si etiketle ilişkilendirilen desenle eşleşirse "etkinleştir" desenine karşılık gelen bu etiket analiz isteğine dahil edilir. Bu, aynı etikete sahip "devre dışı bırak" deseni sayfa URL'si ile eşleşirse gerçekleşmez. Analiz, isteğe en az 1 etiket dahil edilecekse gerçekleşir. @@ -4896,7 +4861,6 @@ Bu ayarı etkinleştirir veya devre dışı bırakırsanız, kullanıcılar bunu <ph name="PRODUCT_NAME" /> içinde değiştiremez veya geçersiz kılamazlar. Bu politika ayarlanmadan bırakılırsa etkinleştirilir, ancak kullanıcı ayarda değişiklik yapabilir.</translation> -<translation id="7953256619080733119">Yönetilen kullanıcı manuel istisna ana makineleri</translation> <translation id="7956210013490975468"><ph name="PRODUCT_OS_NAME" /> için System-proxy hizmetini yapılandırır.</translation> <translation id="7958537754689366707">On iki saatte bir şifre girilmesi gerekir</translation> <translation id="7961779417826583251">Eski Sertifika Yetkilileri listesinin Sertifika Şeffaflığı uygulamasını devre dışı bırak</translation> @@ -5121,11 +5085,6 @@ Bu politikayı ayarlarsanız kullanıcılar değiştiremez veya geçersiz kılamazlar. Bu politika ayarlanmadan bırakılırsa dikte başlangıçta devre dışıdır ancak istenildiğinde kullanıcı tarafından etkinleştirilebilir.</translation> -<translation id="829337533107201925">Bu politika etkinleştirilirse bir atom grubundan gelen ve o gruptan en yüksek öncelikle aynı kaynağı paylaşmayan politikalar yok sayılacaktır. - - Bu politika devre dışı bırakılırsa hiçbir politika kaynağından dolayı yoksayılmayacaktır. Politikalar yalnızca bir çakışma olduğunda ve o politika en yüksek önceliğe sahip olmadığında yoksayılacaktır. - - Bu politika bir bulut kaynağından ayarlanırsa belirli bir kullanıcıyı hedefleyemez</translation> <translation id="8294750666104911727">Normalde, "ChromeFrameRendererSettings" politikası ne olursa olsun, chrome=1 olarak ayarlanmış X-UA Uyumlu sayfalar <ph name="PRODUCT_FRAME_NAME" /> ile oluşturulur. Bu ayarı etkinleştirirseniz sayfalarda meta etiketler taranmaz. @@ -5317,7 +5276,6 @@ <translation id="8544375438507658205"><ph name="PRODUCT_FRAME_NAME" /> için varsayılan HTML oluşturucusu</translation> <translation id="8544465954173828789">SMS Mesajlarının telefondan Chromebook'a senkronize edilmesine izin ver</translation> <translation id="8548832052135586762">Yazdırmayı yalnızca renkli, yalnızca tek renk veya renk modu kısıtlaması yok değerine ayarlar. Ayarlanmayan politika, kısıtlama yokmuş gibi işlenir.</translation> -<translation id="8549772397068118889">İçerik paketlerinin dışındaki siteleri ziyaret ederken uyar</translation> <translation id="8566842294717252664">Yeni sekme sayfasında ve uygulama başlatıcıda web mağazasını gizle</translation> <translation id="8569734380847633643"> Politika false (yanlış) değerine ayarlanırsa, <ph name="PRODUCT_OS_NAME" /> kablosuzu devre dışı bırakır ve kullanıcılar tekrar etkinleştiremezler. @@ -5437,7 +5395,6 @@ Bu politikayı ayarlarsanız kullanıcılar değiştiremez veya geçersiz kılamaz. Bu politika, kullanıcıların yazıcıları ayrı ayrı cihazlarda yapılandırıp yapılandıramayacağı konusunu etkilemez. Ayrı ayrı kullanıcılar tarafından yazıcıların yapılandırılması konusunda tamamlayıcı olacak şekilde tasarlanmıştır.</translation> -<translation id="8764477907716150749">Bu politika <ph name="PRODUCT_NAME" /> tarafından dahili kullanım içindir.</translation> <translation id="8767743923206070405">Politika Etkin değerine ayarlanırsa <ph name="PRODUCT_NAME" /> araç çubuğunda Ana sayfa düğmesi gösterilir. Politika Devre Dışı değerine ayarlanırsa Ana sayfa düğmesinin görünmesi engellenir. Bu politikayı ayarlarsanız kullanıcılar <ph name="PRODUCT_NAME" /> ürününde değiştiremez. Politika ayarlanmadan bırakılırsa Ana sayfa düğmesinin gösterilip gösterilmeyeceğine kullanıcılar karar verir.</translation>
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb index 1d652b4..0e598d9 100644 --- a/components/policy/resources/policy_templates_uk.xtb +++ b/components/policy/resources/policy_templates_uk.xtb
@@ -202,11 +202,6 @@ Якщо для цього правила встановлено значення "false", <ph name="PRODUCT_NAME" /> не дозволятиме вмикати гостьовий режим.</translation> <translation id="1363275621236827384">Дозволити запитувати профілі апаратного забезпечення на сервері Quirks</translation> <translation id="1376119291123231789">Увімкнути режим покращеного заряджання акумулятора</translation> -<translation id="1378850678793136128">Завдяки цьому правилу ви зможете вказати список шаблонів URL-адрес, що визначають сайти, які автоматично отримують дозвіл на доступ до пристроїв USB з певними ідентифікаторами постачальника й продукту на екрані входу. Щоб це правило було дійсним, кожний елемент списку має містити поля "пристрої" та "URL-адреси". Кожний елемент у полі "пристрої" може містити поля "ідентифікатор_постачальника" та "ідентифікатор_продукту". Якщо поля "ідентифікатор_постачальника" немає, правило застосовуватиметься до кожного пристрою. Якщо поля "ідентифікатор_продукту" немає, правило застосовуватиметься до кожного пристрою з указаним ідентифікатором постачальника. Якщо правило містить поле "ідентифікатор_продукту", але поля "ідентифікатор_постачальника" немає, воно вважається недійсним. - - Модель дозволів для USB використовує URL-адресу сайту, що запитує доступ ("URL-адреса запиту"), і сайту фрейму найвищого рівня ("вставлена URL-адреса"), щоб надати URL-адресі запиту доступ до пристрою USB. URL-адреса запиту може відрізнятися від вставленої, якщо сайт запиту завантажується в iframe. Тому поле "URL-адреси" може містити до двох рядків, розділених комою, щоб можна було вказати URL-адресу запиту та вставлену URL-адресу відповідно. Якщо вказано лише одну URL-адресу, тоді доступ до відповідних пристроїв USB буде надано, коли URL-адреса запиту відповідатиме вказаній, незалежно від статусу вставлення. URL-адреси, указані у відповідному полі, мають бути дійсними, інакше правило ігноруватиметься. - - Якщо це правило не налаштовано, для всіх сайтів застосовуватиметься загальне значення за умовчанням (немає автоматичного доступу).</translation> <translation id="1384459581748403878">Довідкові матеріали: <ph name="REFERENCE_URL" /></translation> <translation id="138847842893090358">Повідомляти статус оновлення ОС</translation> <translation id="1390901586107713894">Дає змогу вказати, які розширення користувачі НЕ можуть встановлювати. Якщо вже встановлені розширення є в чорному списку, їх буде вимкнено, а користувачі не зможуть увімкнути їх. Якщо вимкнене розширення вилучать із чорного списку, воно автоматично ввімкнеться. @@ -449,12 +444,6 @@ Якщо це правило не налаштовано, а на диску є менше ніж 20 ГБ (значення за умовчанням) вільного місця, <ph name="PLUGIN_VM_NAME" /> не буде встановлено. Якщо це правило налаштовано, <ph name="PLUGIN_VM_NAME" /> не буде встановлено, коли на диску буде менше вільного місця, ніж указано в правилі.</translation> -<translation id="1695708467571967752">Це правило дає змогу вибрати, чи може користувач відтворювати медіафайли, коли пристрій заблоковано. - - Якщо для цього правила вибрано значення False, елементи керування медіафайлами на заблокованому екрані буде вимкнено. - - Якщо для правила вибрано значення True або його не налаштовано, елементи керування відображатимуться на екрані, коли користувач блокуватиме пристрій під час відтворення медіафайлу. - </translation> <translation id="1700811900332333712">Дозволити пристрою надсилати запит на запуск Powerwash</translation> <translation id="1708496595873025510">Установити обмеження щодо отримання початкового числа Варіацій</translation> <translation id="171511968762040550">Якщо для цього правила вибрано значення True або його не налаштовано, користувачі зможуть додавати, видаляти або змінювати закладки. @@ -673,7 +662,6 @@ Якщо це налаштування вимкнено, перенесення файлів забороняється. Якщо цей параметр увімкнено або не налаштовано, перенесення файлів дозволяється.</translation> <translation id="2057317273526988987">Надати доступ до списку URL-адрес</translation> <translation id="2061810934846663491">Налаштовувати обов’язкові доменні імена хостів віддаленого доступу</translation> -<translation id="2067011586099792101">Блокувати доступ до сайтів, які не входять в пакети вмісту</translation> <translation id="2069350366303315077">Якщо це правило ввімкнено, <ph name="PRODUCT_NAME" /> примусово активовує сеанси в режимі "Гість" і не дозволяє входити в профіль. Вхід у режимі "Гість" у <ph name="PRODUCT_NAME" /> відбувається у вікнах у режимі анонімного перегляду. Якщо це правило вимкнено чи не налаштовано або якщо режим "Гість" у веб-переглядачі вимкнено (за допомогою правила <ph name="BROWSER_GUEST_MODE_ENABLED_POLICY_NAME" />), користувачі зможуть входити в нові й наявні профілі.</translation> @@ -1128,6 +1116,7 @@ Якщо це правило не налаштовано, у список не додається жодний веб-сайт. Примітка: елементи в цей список можна також додати через правила <ph name="USE_IE_SITELIST_POLICY_NAME" /> та <ph name="EXTERNAL_SITELIST_URL_POLICY_NAME" />.</translation> +<translation id="2640898752536996430">Вийти з облікового запису користувача.</translation> <translation id="264093234299818170">Відображаються всі принтери, крім тих, які є в чорному списку.</translation> <translation id="264252574246191885">Не опубліковане</translation> <translation id="2647069081229792812">Увімкнути або вимкнути редагування закладок</translation> @@ -1458,6 +1447,7 @@ <translation id="3072847235228302527">Установити Умови використання для локального облікового запису на пристрої</translation> <translation id="3086995894968271156">Налаштування приймача Cast у <ph name="PRODUCT_NAME" />.</translation> <translation id="3091832372132789233">Заряджати акумулятори пристроїв, для яких основним є зовнішнє джерело живлення.</translation> +<translation id="309416443108680956">Указує, що має трапитися, коли користувач, який проходить автентифікацію через маркер безпеки (наприклад, через розумну картку), вилучає такий маркер під час сеансу. <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_IGNORE" />: нічого не відбувається. <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" />: екран буде заблокований, доки користувач не пройде автентифікацію ще раз. <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" />: сеанс завершується, а користувач виходить з облікового запису. Якщо це правило не налаштовано, за умовчанням застосовується значення <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_IGNORE" />.</translation> <translation id="3096595567015595053">Список увімкнених плагінів</translation> <translation id="3101501961102569744">Вибрати спосіб визначення налаштувань проксі-сервера</translation> <translation id="3101709781009526431">Дата та час</translation> @@ -1884,6 +1874,7 @@ Якщо це правило налаштовано, користувачі не можуть змінювати тип домашньої сторінки в <ph name="PRODUCT_NAME" />. Якщо це правило не налаштовано, користувачі можуть вирішувати, чи використовувати сторінку нової вкладки як домашню. У <ph name="MS_WIN_NAME" /> ця функція доступна лише для машин із Windows 10 Pro, зареєстрованих у домені <ph name="MS_AD_NAME" /> чи сервісі <ph name="CHROME_BROWSER_CLOUSE_MANAGEMENT_NAME" />. У <ph name="MAC_OS_NAME" /> ця функція доступна лише для машин, які контролюються через Керування мобільними пристроями або зареєстровані в домені через MCX.</translation> +<translation id="3695706037816556327">Дія в <ph name="PRODUCT_OS_NAME" />, яка відбувається, коли вилучають маркер безпеки (наприклад, розумну картку).</translation> <translation id="3701121231485832347">Керує налаштуваннями пристроїв із <ph name="PRODUCT_OS_NAME" />, якими керує <ph name="MS_AD_NAME" />.</translation> <translation id="3702518095257671450">Віддалене засвідчення</translation> <translation id="3702647575225525306"><ph name="POLICY_NAME" /> (Поле, що складається з одного рядка, не підтримується, у майбутньому його буде видалено. Почніть користуватися полем нижче, що складається з кількох рядків.)</translation> @@ -1921,6 +1912,8 @@ Якщо це правило не налаштовано, користувачі зможуть самостійно вибирати налаштування проксі-сервера.</translation> <translation id="3758249152301468420">Вимкнути Інструменти розробника</translation> +<translation id="3760231600118073732">Заблокувати поточний сеанс.</translation> +<translation id="3764097800332238572">Це правило діє, лише якщо для правила <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_POLICY_NAME" /> вибрано значення <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOCK" /> або <ph name="SECURITY_TOKEN_SESSION_BEHAVIOR_LOGOUT" />, а користувач, який проходить автентифікацію через розумну картку, виймає її. Потім у налаштуваннях цього правила вказується, скільки секунд відображається сповіщення про дію, яка відбудеться. Таке сповіщення блокує екран. Відповідна дія відбудеться, коли припиниться показ сповіщення. Користувач може запобігти їй, якщо знову вставить розумну картку, перш ніж сповіщення зникне. Якщо для цього правила вказано нуль, сповіщення не відображатиметься, а відповідна дія відбудеться відразу.</translation> <translation id="3765260570442823273">Тривалість повідомлення із застереженням про вихід неактивного користувача</translation> <translation id="377044054160169374">Abusive Experience Intervention Enforce</translation> <translation id="3780152581321609624">Включити нестандартний порт в ім’я учасника сервера (SPN) за протоколом Kerberos</translation> @@ -2127,7 +2120,6 @@ <translation id="4056910949759281379">Вимкнути протокол SPDY</translation> <translation id="4061590579642538878">Повідомляти дані звітів про аварійне завершення роботи.</translation> <translation id="4075675819066819571">Розташування полиці ліворуч на екрані</translation> -<translation id="4075864623710596000">Імена хостів із цього списку буде виключено з перевірки правил HSTS. Це може змінити запити з http на https. У цьому правилі можна вказувати лише імена хостів з однією міткою. Імена хостів мають бути канонікалізовані: потрібно конвертувати інтернаціоналізовані доменні імена (IDN) у формат A-label і вживати лише малі літери ASCII. Це правило застосовується лише до певних указаних імен хостів. Воно не діє для субдоменів указаних імен.</translation> <translation id="408029843066770167">Дозволити запити в службу часу Google</translation> <translation id="408076456549153854">Увімкнути вхід в обліковий запис у веб-переглядачі</translation> <translation id="4082498585300984671">Увімкнути функцію "Інтерактивний номер"</translation> @@ -2237,9 +2229,6 @@ Якщо це правило деактивовано, технологія <ph name="PRODUCT_NAME" /> вимикається.</translation> <translation id="4203879074082863035">Користувачі бачать принтери лише з білого списку</translation> -<translation id="420512303455129789">URL-адреси зіставлення словника з логічним значенням, яке вказує, дозволено доступ до хосту (true) чи заборонено (false). - - Це правило лише для внутрішнього використання самим <ph name="PRODUCT_NAME" />.</translation> <translation id="4209297478239988291">Увімкнути спеціальну можливість "Автоклік". За допомогою цієї функції можна натискати об’єкти, не натискаючи кнопку миші чи сенсорну панель. Просто наводьте курсор на потрібний об'єкт. @@ -2379,13 +2368,6 @@ <translation id="4494132853995232608">Wilco DTC</translation> <translation id="449423975179525290">Налаштовує правила, пов’язані з <ph name="PLUGIN_VM_NAME" />.</translation> <translation id="4498493270899294764">Шаблони URL-адрес, для яких завантажений контент не потрібно перевіряти на наявність зловмисного програмного забезпечення</translation> -<translation id="450537894712826981">Налаштовує розмір кеш-пам’яті, який <ph name="PRODUCT_NAME" /> використовуватиме для зберігання кешованих медіа-файлів на диску. - - Якщо встановити це правило, <ph name="PRODUCT_NAME" /> використовуватиме вказаний розмір кеш-пам’яті незалежно від того, поставив користувач позначку "--media-cache-size" чи ні. Указане в цьому правилі значення не є остаточним, а лише припущенням для системи кешування. Будь-яке значення, менше за декілька мегабайтів, є замалим і буде заокруглюватися до прийнятного мінімуму. - - Якщо значення цього правила встановлено на 0, використовується розмір кеш-пам’яті за умовчанням, але користувач не може змінити його. - - Якщо це правило не встановлено, використовується розмір кеш-пам’яті за умовчанням, але користувач може його змінювати за допомогою позначки "--media-cache-size".</translation> <translation id="4508084713148633492">Дозволяє вмикати або вимикати сповіщення про те, що на диску замало пам'яті. Це правило стосується всіх користувачів на пристрої. Якщо на керованому пристрої є лише один обліковий запис користувача, сповіщення відображається завжди, незважаючи на значення цього правила. Якщо на керованому пристрої є кілька облікових записів користувача, сповіщення відображається, лише якщо для цього правила вибрано значення True. @@ -2680,7 +2662,6 @@ Якщо це правило вимкнено, <ph name="PRODUCT_NAME" /> не надсилатиме таких запитів.</translation> <translation id="5032164758660626397">Забороняти користувачу переносити великі файли</translation> -<translation id="5047604665028708335">Дозволити доступ до сайтів, які не входять у пакети вмісту</translation> <translation id="5056708224511062314">Лупу вимкнено</translation> <translation id="5058573563327660283">Вибирати, які дані видалятимуться під час автоматичного очищення диска (більше не підтримується)</translation> <translation id="5061114193960158745">Налаштування цього правила керують списком веб-сайтів, які ніколи не ініціюють перехід в інший веб-переглядач. Кожний елемент вважається правилом. Правила, які збігаються, не відкриватимуть альтернативний веб-переглядач. На відміну від <ph name="URL_LIST_POLICY_NAME" />, правила застосовуються в обох напрямках. Якщо доповнення <ph name="IE_PRODUCT_NAME" /> увімкнено, воно також визначає, чи <ph name="IE_PRODUCT_NAME" /> відкриватиме ці URL-адреси в <ph name="PRODUCT_NAME" />. @@ -3159,10 +3140,6 @@ Радимо не вмикати налаштування, оскільки це дозволить обходити розширення nameConstraints, що обмежує імена хостів, для яких можна авторизувати сертифікат. Якщо це правило не налаштовано або має значення "false", сертифікати сервера, які не містять розширення subjectAlternativeName із назвою DNS або IP-адресою, будуть вважатися ненадійними.</translation> -<translation id="5578571772998293651">Дозволити відгуки користувачів. - Якщо для цього правила вибрано значення false, користувачі не можуть надсилати відгуки в Google. - - Якщо це правило не налаштовано або має значення true, користувачі можуть надсилати відгуки в Google через опцію "Меню" -> "Довідка" -> "Повідомити про проблему" або за допомогою комбінації клавіш.</translation> <translation id="5579179012798142131">Якщо режим тимчасового профілю або паралельний вхід вимкнено під час сеансу користувача, а для правила ArcEnabled вибрано значення True, технологію ARC буде ввімкнено. Якщо для цього правила вибрано значення False або його не налаштовано, корпоративні користувачі не зможуть застосовувати ARC.</translation> <translation id="5582429816116769246">Дозволяє керувати доступом користувачів до принтерів, що не належать організації @@ -3424,7 +3401,6 @@ <translation id="5951418260805607969">Показувати сповіщення про те, що на диску замало пам'яті</translation> <translation id="5961137303188584693">MAC-адреса вбудованої мережевої плати пристрою</translation> <translation id="5966615072639944554">Дозволяє розширенням використовувати API віддаленого підтвердження даних</translation> -<translation id="5983708779415553259">Поведінка за умовчанням для сайтів, яких немає в жодному пакеті вмісту</translation> <translation id="5997543603646547632">Використовувати 24-годинний формат годинника за умовчанням</translation> <translation id="5997846976342452720">Указати, чи потрібно вимкнути інструмент пошуку плагінів (не підтримується)</translation> <translation id="5998198091336830580">Це правило є частиною цієї елементарної групи (застосовуються лише правила з джерела з найвищим пріоритетом у групі):</translation> @@ -3463,9 +3439,6 @@ <translation id="603768430528561926">Якщо це правило ввімкнено або не налаштовано, користувачі пристроїв організації зможуть активувати пропозиції за допомогою реєстрації <ph name="PRODUCT_OS_NAME" />. Якщо це правило вимкнено, користувачі не зможуть активувати такі пропозиції.</translation> -<translation id="6038407313189625985">Якщо це правило ввімкнено або не налаштовано, цілісність коду засобу обробки відео активовано. Його потрібно вимикати, лише коли виникають проблеми із сумісністю ПЗ незалежних розробників, яке потрібно запускати в процесах засобу обробки відео Chrome. - - Якщо вимкнути це правило, може постраждати безпека та стабільність Chrome, оскільки в процесах засобу обробки відео зможе завантажуватися невідомий і потенційно шкідливий код. Дізнайтеся більше на сторінці https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies.</translation> <translation id="6048199181629830227">Увімкнути керування живленням під час максимального навантаження</translation> <translation id="6054485492411959335">Указує принтери, доступні користувачеві. @@ -3943,6 +3916,7 @@ <translation id="6672070613706645316">Дозволити користувачам змінювати фон сторінки нової вкладки</translation> <translation id="6672630473862787247">Увімкнути фонову автентифікацію у звичайних, анонімних та гостьових сеансах.</translation> <translation id="6685903773201985073">Увімкнути фонову автентифікацію у звичайних і гостьових сеансах.</translation> +<translation id="6689343802305995925">Нічого не відбувається.</translation> <translation id="6689792153960219308">Повідомляти про стан апаратного забезпечення</translation> <translation id="6690425645391461516">Вимкнути перевірки перехоплення системи DNS; дозволити інформаційні панелі "можливо, ви мали на увазі" http://intranetsite/.</translation> <translation id="6698632841807204978">Увімкнути одноколірний друк</translation> @@ -4211,6 +4185,7 @@ Якщо це правило деактивовано, <ph name="PRODUCT_NAME" /> закриває вкладку після переходу на альтернативний веб-переглядач, навіть якщо це була остання вкладка. Це спричинить повне закриття <ph name="PRODUCT_NAME" />.</translation> <translation id="7019805045859631636">Fast</translation> +<translation id="7026351325994257733">Дозволити налаштуванням мережі Wi-Fi синхронізуватися між пристроями <ph name="PRODUCT_OS_NAME" /> і підключеним телефоном Android.</translation> <translation id="7027785306666625591">Налаштовувати керування живленням в <ph name="PRODUCT_OS_NAME" />. Це правило дозволяє налаштувати поведінку <ph name="PRODUCT_OS_NAME" />, коли користувач залишається неактивним упродовж певного часу.</translation> @@ -4583,6 +4558,13 @@ - Якщо це правило вимкнено, адміністратори повинні повідомити про це кінцевих користувачів пристрою.</translation> <translation id="747275827471712187">Повернутися до застарілої поведінки <ph name="ATTRIBUTE_SAMESITE_NAME" /> для файлів cookie на цих сайтах</translation> +<translation id="7476621944304431784">Якщо це правило ввімкнено, користувачі зможуть синхронізувати налаштуванням мережі Wi-Fi між своїми пристроями <ph name="PRODUCT_OS_NAME" /> і підключеним телефоном Android. Щоб згадані налаштування могли синхронізуватися, користувачі мають явно ввімкнути цю функцію, налаштувавши її. + + Якщо це правило вимкнено, користувачі не зможуть синхронізувати налаштування мережі Wi-Fi. + + Ця функція залежить від типу даних <ph name="WIFI_CONFIGURATIONS_DATATYPE_NAME" />, увімкненого в Синхронізації Chrome. Якщо параметр <ph name="WIFI_CONFIGURATIONS_DATATYPE_NAME" /> вимкнено в правилі <ph name="SYNC_TYPES_LIST_DISABLED_POLICY_NAME" /> або Синхронізацію Chrome вимкнено в правилі <ph name="SYNC_DISABLED_POLICY_NAME" />, ця функція буде вимкнена. + + Якщо це правило не налаштовано, за умовчанням ця функція буде забороненою для керованих користувачів.</translation> <translation id="7477231245051133709">Увімкнути спеціальну можливість "Монофонічне аудіо"</translation> <translation id="7477239290070847560">Місця призначення на основі Zeroconf (mDNS + DNS-SD)</translation> <translation id="7485481791539008776">Правила вибору принтера за умовчанням</translation> @@ -4774,9 +4756,6 @@ Примітка. Наразі автоматичне перезавантаження вмикається лише під час появи екрана входу чи під час роботи програми для термінала. У майбутньому правило буде застосовуватися завжди, незалежно від того, чи розпочато якийсь сеанс.</translation> <translation id="7701341006446125684">Указати розмір кеш-пам’яті для додатків і розширень (у байтах)</translation> -<translation id="7709537117200051035">Імена хостів зіставлення словника з логічним значенням, яке вказує, дозволено доступ до хосту (true) чи заборонено (false). - - Це правило лише для внутрішнього використання самим <ph name="PRODUCT_NAME" />.</translation> <translation id="7710950688502974809">Список налаштувань сервісів Chrome Enterprise Connectors, які застосовуються до конектора Enterprise <ph name="ON_BULK_DATA_ENTRY_ENTERPRISE_CONNECTOR" />, що активується, коли у веб-переглядачі Chrome вставляють дані з буферу обміну або перетягують веб-контент. Поля <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> та <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> визначають, чи надсилатиме конектор на аналіз дані, які внесено на певній сторінці, а також які теги додавати в запит на аналіз цих даних. Тег, який відповідає шаблону enable, буде включено в запит на аналіз, якщо URL-адреса сторінки відповідає шаблону, зв'язаному з цим тегом, і якщо для цього тега немає шаблону disable, що відповідає цій URL-адресі сторінки. Дані буде проаналізовано, якщо запит містить принаймні 1 тег. @@ -4924,7 +4903,6 @@ Якщо це налаштування ввімкнено або вимкнено, користувачі не можуть змінювати чи замінювати його в <ph name="PRODUCT_NAME" />. Якщо це правило не налаштовано, його буде ввімкнено, але користувачі зможуть змінювати налаштування.</translation> -<translation id="7953256619080733119">Установлені вручну винятки хостів керованого користувача</translation> <translation id="7956210013490975468">Налаштовує сервіс "Проксі системи" для <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="7958537754689366707">Пароль потрібно вводити кожні 12 годин</translation> <translation id="7961779417826583251">Вимкнути застосування перевірки сертифіката для списку застарілих центрів сертифікації</translation> @@ -5147,11 +5125,6 @@ Якщо це правило налаштовано, користувачі не можуть змінювати або замінювати його. Якщо це правило не налаштовано, диктування буде вимкнено, але користувач може будь-коли ввімкнути його.</translation> -<translation id="829337533107201925">Якщо це правило ввімкнено, правила з елементарної групи, які не поділяють джерело з найвищим пріоритетом із цієї групи, ігноруються. - - Якщо це правило вимкнено, правила не ігноруються через джерело. Вони ігноруються, лише коли виникає конфлікт і правило не має найвищого пріоритету. - - Якщо це правило налаштовано з хмарного джерела, його не можна націлювати на конкретного користувача</translation> <translation id="8294750666104911727">Зазвичай сторінки з метатегом "X-UA-Compatible", для якого встановлено значення "chrome=1", відтворюються в <ph name="PRODUCT_FRAME_NAME" /> незалежно від правила "ChromeFrameRendererSettings". Якщо ввімкнути це налаштування, сторінки не скануватимуться на наявність метатегів. @@ -5356,7 +5329,6 @@ <translation id="8544375438507658205">Відтворення у форматі HTML за умовчанням для <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="8544465954173828789">Дозволити синхронізацію SMS-повідомлень на телефоні з Chromebook.</translation> <translation id="8548832052135586762">Налаштовує лише кольоровий, одноколірний або чорно-білий режим друку. Якщо це правило не налаштовано, вважається, що воно не має обмежень.</translation> -<translation id="8549772397068118889">Попереджає про відвідування сайтів, які не входять у пакети вмісту</translation> <translation id="8566842294717252664">Ховати значок веб-магазину на сторінці нової вкладки та на панелі запуску додатків</translation> <translation id="8569734380847633643"> Якщо це правило має значення false, <ph name="PRODUCT_OS_NAME" /> вимикає з’єднання Wi-Fi. Користувачі не можуть увімкнути його. @@ -5476,7 +5448,6 @@ Якщо це правило налаштовано, користувачі не можуть змінювати або замінювати його. Це правило не впливає на здатність користувачів налаштовувати принтери для окремих пристроїв. Воно доповнює такі налаштування.</translation> -<translation id="8764477907716150749">Це правило лише для внутрішнього використання <ph name="PRODUCT_NAME" />.</translation> <translation id="8767743923206070405">Якщо це правило ввімкнено, на панелі інструментів у <ph name="PRODUCT_NAME" /> відображатиметься кнопка "Домашня сторінка". Якщо це правило вимкнено, кнопка "Домашня сторінка" не з'являтиметься. Якщо це правило налаштовано, користувачі не зможуть змінювати його в <ph name="PRODUCT_NAME" />. Якщо його не налаштовано, користувачі вибирають, чи показувати кнопку "Домашня сторінка".</translation> @@ -5818,6 +5789,7 @@ <translation id="9152473318295429890">Вмикає контекстні пропозиції пов’язаних веб-сторінок</translation> <translation id="9153446010242995516">Відкочуватися до цільової версії та використовувати її, якщо версія ОС новіша. Якщо можливо, під час процесу відкочування спробуйте перенести налаштування пристрою (зокрема, облікові дані мережі), однак виконайте Powerwash, навіть якщо відновлення інформації неможливе (наприклад, цільова версія не підтримує його або така зміна несумісна). Підтримується в <ph name="PRODUCT_OS_NAME" /> 75 і новіших версіях. Це означає, що для клієнтів зі старішою версією відкочування вимкнено.</translation> +<translation id="9155218447258425310">Час, упродовж якого в <ph name="PRODUCT_OS_NAME" /> відображається сповіщення, коли користувач виймає розумну картку.</translation> <translation id="9155375380628728544">Якщо налаштувати це правило, користувачі зможуть додавати в список вибраних мов лише одну з тих, що перелічені в цьому правилі. Якщо це правило не налаштовано або для нього вказано порожній список, користувачі можуть вибирати мови за своїм бажанням.
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb index 5f9cdef52..083d76bd 100644 --- a/components/policy/resources/policy_templates_vi.xtb +++ b/components/policy/resources/policy_templates_vi.xtb
@@ -103,7 +103,7 @@ <translation id="1160939557934457296">Vô hiệu hóa khả năng tiếp tục từ trang cảnh báo Duyệt web an toàn</translation> <translation id="1163080558183062209">Vô hiệu hóa các loại máy in trong danh sách từ chối</translation> <translation id="117059611145966538">Máy chủ máy in bên ngoài</translation> -<translation id="1171785618439752042">Nếu bạn đặt chính sách này, hệ thống sẽ chỉ định các loại mã hóa được cho phép khi yêu cầu phiếu Kerberos từ một máy chủ <ph name="MS_AD_NAME" />. +<translation id="1171785618439752042">Nếu bạn đặt chính sách này, hệ thống sẽ chỉ định các loại mã hóa được phép khi yêu cầu vé Kerberos từ một máy chủ <ph name="MS_AD_NAME" />. Nếu bạn đặt chính sách này thành: @@ -203,11 +203,6 @@ Nếu chính sách này được đặt thành false, <ph name="PRODUCT_NAME" /> sẽ không cho phép bắt đầu hồ sơ khách.</translation> <translation id="1363275621236827384">Bật truy vấn cấu hình Máy chủ Quirks cho phần cứng</translation> <translation id="1376119291123231789">Bật chế độ sạc pin nâng cao</translation> -<translation id="1378850678793136128">Cho phép bạn thiết lập danh sách các mẫu URL để chỉ định những trang web sẽ tự động được cấp quyền truy cập vào thiết bị USB bằng mã sản phẩm và mã nhà cung cấp đã cho trên màn hình đăng nhập. Mỗi mục trong danh sách phải có trường "devices" và trường "urls" thì chính sách này mới hợp lệ. Mỗi mục trong trường "devices" có thể chứa trường "vendor_id" và "product_id". Nếu bạn bỏ qua trường "vendor_id", một chính sách sẽ áp dụng cho bất kỳ thiết bị nào. Nếu bạn bỏ qua trường "product_id", một chính sách sẽ áp dụng cho bất kỳ thiết bị nào có mã nhà cung cấp đã cho. Nếu chính sách có trường "product_id" mà không có trường "vendor_id" thì chính sách đó sẽ không hợp lệ. - - Mô hình cấp phép của USB sử dụng URL của trang web yêu cầu ("URL yêu cầu") và URL của trang web khung cấp cao nhất ("URL nhúng") để cấp cho URL yêu cầu quyền truy cập vào thiết bị USB. URL yêu cầu có thể khác với URL nhúng khi bạn tải trang web yêu cầu trong iframe. Do đó, trường "urls" có thể chứa tối đa 2 chuỗi URL phân tách bằng dấu phẩy để chỉ định URL yêu cầu và URL nhúng tương ứng. Nếu chỉ có một URL được chỉ định, quyền truy cập vào các thiết bị USB tương ứng sẽ được cấp khi URL của trang web yêu cầu khớp với URL này, bất kể trạng thái nhúng. Các URL trong trường "urls" phải là URL hợp lệ. Nếu không, chính sách này sẽ bị bỏ qua. - - Nếu bạn không đặt chính sách này, giá trị mặc định chung sẽ được dùng cho tất cả các trang web (không truy cập tự động).</translation> <translation id="1384459581748403878">Tham khảo: <ph name="REFERENCE_URL" /></translation> <translation id="138847842893090358">Báo cáo trạng thái cập nhật hệ điều hành</translation> <translation id="1390901586107713894">Cho phép bạn chỉ định những tiện ích mà người dùng KHÔNG THỂ cài đặt. Những tiện ích đã cài đặt sẽ tắt nếu bị chặn. Người dùng không có cách nào để bật những tiện ích đó. Sau khi bạn xóa một tiện ích (bị tắt do thuộc danh sách chặn) khỏi danh sách chặn, thì tiện ích này sẽ tự động được bật lại. @@ -450,12 +445,6 @@ Nếu bạn không đặt chính sách này, thì thiết bị sẽ không cài đặt được <ph name="PLUGIN_VM_NAME" /> nếu ổ đĩa còn dưới 20 GB trống (giá trị mặc định). Nếu bạn đặt chính sách này, thì thiết bị sẽ không cài đặt được <ph name="PLUGIN_VM_NAME" /> nếu ổ đĩa có ít dung lượng trống hơn mức mà chính sách yêu cầu.</translation> -<translation id="1695708467571967752">Chính sách này kiểm soát việc người dùng có thể phát nội dung đa phương tiện khi thiết bị đang khóa hay không. - - Nếu bạn đặt chính sách này thành False, thì các chức năng điều khiển nội dung đa phương tiện trên màn hình khóa sẽ bị tắt. - - Nếu bạn không đặt hoặc đặt chính sách này thành True, thì các chức năng điều khiển nội dung đa phương tiện sẽ hiển thị trên màn hình khóa nếu người dùng khóa thiết bị khi nội dung đa phương tiện đang phát. - </translation> <translation id="1700811900332333712">Cho phép thiết bị yêu cầu chức năng Powerwash</translation> <translation id="1708496595873025510">Đặt giới hạn cho quá trình tìm nạp khởi đầu Biến thể</translation> <translation id="171511968762040550">Nếu bạn đặt chính sách này thành True hoặc không đặt chính sách này, thì người dùng có thể thêm, xóa hoặc sửa đổi dấu trang. @@ -662,7 +651,7 @@ <translation id="203096360153626918">Chính sách này không ảnh hưởng đến các ứng dụng Android. Các ứng dụng đó sẽ có thể vào chế độ toàn màn hình ngay cả khi chính sách này được đặt thành <ph name="FALSE" />.</translation> <translation id="2036522553891755455">Nếu bạn đặt chính sách này thành Bật, tính năng khám phá lượt chia sẻ (tính năng Chia sẻ tệp trong mạng của <ph name="PRODUCT_NAME" />) sẽ sử dụng <ph name="NETBIOS_PROTOCOL" /> để khám phá các lượt chia sẻ trên mạng. Nếu bạn đặt chính sách thành Tắt, tính năng khám phá lượt chia sẻ sẽ không sử dụng giao thức này để khám phá các lượt chia sẻ. - Nếu bạn không đặt chính sách này, chế độ hoạt động mặc định sẽ là tắt đối với người dùng được quản lý và bật đối với người dùng khác.</translation> + Nếu bạn không đặt chính sách này, chế độ mặc định sẽ là tắt đối với người dùng được quản lý và bật đối với người dùng khác.</translation> <translation id="2037214548071298156">Nếu bạn không đặt hoặc đặt chính sách này thành Bật, thì thiết bị đã đăng ký sẽ báo cáo số liệu thống kê về phần cứng, chẳng hạn như mức sử dụng CPU/RAM. Nếu bạn đặt chính sách này thành Tắt, thiết bị đã đăng ký sẽ không báo cáo số liệu thống kê về phần cứng đó.</translation> @@ -674,7 +663,6 @@ Nếu bạn tắt tùy chọn cài đặt này, thì người dùng sẽ không được phép chuyển tệp. Nếu bạn bật hoặc không đặt tùy chọn cài đặt này, thì người dùng có thể chuyển tệp.</translation> <translation id="2057317273526988987">Cho phép truy cập vào một danh sách các URL</translation> <translation id="2061810934846663491">Định cấu hình tên miền bắt buộc cho máy chủ truy cập từ xa</translation> -<translation id="2067011586099792101">Chặn truy cập vào các trang web nằm ngoài gói nội dung</translation> <translation id="2069350366303315077">Khi bạn đặt chính sách này thành Bật, thì <ph name="PRODUCT_NAME" /> sẽ thực thi các phiên khách và ngăn chặn phiên đăng nhập vào hồ sơ. Phiên đăng nhập khách là hồ sơ <ph name="PRODUCT_NAME" />, trong đó các cửa sổ đều ở Chế độ ẩn danh. Nếu bạn không đặt hoặc đặt chính sách này thành Tắt hay tắt Chế độ khách trên trình duyệt, (thông qua <ph name="BROWSER_GUEST_MODE_ENABLED_POLICY_NAME" />), thì người dùng có thể sử dụng các hồ sơ mới và hiện có.</translation> @@ -812,9 +800,9 @@ Bạn không nên dùng chính sách này cho các thiết bị dùng chung. Nếu bạn đặt chính sách này thành True hoặc không đặt chính sách này, thì thông báo cảnh báo quyền riêng tư trong phiên khách được quản lý tự động chạy sẽ được ghim cho đến khi người dùng đóng thông báo này.</translation> -<translation id="228665601367357543">Cho phép bạn thiết lập danh sách các mẫu URL để chỉ định những trang web sẽ tự động được cấp quyền truy cập vào thiết bị USB bằng mã sản phẩm và mã nhà cung cấp đã cho. Mỗi mục trong danh sách phải có trường "devices" và trường "urls" thì chính sách này mới hợp lệ. Mỗi mục trong trường "devices" có thể chứa trường "vendor_id" và "product_id". Nếu bạn bỏ qua trường "vendor_id", một chính sách sẽ áp dụng cho bất kỳ thiết bị nào. Nếu bạn bỏ qua trường "product_id", một chính sách sẽ áp dụng cho bất kỳ thiết bị nào có mã nhà cung cấp đã cho. Nếu chính sách có trường "product_id" mà không có trường "vendor_id" thì chính sách đó sẽ không hợp lệ. +<translation id="228665601367357543">Cho phép bạn thiết lập danh sách các mẫu URL để chỉ định những trang web sẽ tự động được cấp quyền truy cập vào thiết bị USB bằng mã sản phẩm và mã nhà cung cấp đã cho. Mỗi mục trong danh sách phải có trường "devices" và trường "urls" thì chính sách này mới hợp lệ. Mỗi mục trong trường "devices" có thể chứa trường "vendor_id" và "product_id". Nếu bạn bỏ qua trường "vendor_id", một chính sách áp dụng cho bất kỳ thiết bị nào sẽ được tạo. Nếu bạn bỏ qua trường "product_id", một chính sách áp dụng cho bất kỳ thiết bị nào có mã nhà cung cấp đã cho sẽ được tạo. Nếu chính sách có trường "product_id" mà không có trường "vendor_id" thì chính sách đó sẽ không hợp lệ. - Mô hình quản lý quyền truy cập vào USB sử dụng URL yêu cầu và URL nhúng (của trang web khung cấp cao nhất) để cho phép URL yêu cầu truy cập vào thiết bị USB. URL yêu cầu có thể khác với URL nhúng khi trang web yêu cầu tải trong iframe. Do đó, trường "urls" có thể chứa tối đa 2 chuỗi được phân tách bằng dấu phẩy để chỉ định những URL này. Nếu bạn chỉ định duy nhất một URL, hệ thống sẽ cấp quyền truy cập vào các thiết bị USB tương ứng khi URL của trang web yêu cầu khớp với URL này, bất kể trạng thái nhúng là gì. Các URL trong trường "urls" phải là URL hợp lệ. Nếu không, chính sách này sẽ bị bỏ qua. + Mô hình quản lý quyền truy cập vào USB sử dụng URL yêu cầu và URL nhúng (của trang web khung cấp cao nhất) để cho phép URL yêu cầu truy cập vào thiết bị USB. URL yêu cầu có thể khác với URL nhúng khi trang web yêu cầu tải trong một iframe. Do đó, trường "urls" có thể chứa tối đa 2 chuỗi được phân tách bằng dấu phẩy để chỉ định những URL này. Nếu bạn chỉ định duy nhất một URL, hệ thống sẽ cấp quyền truy cập vào các thiết bị USB tương ứng khi URL của trang web yêu cầu khớp với URL này, bất kể trạng thái nhúng là gì. Các URL trong trường "urls" phải là URL hợp lệ. Nếu không, chính sách này sẽ bị bỏ qua. Nếu bạn không đặt chính sách này, <ph name="DEFAULT_WEB_USB_GUARD_SETTING_POLICY_NAME" /> (nếu được đặt) sẽ áp dụng. Nếu không, tùy chọn cài đặt cá nhân của người dùng sẽ được áp dụng. @@ -2127,7 +2115,6 @@ <translation id="4056910949759281379">Vô hiệu hóa giao thức SPDY</translation> <translation id="4061590579642538878">Báo cáo thông tin về báo cáo sự cố.</translation> <translation id="4075675819066819571">Đặt giá ở bên trái màn hình</translation> -<translation id="4075864623710596000">Các tên máy chủ đã chỉ định trong danh sách này sẽ được miễn kiểm tra chính sách HSTS mà có thể nâng cấp yêu cầu từ http lên https. Chính sách này chỉ cho phép tên máy chủ một nhãn. Cần phải chuẩn hóa tên máy chủ: mọi IDN phải được chuyển sang định dạng nhãn A và tất cả chữ cái ASCII phải là chữ thường. Chính sách này chỉ áp dụng với các tên máy chủ cụ thể đã chỉ định, chứ không áp dụng với các miền con của tên máy chủ đã chỉ định.</translation> <translation id="408029843066770167">Cho phép gửi truy vấn tới dịch vụ thời gian của Google</translation> <translation id="408076456549153854">Cho phép đăng nhập vào trình duyệt</translation> <translation id="4082498585300984671">Bật tính năng Nhấp để gọi</translation> @@ -2236,9 +2223,6 @@ Nếu bạn đặt chính sách này thành Tắt, thì <ph name="PRODUCT_NAME" /> sẽ bị tắt.</translation> <translation id="4203879074082863035">Chỉ những máy in trong danh sách cho phép mới hiển thị với người dùng</translation> -<translation id="420512303455129789">Từ điển ánh xạ các URL đến cờ boolean nêu rõ nên cho phép (true) hay chặn (false) quyền truy cập đến máy chủ lưu trữ. - - Chính sách này dành cho <ph name="PRODUCT_NAME" /> sử dụng nội bộ.</translation> <translation id="4209297478239988291">Bật tính năng hỗ trợ tiếp cận về tự động nhấp. Khi bật tính năng này, hệ thống sẽ tự động nhấp mà bạn không cần phải dùng tay ấn vào con chuột hoặc bàn di chuột. Bạn chỉ cần di chuột đến đối tượng muốn nhấp. @@ -2378,13 +2362,6 @@ <translation id="4494132853995232608">Wilco DTC</translation> <translation id="449423975179525290">Định cấu hình chính sách liên quan đến <ph name="PLUGIN_VM_NAME" />.</translation> <translation id="4498493270899294764">Các mẫu URL không cần phải kiểm tra nội dung đã tải xuống để xem có chứa phần mềm độc hại hay không</translation> -<translation id="450537894712826981">Định cấu hình kích thước bộ nhớ đệm mà <ph name="PRODUCT_NAME" /> sẽ sử dụng để lưu trữ các tệp phương tiện đã lưu vào bộ nhớ đệm trên đĩa. - - Nếu bạn đặt chính sách này, <ph name="PRODUCT_NAME" /> sẽ sử dụng kích thước bộ nhớ đệm được cung cấp cho dù người dùng đã chỉ định cờ '--media-cache-size' hay chưa. Giá trị được chỉ định trong chính sách này không phải là ranh giới cứng nhắc mà là một đề xuất cho hệ thống lưu vào bộ nhớ đệm, mọi giá trị dưới vài megabyte là quá nhỏ và sẽ được làm tròn lên đến mức tối thiểu hợp lý. - - Nếu giá trị của chính sách này là 0, kích thước bộ nhớ đệm mặc định sẽ được sử dụng nhưng người dùng không thể thay đổi kích thước đó. - - Nếu chính sách này không được đặt, kích thước mặc định sẽ được sử dụng và người dùng có thể ghi đè kích thước đó bằng cờ --media-cache-size.</translation> <translation id="4508084713148633492">Cho phép bật hoặc tắt thông báo khi dung lượng ổ đĩa sắp hết. Chính sách này áp dụng cho tất cả người dùng trên thiết bị này. Nếu có duy nhất một tài khoản người dùng trên mỗi thiết bị được quản lý, thì thông báo sẽ luôn hiển thị bất kể giá trị của chính sách này là gì. Nếu có nhiều tài khoản người dùng trên mỗi thiết bị được quản lý, thì thông báo sẽ chỉ hiển thị khi bạn đặt chính sách này thành True. @@ -2439,13 +2416,13 @@ <translation id="4578912515887794133">Nếu bạn bật tùy chọn cài đặt này, máy chủ truy cập từ xa sẽ so sánh tên của người dùng trên máy (liên kết với máy chủ) và tên tài khoản Google được đăng ký làm chủ sở hữu máy chủ (ví dụ như "johndoe" nếu tài khoản Google "johndoe@example.com" sở hữu máy chủ này). Máy chủ truy cập từ xa sẽ không khởi động nếu tên của chủ sở hữu máy chủ khác với tên của người dùng trên máy được liên kết với máy chủ. Bạn nên sử dụng chính sách RemoteAccessHostMatchUsername cùng với chính sách RemoteAccessHostDomain để đồng thời buộc tài khoản Google của chủ sở hữu máy chủ liên kết với một miền cụ thể (ví dụ như "example.com"). Nếu bạn tắt hoặc không đặt tùy chọn cài đặt này, máy chủ truy cập từ xa có thể liên kết với bất kỳ người dùng nào trên máy.</translation> -<translation id="4587365491100112056">Nếu bạn đặt chính sách này, hệ thống sẽ chỉ định thời gian tồn tại (tính theo giờ) của bộ nhớ đệm lưu dữ liệu xác thực. Bộ nhớ đệm chứa dữ liệu về các vùng được vùng trên máy này tin cậy (vùng được liên kết). Vì vậy, việc lưu dữ liệu xác thực vào bộ nhớ đệm sẽ giúp quá trình đăng nhập diễn ra nhanh chóng. Dữ liệu dành riêng cho người dùng và dữ liệu cho các vùng chưa liên kết không được lưu vào bộ nhớ đệm. +<translation id="4587365491100112056">Nếu bạn đặt chính sách này, hệ thống sẽ chỉ định thời gian tồn tại (tính theo giờ) của bộ nhớ đệm lưu dữ liệu xác thực. Bộ nhớ đệm chứa dữ liệu về các miền được miền của máy này tin cậy (miền được liên kết). Vì vậy, việc lưu dữ liệu xác thực vào bộ nhớ đệm sẽ giúp quá trình đăng nhập diễn ra nhanh chóng. Dữ liệu riêng của người dùng và dữ liệu cho các miền chưa liên kết không được lưu vào bộ nhớ đệm. - Nếu bạn đặt chính sách này thành 0, tính năng lưu dữ liệu xác thực vào bộ nhớ đệm sẽ bị tắt. Dữ liệu dành riêng cho vùng được hệ thống tìm nạp mỗi lần đăng nhập, nên việc tắt tính năng lưu dữ liệu xác thực vào bộ nhớ đệm có thể làm chậm đáng kể quá trình đăng nhập của người dùng. + Nếu bạn đặt chính sách này thành 0, tính năng lưu dữ liệu xác thực vào bộ nhớ đệm sẽ bị tắt. Dữ liệu riêng của miền được tìm nạp mỗi lần đăng nhập, nên việc tắt tính năng lưu dữ liệu xác thực vào bộ nhớ đệm có thể làm chậm đáng kể quá trình đăng nhập của người dùng. Nếu bạn không đặt chính sách này, hệ thống có thể sử dụng lại dữ liệu xác thực đã lưu vào bộ nhớ đệm trong tối đa 73 giờ. - Lưu ý: Thao tác khởi động lại thiết bị sẽ xóa bộ nhớ đệm, ngay cả khi dữ liệu vùng của người dùng tạm thời đã được lưu vào bộ nhớ đệm. Hãy tắt bộ nhớ đệm để ngăn việc truy vết vùng của người dùng tạm thời.</translation> + Lưu ý: Thao tác khởi động lại thiết bị sẽ xóa bộ nhớ đệm, ngay cả khi dữ liệu miền của người dùng tạm thời đã được lưu vào bộ nhớ đệm. Hãy tắt bộ nhớ đệm để ngăn việc truy vết miền của người dùng tạm thời.</translation> <translation id="4591366717022345234">Cung cấp Bản dựng Quick Fix cho người dùng</translation> <translation id="4592246263545654202">Chỉ định việc người dùng có thể mở trang ở chế độ ẩn danh trong <ph name="PRODUCT_NAME" /> hay không. @@ -2554,7 +2531,7 @@ <ph name="PAGE_SIZE_NAME" /> nên chứa một trong các định dạng được liệt kê hoặc giá trị "tùy chỉnh" nếu kích thước giấy bắt buộc không có trong danh sách đó. Nếu cung cấp giá trị "tùy chỉnh", thì bạn nên chỉ định thuộc tính <ph name="PAGE_SIZE_CUSTOM_SIZE" />. Thuộc tính này mô tả chiều dài và chiều rộng mong muốn tính bằng micromet. Nếu không, bạn không nên chỉ định thuộc tính <ph name="PAGE_SIZE_CUSTOM_SIZE" />. Chính sách vi phạm những quy tắc này sẽ bị bỏ qua. Nếu kích thước trang không có sẵn trên máy in mà người dùng chọn, thì chính sách này sẽ bị bỏ qua.</translation> -<translation id="4790588245699320140">Cho phép Trợ lý Google truy cập vào ngữ cảnh màn hình</translation> +<translation id="4790588245699320140">Cho phép Trợ lý Google truy cập vào bối cảnh trên màn hình</translation> <translation id="4802744647065138872">Giới hạn số lượng ảnh chụp nhanh dữ liệu người dùng được giữ lại để sử dụng trong trường hợp khôi phục khẩn cấp.</translation> <translation id="4802905909524200151">Định cấu hình hành vi của bản cập nhật chương trình cơ sở <ph name="TPM_FIRMWARE_UPDATE_TPM" /></translation> <translation id="4804828344300125154">Luôn khởi động lại khi đăng xuất người dùng.</translation> @@ -2681,7 +2658,6 @@ Nếu bạn đặt chính sách này thành Tắt, <ph name="PRODUCT_NAME" /> sẽ ngừng gửi các truy vấn đó.</translation> <translation id="5032164758660626397">Ngăn người dùng chuyển các tệp có kích thước lớn</translation> -<translation id="5047604665028708335">Cho phép truy cập vào các trang web nằm ngoài gói nội dung</translation> <translation id="5056708224511062314">Đã tắt kính lúp màn hình</translation> <translation id="5058573563327660283">Lựa chọn chiến lược dùng để giải phóng dung lượng đĩa trong khi dọn sạch tự động (không dùng nữa)</translation> <translation id="5061114193960158745">Nếu bạn đặt chính sách này, thì hệ thống sẽ kiểm soát danh sách các trang web không bao giờ gây ra tình trạng chuyển đổi trình duyệt. Mỗi mục được coi là một quy tắc. Những quy tắc trùng khớp sẽ không mở trình duyệt thay thế. Không giống như chính sách <ph name="URL_LIST_POLICY_NAME" />, các quy tắc sẽ được áp dụng cho cả hai chiều. Khi phần bổ trợ <ph name="IE_PRODUCT_NAME" /> đang bật, chính sách này cũng sẽ kiểm soát việc <ph name="IE_PRODUCT_NAME" /> có mở những URL này trong <ph name="PRODUCT_NAME" /> hay không. @@ -2858,10 +2834,10 @@ Nếu bạn không đặt chính sách này, người dùng có thể chọn các tùy chọn cài đặt proxy. Nếu đặt chính sách <ph name="PROXY_SETTINGS_POLICY_NAME" />, bạn chấp nhận những trường sau đây: - * <ph name="PROXY_MODE_PROXY_SETTINGS_FIELD" /> cho phép bạn chỉ định máy chủ proxy mà Chrome sẽ sử dụng và ngăn người dùng thay đổi các tùy chọn cài đặt proxy - * <ph name="PROXY_PAC_URL_PROXY_SETTINGS_FIELD" /> là URL dẫn tới một tệp proxy .pac - * <ph name="PROXY_SERVER_PROXY_SETTINGS_FIELD" /> là URL của máy chủ proxy - * <ph name="PROXY_BYPASS_LIST_PROXY_SETTINGS_FIELD" /> là danh sách các máy chủ proxy mà <ph name="PRODUCT_NAME" /> bỏ qua + * <ph name="PROXY_MODE_PROXY_SETTINGS_FIELD" />, cho phép bạn chỉ định máy chủ proxy mà Chrome sẽ sử dụng và ngăn người dùng thay đổi các tùy chọn cài đặt proxy + * <ph name="PROXY_PAC_URL_PROXY_SETTINGS_FIELD" />, một URL dẫn tới một tệp proxy .pac + * <ph name="PROXY_SERVER_PROXY_SETTINGS_FIELD" />, một URL của máy chủ proxy + * <ph name="PROXY_BYPASS_LIST_PROXY_SETTINGS_FIELD" />, một danh sách các máy chủ proxy mà <ph name="PRODUCT_NAME" /> bỏ qua Trường <ph name="PROXY_SERVER_MODE_PROXY_SETTINGS_FIELD" /> không còn dùng nữa mà thay bằng trường <ph name="PROXY_MODE_PROXY_SETTINGS_FIELD" />. Trường này cho phép bạn chỉ định máy chủ proxy mà Chrome sẽ sử dụng và ngăn người dùng thay đổi các tùy chọn cài đặt proxy. @@ -3161,10 +3137,6 @@ Lưu ý rằng tùy chọn này không được đề xuất, vì điều này có thể cho phép bỏ qua tiện ích nameConstraints hạn chế tên máy chủ mà một chứng chỉ đã cho có thể được ủy quyền. Nếu chính sách này chưa được đặt hoặc được đặt thành false, chứng chỉ máy chủ thiếu tiện ích subjectAlternativeName chứa tên DNS hoặc địa chỉ IP sẽ không được tin tưởng.</translation> -<translation id="5578571772998293651">Cho phép người dùng phản hồi. - Nếu bạn đặt chính sách này thành false, thì người dùng không thể gửi ý kiến phản hồi cho Google. - - Nếu bạn không đặt chính sách này hoặc đặt chính sách thành true, thì người dùng có thể gửi ý kiến phản hồi cho Google qua Menu->Trợ giúp->Báo cáo vấn đề hoặc tổ hợp phím.</translation> <translation id="5579179012798142131">Trừ khi Chế độ tạm thời hoặc đăng nhập nhiều tài khoản đang bật trong phiên của người dùng, thì khi đặt ArcEnabled thành True, ARC cho người dùng mới được bật. Nếu bạn đặt chính sách này thành False hoặc không đặt, thì người dùng doanh nghiệp sẽ không thể sử dụng ARC.</translation> <translation id="5582429816116769246">Cho phép bạn kiểm soát xem người dùng có thể truy cập vào các máy in không dành cho doanh nghiệp hay không @@ -3267,7 +3239,7 @@ <translation id="5697306356229823047">Báo cáo người dùng thiết bị</translation> <translation id="570062449808736508">Khi chính sách này được đặt thành chuỗi không trống, WebView sẽ đọc hạn chế URL từ nhà cung cấp nội dung có tên tổ chức cho trước.</translation> <translation id="5708969689202733975">Định cấu hình chế độ mở khóa nhanh được phép</translation> -<translation id="5715617256528927547">Nếu bạn đặt chính sách này, hệ thống sẽ chỉ định thời gian tồn tại (tính theo giờ) của bộ nhớ đệm Đối tượng chính sách nhóm (GPO) – thời lượng tối đa có thể sử dụng lại các GPO trước khi tải các GPO này xuống lần nữa. Thay vì tải GPO xuống lần nữa trong mỗi lần tìm nạp chính sách, hệ thống có thể sử dụng lại các GPO đã lưu vào bộ nhớ đệm, miễn là phiên bản của các GPO này không thay đổi. +<translation id="5715617256528927547">Nếu bạn đặt chính sách này, hệ thống sẽ chỉ định thời gian tồn tại (tính theo giờ) của bộ nhớ đệm Đối tượng chính sách nhóm (GPO) – thời lượng tối đa có thể sử dụng lại các GPO trước khi các GPO này được tải xuống lần nữa. Thay vì tải các GPO xuống lần nữa trong mỗi lần tìm nạp chính sách, hệ thống có thể sử dụng lại các GPO đã lưu vào bộ nhớ đệm, miễn là phiên bản của các GPO này không thay đổi. Nếu bạn đặt chính sách này thành 0, tính năng lưu GPO vào bộ nhớ đệm sẽ bị tắt. Hậu quả là lượng tải trên máy chủ sẽ tăng lên vì các GPO được tải xuống lần nữa mỗi khi tìm nạp chính sách, ngay cả khi các GPO này không thay đổi. @@ -3323,7 +3295,7 @@ <translation id="5832274826894536455">Chính sách không còn dùng nữa</translation> <translation id="5835253272509953988">Nếu bạn đặt chính sách này thành Bật, người dùng có thể yêu cầu <ph name="PRODUCT_NAME" /> kiểm tra xem tên người dùng và mật khẩu đã nhập có bị rò rỉ hay không. - Nếu bạn đặt chính sách này, người dùng sẽ không thay đổi được trong <ph name="PRODUCT_NAME" />. Nếu bạn không đặt chính sách này, hệ thống sẽ cho phép kiểm tra rò rỉ thông tin đăng nhập. Tuy nhiên, người dùng có thể tắt tính năng này. + Nếu bạn đặt chính sách này, người dùng sẽ không thay đổi được trong <ph name="PRODUCT_NAME" />. Nếu bạn không đặt chính sách này, hệ thống sẽ cho phép kiểm tra xem thông tin đăng nhập có bị rò rỉ hay không. Tuy nhiên, người dùng có thể tắt tính năng này. Hoạt động kiểm tra nói trên sẽ không bắt đầu nếu tính năng Duyệt web an toàn bị tắt (theo chính sách hoặc do người dùng). Để buộc bật tính năng Duyệt web an toàn, hãy dùng chính sách <ph name="SAFE_BROWSING_ENABLED_POLICY_NAME" /> hoặc chính sách <ph name="SAFE_BROWSING_PROTETION_LEVEL_POLICY_NAME" />.</translation> <translation id="5836064773277134605">Hạn chế phạm vi cổng UDP được máy chủ truy cập từ xa sử dụng</translation> @@ -3428,7 +3400,6 @@ <translation id="5951418260805607969">Hiển thị thông báo khi dung lượng ổ đĩa sắp hết</translation> <translation id="5961137303188584693">Địa chỉ MAC trên NIC tích hợp của thiết bị</translation> <translation id="5966615072639944554">Tiện ích được phép sử dụng API chứng thực từ xa</translation> -<translation id="5983708779415553259">Thao tác mặc định cho trang web không nằm trong bất kỳ gói nội dung nào</translation> <translation id="5997543603646547632">Sử dụng đồng hồ 24 giờ theo mặc định</translation> <translation id="5997846976342452720">Chỉ định xem có nên tắt trình tìm kiếm plugin hay không (không được dùng nữa)</translation> <translation id="5998198091336830580">Chính sách này thuộc nhóm không thể phân chia sau đây (chỉ áp dụng các chính sách thuộc nguồn có mức ưu tiên cao nhất trong nhóm):</translation> @@ -3467,9 +3438,6 @@ <translation id="603768430528561926">Nếu bạn không đặt hoặc đặt chính sách này thành Bật, thì người dùng thiết bị của doanh nghiệp sẽ có thể đổi ưu đãi bằng cách đăng ký<ph name="PRODUCT_OS_NAME" />. Nếu bạn đặt chính sách này thành Tắt, thì người dùng không thể đổi các ưu đãi này.</translation> -<translation id="6038407313189625985">Nếu bạn không đặt hoặc đặt chính sách này thành bật, thì tính năng Tính toàn vẹn của mã trình kết xuất sẽ bật. Bạn chỉ nên tắt chính sách này nếu gặp vấn đề về khả năng tương thích với phần mềm bên thứ ba. Phần mềm này phải chạy trong các quá trình xử lý trình kết xuất của Chrome. - - Khi tắt chính sách này, tính bảo mật và độ ổn định của Chrome sẽ bị ảnh hưởng bởi vì mã không xác định và có khả năng gây hại sẽ được phép tải trong các quá trình xử lý trình kết xuất của Chrome. Vui lòng tham khảo https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies để biết thêm thông tin.</translation> <translation id="6048199181629830227">Bật tính năng quản lý nguồn điện khi chuyển đổi vào giờ cao điểm</translation> <translation id="6054485492411959335">Chỉ định những máy in mà người dùng có thể sử dụng. @@ -3638,7 +3606,7 @@ Để biết thông tin chi tiết về <ph name="CORS" />, hãy truy cập: <ph name="CORS_HELP_URL" />. Xin lưu ý rằng chúng tôi đã thông báo việc loại bỏ chính sách này trong <ph name="PRODUCT_NAME" /> phiên bản 82. Tuy nhiên, chính sách này sẽ bị loại bỏ trong phiên bản 84.</translation> -<translation id="6279722058145292462">Nếu bạn đặt chính sách này, hệ thống sẽ chỉ định tần suất (tính theo ngày) mà một máy khách sẽ thay đổi mật khẩu tài khoản cho máy của mình. Mật khẩu do máy khách tạo ngẫu nhiên và không hiển thị với người dùng. Việc tắt chính sách này hoặc đặt một giá trị lớn cho số ngày có thể ảnh hưởng tiêu cực đến tính bảo mật vì kẻ tấn công sẽ có thêm thời gian tìm ra mật khẩu tài khoản của máy và sử dụng mật khẩu đó. +<translation id="6279722058145292462">Nếu bạn đặt chính sách này, hệ thống sẽ chỉ định tần suất (tính theo ngày) mà một máy khách sẽ thay đổi mật khẩu tài khoản cho máy của mình. Mật khẩu do máy khách tạo ngẫu nhiên và không hiển thị với người dùng. Việc tắt chính sách này hoặc đặt một số ngày lớn hơn có thể ảnh hưởng tiêu cực đến tính bảo mật vì kẻ tấn công sẽ có thêm thời gian tìm ra mật khẩu tài khoản của máy và sử dụng mật khẩu đó. Nếu bạn không đặt chính sách này thì cứ sau 30 ngày, mật khẩu tài khoản của máy sẽ được thay đổi 1 lần. @@ -3790,7 +3758,7 @@ Nếu bạn không đặt chính sách này, sẽ không có hạn chế nào do chính sách này áp dụng cho một số ứng dụng mà người dùng có thể bật trên màn hình khóa.</translation> <translation id="6506486086262398387">Nếu bạn đặt chính sách này thành Bật, tính năng Chia sẻ tệp trong mạng của <ph name="PRODUCT_OS_NAME" /> sẽ sử dụng NTLM để xác thực các lượt chia sẻ SMB nếu cần. Nếu bạn đặt chính sách này thành Tắt, tính năng xác thực bằng NTLM cho các lượt chia sẻ SMB sẽ bị tắt. - Nếu bạn không đặt chính sách này, chế độ hoạt động mặc định sẽ là tắt đối với người dùng được quản lý và bật đối với người dùng khác.</translation> + Nếu bạn không đặt chính sách này, chế độ mặc định sẽ là tắt đối với người dùng được quản lý và bật đối với người dùng khác.</translation> <translation id="6515357889978918016">Hình ảnh <ph name="PLUGIN_VM_NAME" /></translation> <translation id="6518102411616460786">Chờ để kênh đích bắt kịp phiên bản hiện tại trong quá trình hạ cấp kênh</translation> <translation id="6520802717075138474">Nhập công cụ tìm kiếm từ trình duyệt mặc định trong lần chạy đầu tiên</translation> @@ -3821,15 +3789,15 @@ <translation id="6559057113164934677">Không cho phép bất kỳ trang web nào truy cập vào máy ảnh và micrô</translation> <translation id="6559475864956112261">Chính sách này không còn dùng nữa, vui lòng sử dụng <ph name="PROXY_SETTINGS_POLICY_NAME" />. - Nếu đặt chính sách này thành Bật, bạn có thể chỉ định máy chủ proxy mà Chrome sẽ sử dụng và ngăn người dùng thay đổi tùy chọn cài đặt proxy. Chrome và các ứng dụng dùng App Runtime for Chrome (ARC) sẽ bỏ qua mọi tùy chọn liên quan đến proxy được chỉ định thông qua dòng lệnh. Chính sách này chỉ có hiệu lực nếu bạn chưa chỉ định chính sách <ph name="PROXY_SETTINGS_POLICY_NAME" />. + Nếu đặt chính sách này thành Bật, bạn có thể chỉ định máy chủ proxy mà Chrome sẽ sử dụng và ngăn người dùng thay đổi các tùy chọn cài đặt proxy. Chrome và các ứng dụng dùng App Runtime for Chrome (ARC) sẽ bỏ qua mọi tùy chọn liên quan đến proxy được chỉ định thông qua dòng lệnh. Chính sách này chỉ có hiệu lực nếu bạn chưa chỉ định chính sách <ph name="PROXY_SETTINGS_POLICY_NAME" />. Hệ thống sẽ bỏ qua những tùy chọn khác nếu bạn chọn: * <ph name="PROXY_MODE_ENUM_DIRECT" /> = Không bao giờ sử dụng máy chủ proxy và luôn kết nối trực tiếp - * <ph name="PROXY_MODE_ENUM_SYSTEM" /> = Sử dụng tùy chọn cài đặt proxy của hệ thống + * <ph name="PROXY_MODE_ENUM_SYSTEM" /> = Sử dụng các tùy chọn cài đặt proxy của hệ thống * <ph name="PROXY_MODE_ENUM_AUTO_DETECT" /> = Tự động phát hiện máy chủ proxy Nếu bạn chọn sử dụng: - * <ph name="PROXY_MODE_ENUM_FIXED_SERVERS" /> = Máy chủ proxy cố định. Bạn có thể chỉ định thêm tùy chọn trong <ph name="PROXY_SERVER_POLICY_NAME" /> và <ph name="PROXY_BYPASS_LIST_POLICY_NAME" />. Chỉ máy chủ proxy HTTP có mức ưu tiên cao nhất mới dùng được cho các ứng dụng dùng App Runtime for Chrome (ARC). + * <ph name="PROXY_MODE_ENUM_FIXED_SERVERS" /> = Máy chủ proxy cố định. Bạn có thể chỉ định thêm tùy chọn bằng <ph name="PROXY_SERVER_POLICY_NAME" /> và <ph name="PROXY_BYPASS_LIST_POLICY_NAME" />. Chỉ máy chủ proxy HTTP có mức ưu tiên cao nhất mới dùng được cho các ứng dụng dùng App Runtime for Chrome (ARC). * <ph name="PROXY_MODE_ENUM_PAC_SCRIPT" /> = Một tập lệnh proxy .pac. Sử dụng <ph name="PROXY_PAC_URL_POLICY_NAME" /> để thiết lập URL dẫn tới một tệp proxy .pac. Nếu bạn không đặt chính sách này, người dùng có thể chọn các tùy chọn cài đặt proxy. @@ -4779,9 +4747,6 @@ Lưu ý: Hiện tại, tự động khởi động lại chỉ được bật khi màn hình đăng nhập đang được hiển thị hoặc phiên ứng dụng kiosk đang diễn ra. Điều này sẽ thay đổi trong tương lai và chính sách sẽ luôn áp dụng, bất kể phiên thuộc loại cụ thể bất kỳ có đang diễn ra hay không.</translation> <translation id="7701341006446125684">Đặt kích thước bộ nhớ đệm của tiện ích và ứng dụng (bằng byte)</translation> -<translation id="7709537117200051035">Từ điển ánh xạ các tên máy chủ đến cờ boolean chỉ định cho phép (true) hay chặn (false) quyền truy cập đến máy chủ lưu trữ. - - Chính sách này dành cho <ph name="PRODUCT_NAME" /> sử dụng nội bộ.</translation> <translation id="7710950688502974809">Danh sách các tùy chọn cài đặt dịch vụ Chrome Enterprise Connectors sẽ áp dụng cho Trình kết nối <ph name="ON_BULK_DATA_ENTRY_ENTERPRISE_CONNECTOR" /> của Enterprise. Trình kết nối này sẽ chạy khi người dùng nhập dữ liệu vào Chrome từ khay nhớ tạm hoặc bằng cách kéo và thả nội dung trên web. Các trường <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> và <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> dùng để xác định xem trình kết nối có gửi dữ liệu đi để phân tích hay không khi người dùng nhập dữ liệu vào một trang cụ thể và thẻ nào cần thêm vào yêu cầu phân tích cho dữ liệu đó. Nếu URL của trang khớp với mẫu liên kết với thẻ đó, thì hệ thống sẽ thêm một thẻ tương ứng với mẫu 'enable' vào yêu cầu phân tích chừng nào không còn mẫu 'disable' có thẻ như vậy khớp với URL của trang. Quá trình phân tích sẽ diễn ra nếu hệ thống thêm ít nhất 1 thẻ vào yêu cầu. @@ -4929,7 +4894,6 @@ Nếu bạn bật hoặc tắt tùy chọn cài đặt này, người dùng sẽ không thể thay đổi hoặc ghi đè tùy chọn cài đặt này trong <ph name="PRODUCT_NAME" />. Nếu bạn không đặt chính sách này, tùy chọn cài đặt nói trên sẽ được bật nhưng người dùng có thể thay đổi tùy chọn đó.</translation> -<translation id="7953256619080733119">Lưu trữ ngoại lệ hướng dẫn người dùng được quản lý</translation> <translation id="7956210013490975468">Định cấu hình dịch vụ Proxy hệ thống cho <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="7958537754689366707">Yêu cầu cứ 12 giờ nhập mật khẩu một lần</translation> <translation id="7961779417826583251">Tắt mục cài đặt buộc thực thi Tính minh bạch của chứng chỉ cho một danh sách Tổ chức phát hành chứng chỉ kế thừa</translation> @@ -5157,11 +5121,6 @@ Nếu bạn đặt chính sách này, thì người dùng sẽ không thể thay đổi hay ghi đè chính sách. Nếu bạn không đặt chính sách này, thì ban đầu, tính năng đọc chính tả sẽ tắt nhưng người dùng có thể bật bất cứ lúc nào.</translation> -<translation id="829337533107201925">Nếu bạn bật chính sách này, thì các chính sách từ một nhóm không thể phân chia không có chung nguồn với các chính sách có mức độ ưu tiên cao nhất trong nhóm đó sẽ bị bỏ qua. - - Nếu bạn tắt chính sách này, thì sẽ không có chính sách nào bị bỏ qua do nguồn liên quan nữa. Các chính sách sẽ chỉ bị bỏ qua nếu có xung đột và chính sách này không có mức độ ưu tiên cao nhất. - - Nếu bạn đặt chính sách này từ một nguồn trên đám mây, thì chính sách sẽ không thể nhắm đến một người dùng cụ thể</translation> <translation id="8294750666104911727">Thông thường các trang có Tương thích với X-UA được đặt thành chrome=1 sẽ được hiển thị trong <ph name="PRODUCT_FRAME_NAME" /> bất kể chính sách 'ChromeFrameRendererSettings'. Nếu bạn bật cài đặt này, trang sẽ không được quét tìm thẻ meta. @@ -5367,7 +5326,6 @@ <translation id="8544375438507658205">Trình hiển thị HTML mặc định dành cho <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="8544465954173828789">Cho phép đồng bộ hóa Tin nhắn SMS từ điện thoại sang Chromebook.</translation> <translation id="8548832052135586762">Đặt chế độ in thành chỉ in màu, chỉ in đen trắng hoặc không có hạn chế về chế độ in màu. Khi bạn không đặt chính sách, thì sẽ không có hạn chế nào.</translation> -<translation id="8549772397068118889">Cảnh báo khi truy cập vào các trang web nằm ngoài gói nội dung</translation> <translation id="8566842294717252664">Ẩn cửa hàng trực tuyến khỏi trang thẻ mới và trình chạy ứng dụng</translation> <translation id="8569734380847633643"> Nếu bạn đặt chính sách này thành false, thì <ph name="PRODUCT_OS_NAME" /> sẽ tắt Wi-Fi và người dùng không thể bật lại. @@ -5487,7 +5445,6 @@ Nếu bạn đặt chính sách này, người dùng sẽ không thể thay đổi hay ghi đè chính sách. Chính sách này không ảnh hưởng đến việc người dùng có thể định cấu hình máy in trên từng thiết bị hay không. Chính sách này nhằm bổ sung cho quá trình định cấu hình máy in theo từng người dùng.</translation> -<translation id="8764477907716150749">Chính sách này được <ph name="PRODUCT_NAME" /> sử dụng nội bộ.</translation> <translation id="8767743923206070405">Việc đặt chính sách này thành Bật sẽ hiển thị nút Trang chủ trên thanh công cụ của <ph name="PRODUCT_NAME" />. Nếu bạn đặt chính sách này thành Tắt, nút Trang chủ sẽ không xuất hiện. Nếu bạn đặt chính sách này, người dùng sẽ không thay đổi được trong <ph name="PRODUCT_NAME" />. Nếu bạn không đặt chính sách này, người dùng sẽ chọn liệu có hiển thị nút Trang chủ hay không.</translation>
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb index 9b4e7e8..9e14e0c9 100644 --- a/components/policy/resources/policy_templates_zh-CN.xtb +++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -201,11 +201,6 @@ 如果此政策设为 false,<ph name="PRODUCT_NAME" /> 将禁止使用访客个人资料登录。</translation> <translation id="1363275621236827384">允许在 Quirks Server 中查询硬件配置文件</translation> <translation id="1376119291123231789">启用高级电池充电模式</translation> -<translation id="1378850678793136128">让您能够设置一系列网址格式,从而指定自动授权哪些网站在登录屏幕上访问具有给定供应商 ID 和产品 ID 的 USB 设备。每个列表项都必须包含“devices”和“urls”字段,此政策才有效。“devices”字段中的每项内容都可以包含“vendor_id”和“product_id”字段。如果您省略“vendor_id”字段,系统将会创建一项与所有设备都匹配的政策。如果您省略“product_id”字段,系统将会创建一项与所有具有给定供应商 ID 的设备都匹配的政策。包含“product_id”字段但不含“vendor_id”字段的政策无效。 - - USB 权限模型会使用发出相应请求的网站的网址(“请求网址”)和顶级框架网站的网址(“嵌入网址”)来授权请求网址访问相应 USB 设备。如果发出请求的网站是在 iframe 中加载的,请求网址可能会与嵌入网址不同。因此,“urls”字段最多可包含 2 个以英文逗号分隔的网址字符串,以分别指定请求网址和嵌入网址。如果仅指定了 1 个网址,那么无论嵌入状态为何,系统都会在请求网站的网址与这个网址相符时授权该网站访问相应 USB 设备。“urls”字段中的网址必须是有效网址,否则系统会忽略此政策。 - - 如果此政策未设置,系统将会对所有网站使用全局默认值(不自动授予访问权限)。</translation> <translation id="1384459581748403878">参考页面:<ph name="REFERENCE_URL" /></translation> <translation id="138847842893090358">报告操作系统更新状态</translation> <translation id="1390901586107713894">让您能够指定禁止用户安装的扩展程序。系统会停用被屏蔽的已安装扩展程序,而且用户无法以任何方式启用这些扩展程序。如果某个因被列入屏蔽名单而遭停用的扩展程序被从屏蔽名单中移除了,系统会自动重新启用该扩展程序。 @@ -433,12 +428,6 @@ 如果此政策未设置,当设备上的可用磁盘空间少于 20 GB(默认值)时,<ph name="PLUGIN_VM_NAME" /> 安装会失败。 如果您设置了此政策,当设备上的可用磁盘空间少于此政策规定的数值时,<ph name="PLUGIN_VM_NAME" /> 安装会失败。</translation> -<translation id="1695708467571967752">此政策用于控制用户是否能够在设备锁定时播放媒体。 - - 如果将此政策设为 False,系统会停用锁定屏幕上的媒体控件。 - - 如果将此政策设置为 True 或未设置此政策,那么当用户在媒体播放时锁定设备时,锁定屏幕上会显示媒体控件。 - </translation> <translation id="1700811900332333712">允许设备请求 Powerwash</translation> <translation id="1708496595873025510">对变体种子的提取设置限制条件</translation> <translation id="171511968762040550">如果此政策设为 True 或未设置,用户可以添加、移除或修改书签。 @@ -643,10 +632,9 @@ 如果停用了此设置,系统将禁止进行文件传输。如果启用了或未设定此设置,系统将允许进行文件传输。</translation> <translation id="2057317273526988987">允许访问指定的一系列网址</translation> <translation id="2061810934846663491">为远程访问主机配置所需的域名</translation> -<translation id="2067011586099792101">禁止访问非内容包内的网站</translation> -<translation id="2069350366303315077">如果此政策已启用,<ph name="PRODUCT_NAME" /> 会强制启动访客会话并禁止登录个人资料。访客身份是一类 <ph name="PRODUCT_NAME" /> 个人资料;使用此类个人资料登录后,窗口均会处于无痕模式。 +<translation id="2069350366303315077">如果此政策已启用,<ph name="PRODUCT_NAME" /> 会强制启动访客会话并禁止登录个人资料。访客身份是一类特殊的 <ph name="PRODUCT_NAME" /> 个人资料;使用此类个人资料打开的窗口均会处于无痕模式。 - 如果此政策已停用或未设置,或者浏览器访客模式已停用(通过 <ph name="BROWSER_GUEST_MODE_ENABLED_POLICY_NAME" />),系统将允许使用新的和现有的个人资料。</translation> + 如果此政策已停用或未设置,或者浏览器访客模式已停用(通过 <ph name="BROWSER_GUEST_MODE_ENABLED_POLICY_NAME" /> 进行设置),系统将允许使用新的和现有的个人资料。</translation> <translation id="2073552873076775140">允许登录 <ph name="PRODUCT_NAME" /></translation> <translation id="2075732129949889165">Crostini Ansible Playbook</translation> <translation id="2077129598763517140">使用硬件加速模式(如果可用)</translation> @@ -986,7 +974,7 @@ 如果您未设置此政策,系统将不会显示《服务条款》。 - 此政策的值应设为一个可供 <ph name="PRODUCT_OS_NAME" />用来下载《服务条款》的网址。《服务条款》必须是纯文本,以 MIME 类型 text/plain 提供,且不得使用任何标记。</translation> + 此政策的值应设为一个可供 <ph name="PRODUCT_OS_NAME" />用来下载《服务条款》的网址。《服务条款》必须是纯文本,提供形式为 MIME 类型 text/plain,且不得使用任何标记。</translation> <translation id="2502467045153796624">版本降级行为</translation> <translation id="250670737672448119">启用“插入符号突出显示”无障碍功能。 @@ -1173,11 +1161,11 @@ <translation id="2759224876420453487">控制多用户配置会话中的用户行为</translation> <translation id="2759426227259007018">通过设置此政策,您可以指定用户能在 <ph name="PRODUCT_OS_NAME" />锁定屏幕中将哪些应用作为笔记应用开启。 - 如果首选的应用已在锁定屏幕中,屏幕上将会显示用于启动首选笔记应用的界面元素。启动后,该应用便可在锁定屏幕之上创建窗口,并在此情境中创建笔记。当主要用户会话解锁时,该应用便可将所创建的笔记导入此会话中。目前,锁定屏幕上仅支持 <ph name="PRODUCT_NAME" /> 笔记应用。 + 如果首选的应用已添加到锁定屏幕中,屏幕上将会显示用于启动首选笔记应用的界面元素。启动后,该应用便可在锁定屏幕之上创建窗口,并在此情境中创建笔记。当主要用户会话解锁时,该应用便可将所创建的笔记导入此会话中。目前,锁定屏幕上仅支持 <ph name="PRODUCT_NAME" /> 笔记应用。 - 如果您设置了此政策,仅当此政策的列表值包含某个应用的扩展程序 ID 时,用户才能在锁定屏幕上开启该应用。所以,如果您将此政策设为空列表,系统就会关闭锁定屏幕上的笔记功能。即使此政策的值包含某个应用 ID,也未必意味着用户一定能在锁定屏幕上将该应用作为笔记应用开启。例如,在 <ph name="PRODUCT_NAME" /> 61 中,可用应用集还会受到平台的限制。 + 如果您设置了此政策,仅当此政策的列表值包含某个应用的扩展程序 ID 时,用户才能在锁定屏幕上开启该应用。所以,如果您将此政策设为空列表,系统就会关闭锁定屏幕上的笔记功能。即使此政策的值包含某个应用 ID,用户也未必能在锁定屏幕上将该应用作为笔记应用开启。例如,在 <ph name="PRODUCT_NAME" /> 61 中,可用应用集还会受到平台的限制。 - 如果您未设置此政策,系统便不会对用户能在锁定屏幕上启用的应用集强加任何限制。</translation> + 如果您未设置此政策,此政策便不会对用户能在锁定屏幕上启用的应用集施加任何限制。</translation> <translation id="2761483219396643566">使用电池供电时的闲置警告延迟时间</translation> <translation id="2765601181281280493">通过设置此政策,您可以创建一个网址格式列表,从而指定哪些网站无法请求用户授权其访问串行端口。 @@ -1518,7 +1506,7 @@ 配置的网站将自动在其他浏览器(而非 <ph name="PRODUCT_NAME" />)中打开。</translation> <translation id="3255624750680556186">如果此政策已启用或未设置,系统会允许设备触发 Powerwash。 - 如果此政策已停用,系统将不允许设备触发 Powerwash。但例外情况是:如果为 <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_NAME" /> 设定的值允许 TPM 固件更新,且 TPM 固件尚未更新,系统将仍然允许设备触发 Powerwash。</translation> + 如果此政策已停用,系统将不允许设备触发 Powerwash。但例外情况是:如果为 <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_NAME" /> 设定的值允许 TPM 固件更新,但 TPM 固件尚未更新,系统将仍然允许设备触发 Powerwash。</translation> <translation id="3255762580838224124">如果您设置了此政策,那么每当重新启动时或在此政策的值更改后首次连接时,每个显示屏都会旋转到指定方向。用户可在登录后通过“设置”页面更改显示屏旋转角度,但下次重新启动时显示屏仍会遵从更改前的设置。此政策适用于主要显示屏和次要显示屏。 如果此政策未设置,默认值便是 0 度,但用户可以随意更改此值。如果用户更改了默认值,显示屏在重启时将不会重新应用此值。</translation> @@ -2084,7 +2072,6 @@ <translation id="4056910949759281379">停用 SPDY 协议</translation> <translation id="4061590579642538878">报告有关崩溃报告的信息。</translation> <translation id="4075675819066819571">将文件架放置到屏幕左侧</translation> -<translation id="4075864623710596000">此列表中指定的主机名将免受 HSTS 政策检查,该检查可能会将请求从 HTTP 升级到 HTTPS。此政策只允许使用单标签主机名。必须使用规范化主机名:任何 IDN 都必须转换为对应的 A 标签格式,并且所有 ASCII 字母都必须小写。此政策只适用于指定的特定主机名,不适用于指定名称的子网域。</translation> <translation id="408029843066770167">允许向 Google 时间服务发出查询</translation> <translation id="408076456549153854">允许登录浏览器</translation> <translation id="4082498585300984671">启用“点击通话”功能</translation> @@ -2194,9 +2181,6 @@ 如果此政策已停用,系统会关闭 <ph name="PRODUCT_NAME" />。</translation> <translation id="4203879074082863035">系统仅会向用户显示白名单中的打印机</translation> -<translation id="420512303455129789">将网址与布尔选项对应的字典,用于指定是允许 (true) 还是禁止 (false) 访问相应主机。 - - 此政策仅供 <ph name="PRODUCT_NAME" /> 在内部使用。</translation> <translation id="4209297478239988291">启用“自动点击”无障碍功能。 此功能让用户无需实际点按鼠标或触控板,只需将指针悬停在想点击的对象上即可进行点击。 @@ -2336,13 +2320,6 @@ <translation id="4494132853995232608">Wilco DTC</translation> <translation id="449423975179525290">配置与 <ph name="PLUGIN_VM_NAME" /> 相关的政策。</translation> <translation id="4498493270899294764">不检查下载内容是否包含恶意软件的网址格式</translation> -<translation id="450537894712826981">配置<ph name="PRODUCT_NAME" />将用于在磁盘上存储缓存媒体文件的缓存大小。 - - 如果您设置了此政策,那么无论用户是否已指定“--media-cache-size”标记,<ph name="PRODUCT_NAME" />都会使用此政策中设定的缓存大小。此政策中所指定的值并非硬性限值,而是针对缓存系统提出的建议值。任何低于几兆字节的值都会因为太小而被向上舍入到一个合理的最小值。 - - 如果此政策的值为0,系统将使用默认缓存大小,并且用户无法更改该默认值。 - - 如果未设置此政策,系统将使用默认缓存大小,并且用户可以使用“--media-cache-size”标记覆盖默认值。</translation> <translation id="4508084713148633492">借助此政策,您可以允许/禁止在磁盘空间不足时显示通知。此设置适用于设备上的所有用户。 如果受管理的设备上只有 1 个用户帐号,无论此政策的值为何,系统始终都会显示通知。 如果受管理的设备上有多个用户帐号,仅当此政策设为 True 时,系统才会显示通知。 @@ -2634,7 +2611,6 @@ 如果此政策已停用,系统会阻止 <ph name="PRODUCT_NAME" /> 发送此类查询。</translation> <translation id="5032164758660626397">阻止用户传输大型文件</translation> -<translation id="5047604665028708335">允许访问非内容包内的网站</translation> <translation id="5056708224511062314">放大镜已停用</translation> <translation id="5058573563327660283">选择在自动清理期间释放磁盘空间时采用的策略(已弃用)</translation> <translation id="5061114193960158745">通过设置此政策,您可以控制哪些网站始终不会导致切换浏览器。网站列表中的每项内容都会被视为一条规则。有匹配项的规则将不会打开备用浏览器。与 <ph name="URL_LIST_POLICY_NAME" /> 政策不同的是,此政策中的规则双向适用。如果 <ph name="IE_PRODUCT_NAME" /> 插件已开启,此政策还可控制 <ph name="IE_PRODUCT_NAME" /> 是否应在 <ph name="PRODUCT_NAME" /> 中打开这些网址。 @@ -3103,10 +3079,6 @@ 请注意,我们不建议启用此设置,因为这可能会允许绕过 nameConstraints 扩展项(用于限制可针对哪些主机名授权指定的证书)。 如果此政策未设置或设为 false,系统将不会信任包含 DNS 名称或 IP 地址但缺少 subjectAlternativeName 扩展项的服务器证书。</translation> -<translation id="5578571772998293651">允许用户提供反馈。 - 如果此政策设为 false,用户无法向 Google 发送反馈。 - - 如果未设置此政策或将其设为 true,用户可以通过依次点按“菜单”->“帮助”->“报告问题”或按下组合键来向 Google 发送反馈。</translation> <translation id="5579179012798142131">除非暂存模式或多帐号登录在用户会话期间保持开启状态,否则将 ArcEnabled 设为 True 会为用户开启 ARC。将此政策设为 False 或不设置意味着企业用户无法使用 ARC。</translation> <translation id="5582429816116769246">让您能够控制用户能否访问非企业打印机。 @@ -3367,7 +3339,6 @@ <translation id="5951418260805607969">在磁盘空间不足时显示通知</translation> <translation id="5961137303188584693">设备的内置 NIC MAC 地址</translation> <translation id="5966615072639944554">允许扩展程序使用 Remote Attestation API</translation> -<translation id="5983708779415553259">非任何内容包内的网站的默认行为</translation> <translation id="5997543603646547632">默认情况下,使用24小时制</translation> <translation id="5997846976342452720">指定是否应停用插件查找器(已弃用)</translation> <translation id="5998198091336830580">此政策是下面这个原子政策组的一部分(系统仅会应用该组中来源优先级最高的政策):</translation> @@ -3406,9 +3377,6 @@ <translation id="603768430528561926">如果此政策已启用或未设置,企业设备用户便可通过 <ph name="PRODUCT_OS_NAME" />注册流程来兑换优惠。 如果此政策已停用,用户将无法兑换这类优惠。</translation> -<translation id="6038407313189625985">如果此政策处于启用状态或未设置,则系统会启用“渲染程序代码完整性”。仅当必须在 Chrome 的渲染程序进程中运行的第三方软件遇到兼容性问题时,才应停用此政策。 - - 停用此政策会对 Chrome 的安全性和稳定性产生不利影响,因为在这种情况下,系统会允许未知的潜在恶意代码在 Chrome 的渲染程序进程中加载。如需了解详情,请参阅 https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies。</translation> <translation id="6048199181629830227">启用用电高峰转移电源管理</translation> <translation id="6054485492411959335">此政策旨在指定用户可以使用的打印机。 @@ -3623,7 +3591,7 @@ 如果此政策未设置或列表为空,则意味着所有协议在 <ph name="PRODUCT_NAME" /> 中都可用。</translation> <translation id="6338982178236723271">报告系统信息</translation> <translation id="6342187235303612558">禁止用户上传或下载目前不支持数据泄露防护或恶意软件扫描的文件。</translation> -<translation id="6353890097388312479">如果此政策设为“All (0)”或未设置,用户便可修改所有 CA 证书的信任设置、移除用户导入的证书以及使用证书管理器导入证书。如果此政策设为“UserOnly (1)”,用户将仅能管理用户导入的证书,但无法更改内置证书的信任设置。如果此政策设为“None (2)”,用户可以查看(但无法管理)CA 证书。</translation> +<translation id="6353890097388312479">如果此政策设为“All (0)”或未设置,用户便可修改所有 CA 证书的信任设置、移除用户导入的证书并使用证书管理器导入证书。如果此政策设为“UserOnly (1)”,用户将仅能管理用户导入的证书,但无法更改内置证书的信任设置。如果此政策设为“None (2)”,用户可以查看(但无法管理)CA 证书。</translation> <translation id="6366574325767783825">如果此政策设为 True 或未设置,<ph name="PRODUCT_NAME" /> 将会接受通过 Signed HTTP Exchange (SXG) 提供的网络内容。 如果此政策设为 False,系统会阻止加载 Signed HTTP Exchange (SXG) 内容。</translation> @@ -3719,11 +3687,11 @@ 通过设置此政策,您可以指定用户能在 <ph name="PRODUCT_OS_NAME" />锁定屏幕中将哪些应用作为笔记应用开启。 - 如果首选的应用已在锁定屏幕中,屏幕上将会显示用于启动首选笔记应用的界面元素。启动后,该应用便可在锁定屏幕之上创建窗口,并在此情境中创建笔记。当主要用户会话解锁时,该应用便可将所创建的笔记导入此会话中。目前,锁定屏幕上仅支持 <ph name="PRODUCT_NAME" /> 笔记应用。 + 如果首选的应用已添加到锁定屏幕中,屏幕上将会显示用于启动首选笔记应用的界面元素。启动后,该应用便可在锁定屏幕之上创建窗口,并在此情境中创建笔记。当主要用户会话解锁时,该应用便可将所创建的笔记导入此会话中。目前,锁定屏幕上仅支持 <ph name="PRODUCT_NAME" /> 笔记应用。 - 如果您设置了此政策,仅当此政策的列表值包含某个应用的扩展程序 ID 时,用户才能在锁定屏幕上开启该应用。所以,如果您将此政策设为空列表,系统就会关闭锁定屏幕上的笔记功能。即使此政策的值包含某个应用 ID,也未必意味着用户一定能在锁定屏幕上将该应用作为笔记应用开启。例如,在 <ph name="PRODUCT_NAME" /> 61 中,可用应用集还会受到平台的限制。 + 如果您设置了此政策,仅当此政策的列表值包含某个应用的扩展程序 ID 时,用户才能在锁定屏幕上开启该应用。所以,如果您将此政策设为空列表,系统就会关闭锁定屏幕上的笔记功能。即使此政策的值包含某个应用 ID,用户也未必能在锁定屏幕上将该应用作为笔记应用开启。例如,在 <ph name="PRODUCT_NAME" /> 61 中,可用应用集还会受到平台的限制。 - 如果您未设置此政策,系统便不会对用户能在锁定屏幕上启用的应用集强加任何限制。</translation> + 如果您未设置此政策,此政策便不会对用户能在锁定屏幕上启用的应用集施加任何限制。</translation> <translation id="6506486086262398387">如果此政策已启用,适用于 <ph name="PRODUCT_OS_NAME" />的网络文件共享功能会酌情使用 NTLM 对 SMB 共享文件进行身份验证。如果此政策已停用,系统会关闭对 SMB 共享文件的 NTLM 身份验证机制。 如果您未设置此政策,系统的默认行为就会是:为受管用户停用此政策,并为其他用户启用此政策。</translation> @@ -4704,9 +4672,6 @@ 请注意:目前,系统仅在显示登录屏幕或正在访问自助服务终端应用时才会启用自动重启。这在日后会有所改变,但此政策将始终适用,无论是否正在进行任何特殊类型的会话。</translation> <translation id="7701341006446125684">设置应用和扩展程序缓存大小(以字节为单位)</translation> -<translation id="7709537117200051035">将主机名与布尔选项对应的字典,用于指定是允许 (true) 还是禁止 (false) 访问相应主机。 - - 此政策仅供 <ph name="PRODUCT_NAME" /> 在内部使用。</translation> <translation id="7710950688502974809">让您能够指定一系列要应用于 <ph name="ON_BULK_DATA_ENTRY_ENTERPRISE_CONNECTOR" /> 企业版接口的 Chrome 企业版接口服务设置,以供系统在下述情况发生时调用:有人通过复制剪贴板内容或拖放网页内容在 Chrome 中输入数据。 <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />、<ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />、<ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> 和 <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> 字段用于确定当用户在特定网页中输入数据后,该接口是否应发送此数据进行分析,以及要将哪些标记添加到针对此数据的分析请求中。如果相应的网页网址与“enable”格式所对应的某个标记相匹配,那么只要所有包含这个标记的“disable”格式与此网页网址都不匹配,该接口便会将这个标记添加到分析请求中。如果该接口向分析请求中添加了至少 1 个标记,分析服务便会分析输入的数据。 @@ -4854,7 +4819,6 @@ 如果您启用或停用了此设置,用户将无法在 <ph name="PRODUCT_NAME" /> 中更改或替换此设置。 如果未设置此政策,系统将会启用此政策,但用户可以自行更改。</translation> -<translation id="7953256619080733119">托管用户手动管理的例外主机</translation> <translation id="7956210013490975468">为 <ph name="PRODUCT_OS_NAME" />配置系统代理服务。</translation> <translation id="7958537754689366707">必须每 12 小时输入一次密码</translation> <translation id="7961779417826583251">对于指定的一系列旧版证书授权机构,不强制执行证书透明化要求</translation> @@ -5073,11 +5037,6 @@ 如果您设置了此政策,用户将无法更改或覆盖它。 如果未设置此政策,则“语音输入”最初会处于停用状态,但用户可以随时启用该功能。</translation> -<translation id="829337533107201925">如果启用了此政策,那么对于同一政策原子组,系统将忽略组内与具有最高优先级的政策不属于同一来源的政策。 - - 如果停用了此政策,则系统不会因来源而忽略任何政策。仅当相应政策与其他政策冲突且不具有最高优先级时,系统才会忽略它们。 - - 如果此政策是根据云端来源而设置的,则无法针对特定用户</translation> <translation id="8294750666104911727">XX-UA-Compatible 设置为chrome=1的网页通常在“<ph name="PRODUCT_FRAME_NAME" />”中进行渲染,而不考虑“ChromeFrameRendererSettings”政策。 如果启用了该设置,将不扫描网页的元标记。 @@ -5275,7 +5234,6 @@ <translation id="8544375438507658205">默认 HTML 呈现器为“<ph name="PRODUCT_FRAME_NAME" />”</translation> <translation id="8544465954173828789">允许将短信从手机同步到 Chromebook。</translation> <translation id="8548832052135586762">将打印模式设置为仅限彩色打印、仅限单色打印或无颜色模式限制。如果未设置此政策,则会被视为无限制。</translation> -<translation id="8549772397068118889">访问非内容包内的网站时发出警告</translation> <translation id="8566842294717252664">在“打开新的标签页”页面和应用启动器中不显示网上应用店</translation> <translation id="8569734380847633643"> 如果此政策设为 false,<ph name="PRODUCT_OS_NAME" />将停用 Wi-Fi,并且用户无法重新启用 Wi-Fi。 @@ -5395,7 +5353,6 @@ 如果您设置了此政策,用户便无法更改或覆盖它。 此政策对用户能否在各部设备上配置打印机没有影响。它旨在对各用户的打印机配置进行补充。</translation> -<translation id="8764477907716150749">此政策仅供 <ph name="PRODUCT_NAME" /> 在内部使用。</translation> <translation id="8767743923206070405">如果此政策已启用,系统会在 <ph name="PRODUCT_NAME" /> 的工具栏中显示“主页”按钮。如果此政策已停用,系统不会显示“主页”按钮。 如果您设置了此政策,用户将无法在 <ph name="PRODUCT_NAME" /> 中更改它。如果您未设置此政策,用户便可自行选择是否显示“主页”按钮。</translation>
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb index 11187a1..e42cb9c9 100644 --- a/components/policy/resources/policy_templates_zh-TW.xtb +++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -201,11 +201,6 @@ 如果將這項政策設為 False,<ph name="PRODUCT_NAME" /> 將會禁止啟動訪客設定檔。</translation> <translation id="1363275621236827384">允許在 Quirks Server 中查詢硬體設定檔</translation> <translation id="1376119291123231789">啟用進階充電模式</translation> -<translation id="1378850678793136128">這項政策可讓你設定網址模式清單,指定哪些網站會自動取得權限,能夠存取具備登入畫面中所指定廠商和產品 ID 的 USB 裝置。每個清單項目都必須包含「devices」和「urls」欄位,這項政策才會生效。「devices」欄位中的每個項目皆可包含「vendor_id」和「product_id」欄位。如果略過「vendor_id」欄位,系統建立的政策將涵蓋所有裝置。如果略過「product_id」欄位,系統建立的政策將涵蓋所有具備指定廠商 ID 的裝置。要是政策包含「product_id」欄位,但缺少「vendor_id」欄位,將無法生效。 - - USB 權限模型會使用要求網站的網址 (簡稱「要求網址」) 以及頂層頁框網站的網址 (簡稱「嵌入網址」),將 USB 裝置的存取權授予要求網址。如果要求網站是透過 iframe 載入,要求網址可能會與嵌入網址有所不同。因此,「urls」欄位最多可包含兩個網址字串 (以半形逗號分隔),以分別指定要求網址和嵌入網址。如果只指定一個網址,當要求網站的網址與這個網址相符時,不論其是否為嵌入網址,系統都會授予相應 USB 裝置的存取權。「urls」中的網址必須是有效網址,否則系統將忽略這項政策。 - - 如果不設定這項政策,所有網站都將使用全域預設值 (不會自動取得存取權)。</translation> <translation id="1384459581748403878">參考頁面:<ph name="REFERENCE_URL" /></translation> <translation id="138847842893090358">回報作業系統的更新狀態</translation> <translation id="1390901586107713894">這項政策可讓你指定禁止使用者安裝的擴充功能。如果封鎖了已安裝的擴充功能,系統會停用該擴充功能,且使用者無法以任何方式啟用。將因為列入封鎖清單而遭到停用的擴充功能從清單中移除後,系統將自動重新啟用該擴充功能。 @@ -430,12 +425,6 @@ 如果不設定這項政策,當裝置上的可用磁碟空間小於 20 GB (預設值) 時,系統將無法安裝 <ph name="PLUGIN_VM_NAME" />。 如果設定這項政策,當裝置上的可用磁碟空間小於政策所要求的值時,系統將無法安裝 <ph name="PLUGIN_VM_NAME" />。</translation> -<translation id="1695708467571967752">這項政策可控管使用者是否能夠在裝置鎖定的情況下播放媒體。 - - 如果將這項政策設為 False,系統會停用鎖定畫面上的媒體控制項。 - - 如果將這項政策設為 True 或不予設定,當使用者在播放媒體時鎖定裝置,鎖定畫面上會顯示媒體控制項。 - </translation> <translation id="1700811900332333712">允許裝置要求執行 Powerwash</translation> <translation id="1708496595873025510">設定變異版本種子的擷取限制</translation> <translation id="171511968762040550">如果將這項政策設為 True 或不設定,使用者可以新增、移除或修改書籤。 @@ -639,7 +628,6 @@ 如果停用這項政策,使用者將無法傳輸檔案。如果啟用或不設定這項政策,使用者將可以傳輸檔案。</translation> <translation id="2057317273526988987">允許存取網址清單</translation> <translation id="2061810934846663491">為遠端存取主機設定必要的網域名稱</translation> -<translation id="2067011586099792101">禁止存取內容套件以外的網站</translation> <translation id="2069350366303315077">如果將這項政策設為啟用,<ph name="PRODUCT_NAME" /> 會強制執行訪客工作階段,並禁止使用者登入設定檔。訪客可以登入 <ph name="PRODUCT_NAME" /> 設定檔,登入後,視窗會以無痕模式開啟。 如果將這項政策設為停用或不設定,或是透過 <ph name="BROWSER_GUEST_MODE_ENABLED_POLICY_NAME" /> 停用瀏覽器訪客模式,系統會允許使用新的設定檔和現有設定檔。</translation> @@ -2074,7 +2062,6 @@ <translation id="4056910949759281379">停用 SPDY 通訊協定</translation> <translation id="4061590579642538878">回報當機報告相關資訊。</translation> <translation id="4075675819066819571">將檔案櫃放在畫面的左側</translation> -<translation id="4075864623710596000">這份清單中指定的主機名稱會從 HTTP 嚴格傳輸安全性政策檢查作業中排除,該檢查可能會將要求從 HTTP 升級為 HTTPS。這項政策只允許單一標籤主機名稱。主機名稱必須標準化:任何 IDN 都必須轉換為單一標籤格式,且所有 ASCII 字母都必須使用小寫。這項政策只適用於指定的主機名稱,不適用於指定主機名稱的子網域。</translation> <translation id="408029843066770167">允許向 Google 時間服務傳送查詢</translation> <translation id="408076456549153854">允許登入瀏覽器</translation> <translation id="4082498585300984671">啟用「點選通話」功能</translation> @@ -2185,9 +2172,6 @@ 如果將這項政策設為停用,系統會關閉 <ph name="PRODUCT_NAME" />。</translation> <translation id="4203879074082863035">僅對使用者顯示許可清單中的印表機</translation> -<translation id="420512303455129789">將網址對應至布林值標記的字典,以指定 Chrome 是否能存取主機。允許值為 True,封鎖值為 False。 - - 這項政策僅供 <ph name="PRODUCT_NAME" /> 內部使用。</translation> <translation id="4209297478239988291">啟用自動點擊無障礙功能。 這項功能可讓你不需實際按下滑鼠或觸控板即可點擊物件,只要將游標懸停在你要點擊的物件上即可。 @@ -2329,13 +2313,6 @@ <translation id="4494132853995232608">Wilco DTC</translation> <translation id="449423975179525290">設定 <ph name="PLUGIN_VM_NAME" /> 的相關政策。</translation> <translation id="4498493270899294764">不須檢查下載內容是否包含惡意軟體的網址模式</translation> -<translation id="450537894712826981">設定快取大小,供 <ph name="PRODUCT_NAME" /> 在磁碟中儲存快取媒體檔案時套用。 - - 如果設定這項政策,則不論使用者是否指定「--media-cache-size」參數,<ph name="PRODUCT_NAME" /> 都會使用政策提供的快取大小。在這項政策中指定的值是對快取系統的建議值,而非不可變動的界限。如果是不到幾 MB 的值,由於太小的緣故,系統會進位到合適的最小值。 - - 如果這項政策的值為 0,系統會使用預設快取大小,但使用者無法變更。 - - 如果未設定這項政策,系統會使用預設大小,使用者則可使用 -media-cache-size 參數予以覆寫。</translation> <translation id="4508084713148633492">允許在磁碟空間不足時啟用或停用通知。這項設定將會套用至這部裝置的所有使用者。 如果受管理的裝置上只有一個使用者帳戶,則無論這項政策的值為何,系統都會顯示通知。 如果受管理的裝置上有多個使用者帳戶,只有當這項政策的值為 True 時,系統才會顯示通知。 @@ -2629,7 +2606,6 @@ 如果將這項政策設為停用,系統會禁止 <ph name="PRODUCT_NAME" /> 傳送這類查詢。</translation> <translation id="5032164758660626397">禁止使用者傳輸大型檔案</translation> -<translation id="5047604665028708335">允許存取內容套件以外的網站</translation> <translation id="5056708224511062314">已停用螢幕放大鏡</translation> <translation id="5058573563327660283">選取自動清理時用來釋出磁碟空間的策略 (已不適用)</translation> <translation id="5061114193960158745">你可以透過這項政策,控管一律不觸發瀏覽器切換的網站清單。系統會將每個項目視為規則。相符的規則不會開啟替代瀏覽器。這項政策與 <ph name="URL_LIST_POLICY_NAME" /> 政策的不同之處在於,規則為雙向適用。如果 <ph name="IE_PRODUCT_NAME" /> 增益集已啟用,這項政策也會控管 <ph name="IE_PRODUCT_NAME" /> 是否應在 <ph name="PRODUCT_NAME" /> 中開啟這些網址。 @@ -3100,10 +3076,6 @@ 請注意,這項設定可能會允許略過 nameConstraints 延伸 (用於限制指定的憑證可授權的主機名稱),因此不建議啟用。 如果未設定這項政策,或是將這項政策設為 false,含有 DNS 名稱或 IP 位址但缺少 subjectAlternativeName 延伸的伺服器憑證將不會受到信任。</translation> -<translation id="5578571772998293651">允許使用者意見回饋功能。 - 如果將這項政策設為 False,使用者無法將意見回饋傳送給 Google。 - - 如果將這項政策設為 True 或不設定,使用者可以將意見回饋傳送給 Google,方法是依序按一下「選單」圖示 -> [說明] -> [回報問題],或是按下按鍵組合。</translation> <translation id="5579179012798142131">除非暫時模式或多帳戶登入功能在使用者工作階段期間處於啟用狀態,否則將 ArcEnabled 設為 True 時,系統會為該使用者啟用 ARC。如果將這項政策設為 False 或不設定,企業版使用者將無法使用 ARC。</translation> <translation id="5582429816116769246">可讓你控管使用者是否可存取非企業所管理的印表機 @@ -3361,7 +3333,6 @@ <translation id="5951418260805607969">當磁碟空間不足時顯示通知</translation> <translation id="5961137303188584693">裝置內建的 NIC MAC 位址</translation> <translation id="5966615072639944554">允許擴充功能使用 Remote Attestation API</translation> -<translation id="5983708779415553259">非任何內容套件中網站的預設行為</translation> <translation id="5997543603646547632">預設使用 24 小時制時鐘</translation> <translation id="5997846976342452720">指定是否要停用外掛程式尋找工具 (已淘汰)</translation> <translation id="5998198091336830580">這項政策屬於下列不可部分完成的群組 (系統僅會套用群組中最高優先來源所設定的政策):</translation> @@ -3400,9 +3371,6 @@ <translation id="603768430528561926">如果將這項政策設為啟用或不設定,企業裝置使用者可透過 <ph name="PRODUCT_OS_NAME" />註冊兌換優惠。 如果將這項政策設為停用,使用者將無法兌換這類優惠。</translation> -<translation id="6038407313189625985">如果將這項政策設為啟用或不予設定,系統會啟用轉譯器程式碼完整性功能。只有必須在 Chrome 的轉譯器程序中執行的第三方軟體發生相容性問題時,我們才建議你停用這項政策。 - - 停用這項政策會對 Chrome 的安全性和穩定性造成負面影響,因為這樣一來,Chrome 會允許轉譯器程序載入未知且可能具有惡意的程式碼。如要瞭解詳情,請參閱 https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md#Process-mitigation-policies。</translation> <translation id="6048199181629830227">開啟用電尖峰轉移電源管理功能</translation> <translation id="6054485492411959335">指定可供使用的印表機。 @@ -4702,9 +4670,6 @@ 注意:目前只有在顯示登入畫面或 Kiosk 應用程式工作階段運作時,才能啟用自動重新啟動。這種情況會在日後變更,而且無論任何特定類型的工作階段是否正在運作,政策都會一律適用。</translation> <translation id="7701341006446125684">設定應用程式和擴充功能快取大小 (以位元組為單位)</translation> -<translation id="7709537117200051035">將主機名稱對應至布林值旗標的字典,以指定 Chrome 是否能存取主機。允許值為 True,封鎖值為 False。 - - 這項政策僅供 <ph name="PRODUCT_NAME" /> 內部使用。</translation> <translation id="7710950688502974809">指定要套用至 <ph name="ON_BULK_DATA_ENTRY_ENTERPRISE_CONNECTOR" /> Enterprise Connector 的 Chrome Enterprise Connectors 服務設定清單,在 Chrome 中透過剪貼簿或拖曳網頁內容的方式輸入資料時會觸發這份清單。 在特定網頁中輸入資料時,系統會使用 <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />、<ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />、<ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" />、<ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> 欄位來判斷連接器是否要傳送資料進行分析,以及要在該資料的分析要求中加入哪些標記。系統會比對標記對應的模式,如果頁面網址符合與該標記相關聯的「啟用」模式,系統就會將該標記加入分析要求中 (但若有頁面網址與此標記中的「停用」模式符合的情況則除外)。如果在要求中加入至少 1 個標記,系統就會進行分析。 @@ -4852,7 +4817,6 @@ 無論是否啟用這項政策,使用者都無法在 <ph name="PRODUCT_NAME" /> 中變更或覆寫這項政策。 如果不設定這項政策,系統會啟用網路預測功能,但使用者可以自行變更。</translation> -<translation id="7953256619080733119">管理化環境下使用者手動建立的例外主機</translation> <translation id="7956210013490975468">設定 <ph name="PRODUCT_OS_NAME" />的系統 Proxy 服務。</translation> <translation id="7958537754689366707">每 12 小時需輸入密碼</translation> <translation id="7961779417826583251">不針對列出的舊版憑證授權單位強制執行憑證透明化政策</translation> @@ -5071,11 +5035,6 @@ 設定這項政策後,使用者即無法變更或覆寫。 如果未設定這項政策,系統預設會停用語音輸入功能,但使用者隨時可以啟用這項功能。</translation> -<translation id="829337533107201925">如果啟用這項政策,那麼只要是來自不可部分完成的群組,而且來源與該群組中最高優先權項目不同的政策,即會遭到忽略。 - - 如果將這項政策設為停用,政策不會因來源而遭到忽略,只會在發生政策衝突或沒有最高優先權的情況下遭到忽略。 - - 如果透過雲端來源設定這項政策,就不能將特定使用者設為政策目標</translation> <translation id="8294750666104911727">無論「ChromeFrameRendererSettings」政策為何,一般而言,X-UA-Compatible 設為 chrome=1 的網頁將會在 <ph name="PRODUCT_FRAME_NAME" /> 中開啟。 如果你啟用這項設定,系統將不會掃描網頁的中繼標記。 @@ -5272,7 +5231,6 @@ <translation id="8544375438507658205">預設 <ph name="PRODUCT_FRAME_NAME" /> 的 HTML 轉譯器</translation> <translation id="8544465954173828789">允許將簡訊從手機同步至 Chromebook。</translation> <translation id="8548832052135586762">設定僅限彩色列印、僅限單色列印,或是不限制色彩模式。如未設定這項政策,系統會視為未設限制。</translation> -<translation id="8549772397068118889">瀏覽內容套件以外的網站時顯示警告</translation> <translation id="8566842294717252664">在新分頁和應用程式啟動畫面中隱藏線上應用程式商店</translation> <translation id="8569734380847633643"> 如果將這項政策設為 False,<ph name="PRODUCT_OS_NAME" /> 將停用 Wi-Fi,且使用者無法重新啟用。 @@ -5392,7 +5350,6 @@ 設好這項政策後,使用者即無法變更或覆寫設定。 這項政策對使用者是否能在個別裝置上設定印表機沒有影響,而是補足個別使用者的印表機設定。</translation> -<translation id="8764477907716150749">這項政策僅供 <ph name="PRODUCT_NAME" /> 內部使用。</translation> <translation id="8767743923206070405">如果將這項政策設為啟用,<ph name="PRODUCT_NAME" /> 的工具列上會顯示「首頁」按鈕。如果將這項政策設為停用,則不會顯示「首頁」按鈕。 如果設定這項政策,使用者將無法在 <ph name="PRODUCT_NAME" /> 中進行變更。如果未設定,使用者可選擇是否要顯示「首頁」按鈕。</translation>
diff --git a/components/strings/components_chromium_strings_iw.xtb b/components/strings/components_chromium_strings_iw.xtb index eddf0dce..1a34d95 100644 --- a/components/strings/components_chromium_strings_iw.xtb +++ b/components/strings/components_chromium_strings_iw.xtb
@@ -3,7 +3,7 @@ <translationbundle lang="iw"> <translation id="130631256467250065">השינויים ייכנסו לתוקף בפעם הבאה שתפעיל מחדש את המכשיר.</translation> <translation id="275588974610408078">דיווח על התרסקויות אינו זמין ב-Chromium.</translation> -<translation id="3064346599913645280">אתה מציג דף מאובטח של Chromium</translation> +<translation id="3064346599913645280">זהו דף מאובטח של Chromium</translation> <translation id="3550966579244642892">מערכת ההפעלה של Chromium לא השלימה את ההגדרה הראשונית.</translation> <translation id="358997566136285270">לוגו של Chromium</translation> <translation id="4365115785552740256">Chromium קיים הודות לפרויקט הקוד הפתוח של <ph name="BEGIN_LINK_CHROMIUM" /> Chromium<ph name="END_LINK_CHROMIUM" /> ו<ph name="BEGIN_LINK_OSS" />תוכנות קוד פתוח<ph name="END_LINK_OSS" /> אחרות.</translation>
diff --git a/components/strings/components_strings_af.xtb b/components/strings/components_strings_af.xtb index dfce5bd0..8a3b84c1 100644 --- a/components/strings/components_strings_af.xtb +++ b/components/strings/components_strings_af.xtb
@@ -1897,7 +1897,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Beskikbaar</translation> <translation id="868922510921656628">Bladsye per stel</translation> -<translation id="8697373104056314601"><ph name="BEGIN_ENHANCED_PROTECTION_LINK" />Skakel gevorderde beskerming aan<ph name="END_ENHANCED_PROTECTION_LINK" /> om Chrome se hoogste vlak van beskerming te kry.</translation> <translation id="869891660844655955">Vervaldatum</translation> <translation id="8699041776323235191">HID-toestel</translation> <translation id="8703575177326907206">Jou verbinding aan <ph name="DOMAIN" /> is nie geënkripteer nie.</translation>
diff --git a/components/strings/components_strings_am.xtb b/components/strings/components_strings_am.xtb index d01f1a56..5ea114e 100644 --- a/components/strings/components_strings_am.xtb +++ b/components/strings/components_strings_am.xtb
@@ -1888,7 +1888,6 @@ <translation id="8685155993131031756">PRC 16K</translation> <translation id="8688672835843460752">ይገኛል</translation> <translation id="868922510921656628">ገጾች በስብስብብ</translation> -<translation id="8697373104056314601">የChromeን ከፍተኛ የደህንነት ደረጃ ለማግኘት፣ <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />የተሻሻለውን ጥበቃ ያብሩ<ph name="END_ENHANCED_PROTECTION_LINK" />።</translation> <translation id="869891660844655955">የሚያበቀበት ጊዜ</translation> <translation id="8699041776323235191">የHID መሣሪያ</translation> <translation id="8703575177326907206">ከ<ph name="DOMAIN" /> ጋር ያለዎት ግንኙነት አልተመሰጠረም</translation>
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb index 74251a7..0577dc9 100644 --- a/components/strings/components_strings_ar.xtb +++ b/components/strings/components_strings_ar.xtb
@@ -1898,7 +1898,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">متوفِّر</translation> <translation id="868922510921656628">عدد الصفحات في كل مجموعة</translation> -<translation id="8697373104056314601">للحصول على أعلى مستوى من الحماية في متصفِّح Chrome، يمكنك <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />تفعيل "الحماية المُحسَّنة"<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">تاريخ انتهاء الصلاحية</translation> <translation id="8699041776323235191">جهاز HID</translation> <translation id="8703575177326907206">الاتصال بالموقع <ph name="DOMAIN" /> غير محميّ بنظام ترميز.</translation>
diff --git a/components/strings/components_strings_as.xtb b/components/strings/components_strings_as.xtb index 084eafac..8b445626 100644 --- a/components/strings/components_strings_as.xtb +++ b/components/strings/components_strings_as.xtb
@@ -1886,7 +1886,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">উপলব্ধ</translation> <translation id="868922510921656628">প্ৰতিটো ছেটত পৃষ্ঠাৰ সংখ্যা</translation> -<translation id="8697373104056314601">Chromeৰ সৰ্বোচ্চ স্তৰৰ সুৰক্ষা লাভ কৰিবলৈ <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />বৰ্ধিত সুৰক্ষাৰ সুবিধাটো অন কৰক<ph name="END_ENHANCED_PROTECTION_LINK" />।</translation> <translation id="869891660844655955">ম্যাদ উকলাৰ তাৰিখ</translation> <translation id="8699041776323235191">HID ডিভাইচ</translation> <translation id="8703575177326907206"><ph name="DOMAIN" />লৈ আপোনাৰ সংযোগ এনক্ৰিপ্ট কৰা হোৱা নাই।</translation>
diff --git a/components/strings/components_strings_az.xtb b/components/strings/components_strings_az.xtb index ce5d5b6..1c38ed3f 100644 --- a/components/strings/components_strings_az.xtb +++ b/components/strings/components_strings_az.xtb
@@ -1892,7 +1892,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Əlçatandır</translation> <translation id="868922510921656628">Dəst üzrə səhifələr</translation> -<translation id="8697373104056314601">Chrome'un ən yüksək təhlükəsizlik səviyyəsini əldə etmək üçün<ph name="BEGIN_ENHANCED_PROTECTION_LINK" />təkmil qorumanı yandırın<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Bitmə tarixi</translation> <translation id="8699041776323235191">HID cihazı</translation> <translation id="8703575177326907206"><ph name="DOMAIN" /> domeninə olan bağlantınız şifrələnib.</translation>
diff --git a/components/strings/components_strings_be.xtb b/components/strings/components_strings_be.xtb index a08dbd2..f69c3de 100644 --- a/components/strings/components_strings_be.xtb +++ b/components/strings/components_strings_be.xtb
@@ -1897,7 +1897,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Даступна</translation> <translation id="868922510921656628">Старонак у наборы</translation> -<translation id="8697373104056314601">Каб у браўзеры Chrome падтрымліваўся найвышэйшы ўзровень бяспекі, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />уключыце палепшаную абарону<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Тэрмін дзеяння</translation> <translation id="8699041776323235191">Прылада HID</translation> <translation id="8703575177326907206">Падключэнне да дамена <ph name="DOMAIN" /> не шыфруецца.</translation>
diff --git a/components/strings/components_strings_bg.xtb b/components/strings/components_strings_bg.xtb index 8ad5d1c..88c7646 100644 --- a/components/strings/components_strings_bg.xtb +++ b/components/strings/components_strings_bg.xtb
@@ -1893,7 +1893,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Свободно място</translation> <translation id="868922510921656628">Страници на набор</translation> -<translation id="8697373104056314601">За да използвате най-високото ниво на сигурност на Chrome, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />включете подобрената защита<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Дата на валидност</translation> <translation id="8699041776323235191">HID устройство</translation> <translation id="8703575177326907206">Връзката ви с <ph name="DOMAIN" /> не е шифрована.</translation>
diff --git a/components/strings/components_strings_bn.xtb b/components/strings/components_strings_bn.xtb index 1dad9f2..1e498ca 100644 --- a/components/strings/components_strings_bn.xtb +++ b/components/strings/components_strings_bn.xtb
@@ -1895,7 +1895,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">উপলব্ধ</translation> <translation id="868922510921656628">সেট প্রতি পৃষ্ঠা</translation> -<translation id="8697373104056314601">Chrome-এ সবচেয়ে বেশি সুরক্ষা পেতে, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />উন্নত সুরক্ষা চালু করুন<ph name="END_ENHANCED_PROTECTION_LINK" />।</translation> <translation id="869891660844655955">মেয়াদকাল সমাপ্তির তারিখ</translation> <translation id="8699041776323235191">HID ডিভাইস</translation> <translation id="8703575177326907206"><ph name="DOMAIN" />-এ আপনার কানেকশন এনক্রিপ্ট হয় নি৷</translation>
diff --git a/components/strings/components_strings_bs.xtb b/components/strings/components_strings_bs.xtb index 430e5d8..79343f30 100644 --- a/components/strings/components_strings_bs.xtb +++ b/components/strings/components_strings_bs.xtb
@@ -1897,7 +1897,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Dostupno</translation> <translation id="868922510921656628">Broj stranica po skupu</translation> -<translation id="8697373104056314601">Da postignete najviši nivo sigurnosti Chromea, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />uključite poboljšanu zaštitu<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Datum isteka</translation> <translation id="8699041776323235191">uređaj HID</translation> <translation id="8703575177326907206">Vaša veza na domenu <ph name="DOMAIN" /> nije šifrirana.</translation>
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb index 3734dd6..5c5067c 100644 --- a/components/strings/components_strings_ca.xtb +++ b/components/strings/components_strings_ca.xtb
@@ -1886,7 +1886,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Disponible</translation> <translation id="868922510921656628">Pàgines per conjunt</translation> -<translation id="8697373104056314601">Per obtenir el màxim nivell de seguretat de Chrome, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />activa la protecció millorada<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Data de caducitat</translation> <translation id="8699041776323235191">Dispositiu d'interfície humana</translation> <translation id="8703575177326907206">La teva connexió a <ph name="DOMAIN" /> no està xifrada.</translation>
diff --git a/components/strings/components_strings_cs.xtb b/components/strings/components_strings_cs.xtb index aae4c1c..b905ba7 100644 --- a/components/strings/components_strings_cs.xtb +++ b/components/strings/components_strings_cs.xtb
@@ -1881,7 +1881,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Dostupné</translation> <translation id="868922510921656628">Počet stránek na sadu</translation> -<translation id="8697373104056314601">Pokud v Chromu chcete mít nejvyšší úroveň zabezpečení <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />zapněte vylepšenou ochranu<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Datum vypršení platnosti</translation> <translation id="8699041776323235191">Zařízení HID</translation> <translation id="8703575177326907206">Vaše spojení se serverem <ph name="DOMAIN" /> není šifrované.</translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb index 479c504..214d0772 100644 --- a/components/strings/components_strings_da.xtb +++ b/components/strings/components_strings_da.xtb
@@ -1898,7 +1898,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Tilgængelig</translation> <translation id="868922510921656628">Sider pr. sæt</translation> -<translation id="8697373104056314601"><ph name="BEGIN_ENHANCED_PROTECTION_LINK" />Aktivér forbedret beskyttelse<ph name="END_ENHANCED_PROTECTION_LINK" /> for at få Chromes højeste sikkerhedsniveau.</translation> <translation id="869891660844655955">Udløbsdato</translation> <translation id="8699041776323235191">HID-enhed</translation> <translation id="8703575177326907206">Din forbindelse til <ph name="DOMAIN" /> er ikke krypteret.</translation>
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb index a507ecb..2dd6cfb 100644 --- a/components/strings/components_strings_de.xtb +++ b/components/strings/components_strings_de.xtb
@@ -1884,7 +1884,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Verfügbar</translation> <translation id="868922510921656628">Seiten pro Satz</translation> -<translation id="8697373104056314601">Schalten Sie für größtmögliche Sicherheit in Chrome den <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />erweiterten Schutz<ph name="END_ENHANCED_PROTECTION_LINK" /> ein.</translation> <translation id="869891660844655955">Ablaufdatum</translation> <translation id="8699041776323235191">HID-Gerät</translation> <translation id="8703575177326907206">Die Verbindung zu <ph name="DOMAIN" /> ist nicht verschlüsselt.</translation>
diff --git a/components/strings/components_strings_el.xtb b/components/strings/components_strings_el.xtb index 480d69bb..6ef38f98 100644 --- a/components/strings/components_strings_el.xtb +++ b/components/strings/components_strings_el.xtb
@@ -1899,7 +1899,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Διαθέσιμο</translation> <translation id="868922510921656628">Σελίδες ανά δευτερόλεπτο</translation> -<translation id="8697373104056314601">Για να λάβετε το υψηλότερο επίπεδο ασφάλειας του Chrome, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />ενεργοποιήστε τη βελτιωμένη προστασία<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Ημερομηνία λήξης</translation> <translation id="8699041776323235191">Συσκευή HID</translation> <translation id="8703575177326907206">Η σύνδεσή σας με τον τομέα <ph name="DOMAIN" /> δεν είναι κρυπτογραφημένη.</translation>
diff --git a/components/strings/components_strings_en-GB.xtb b/components/strings/components_strings_en-GB.xtb index 30c8221..93f9863 100644 --- a/components/strings/components_strings_en-GB.xtb +++ b/components/strings/components_strings_en-GB.xtb
@@ -1896,7 +1896,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Available</translation> <translation id="868922510921656628">Pages per set</translation> -<translation id="8697373104056314601">To get Chrome’s highest level of security, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />turn on enhanced protection<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Expiry date</translation> <translation id="8699041776323235191">HID device</translation> <translation id="8703575177326907206">Your connection to <ph name="DOMAIN" /> is not encrypted.</translation>
diff --git a/components/strings/components_strings_es-419.xtb b/components/strings/components_strings_es-419.xtb index 510a9e9..55355275 100644 --- a/components/strings/components_strings_es-419.xtb +++ b/components/strings/components_strings_es-419.xtb
@@ -1887,7 +1887,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Disponible</translation> <translation id="868922510921656628">Páginas por conjunto</translation> -<translation id="8697373104056314601">Para acceder al nivel más alto de seguridad de Chrome, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />activa la protección mejorada<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Fecha de vencimiento</translation> <translation id="8699041776323235191">Dispositivo HID</translation> <translation id="8703575177326907206">Tu conexión a <ph name="DOMAIN" /> no está cifrada.</translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb index 47d6859e..d137fad4 100644 --- a/components/strings/components_strings_es.xtb +++ b/components/strings/components_strings_es.xtb
@@ -1897,7 +1897,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Disponible</translation> <translation id="868922510921656628">Páginas por conjunto</translation> -<translation id="8697373104056314601">Para obtener el máximo nivel de seguridad en Chrome, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />activa la protección mejorada<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Fecha de caducidad</translation> <translation id="8699041776323235191">Dispositivo HID</translation> <translation id="8703575177326907206">Tu conexión a <ph name="DOMAIN" /> no está cifrada.</translation>
diff --git a/components/strings/components_strings_et.xtb b/components/strings/components_strings_et.xtb index 70b49df..6ada400 100644 --- a/components/strings/components_strings_et.xtb +++ b/components/strings/components_strings_et.xtb
@@ -1896,7 +1896,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Saadaval</translation> <translation id="868922510921656628">Lehekülgi komplekti kohta</translation> -<translation id="8697373104056314601">Chrome'i kõrgeima taseme turvalisuse saavutamiseks <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />lülitage sisse täiustatud kaitse<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Aegumiskuupäev</translation> <translation id="8699041776323235191">HID-seade</translation> <translation id="8703575177326907206">Teie ühendus <ph name="DOMAIN" />'ga pole krüptitud.</translation>
diff --git a/components/strings/components_strings_eu.xtb b/components/strings/components_strings_eu.xtb index cd4d181..38e1ba5 100644 --- a/components/strings/components_strings_eu.xtb +++ b/components/strings/components_strings_eu.xtb
@@ -1881,7 +1881,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Erabilgarri</translation> <translation id="868922510921656628">Multzo bakoitzeko orri kopurua</translation> -<translation id="8697373104056314601">Chrome-ren segurtasun-maila handiena lortzeko, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />aktibatu babes hobetua<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Iraungitze-data</translation> <translation id="8699041776323235191">HID gailua</translation> <translation id="8703575177326907206"><ph name="DOMAIN" /> domeinuarekiko duzun konexioa ez dago enkriptatuta.</translation>
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb index 606f60d..3e0fdee 100644 --- a/components/strings/components_strings_fa.xtb +++ b/components/strings/components_strings_fa.xtb
@@ -1895,7 +1895,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">دردسترس</translation> <translation id="868922510921656628">صفحههای هر مجموعه</translation> -<translation id="8697373104056314601">برای بهرهمندی از بالاترین سطح امنیت در Chrome، <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />«محافظت بهبودیافته» را روشن کنید<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">تاریخ انقضا</translation> <translation id="8699041776323235191">دستگاه HID</translation> <translation id="8703575177326907206">اتصال شما به <ph name="DOMAIN" /> رمزگذاری نشده است.</translation>
diff --git a/components/strings/components_strings_fi.xtb b/components/strings/components_strings_fi.xtb index 518dc7a4..b316c8c 100644 --- a/components/strings/components_strings_fi.xtb +++ b/components/strings/components_strings_fi.xtb
@@ -1899,7 +1899,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Saatavilla</translation> <translation id="868922510921656628">Sivuja joukkoa kohti</translation> -<translation id="8697373104056314601">Jos haluat käyttää Chromen tehokkainta suojausta, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />ota parannettu suojaus käyttöön<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Vanhenemispäivämäärä</translation> <translation id="8699041776323235191">HID-laite</translation> <translation id="8703575177326907206">Yhteyttäsi verkkotunnukseen <ph name="DOMAIN" /> ei ole salattu.</translation>
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb index 3a113d9..466250c 100644 --- a/components/strings/components_strings_fil.xtb +++ b/components/strings/components_strings_fil.xtb
@@ -1897,7 +1897,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Available</translation> <translation id="868922510921656628">Mga page bawat hanay</translation> -<translation id="8697373104056314601">Para makuha ang pinakamataas na antas ng seguridad ng Chrome, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />i-on ang pinahusay na proteksyon<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Expiration date</translation> <translation id="8699041776323235191">HID device</translation> <translation id="8703575177326907206">Ang iyong koneksyon sa <ph name="DOMAIN" /> ay hindi naka-encrypt.</translation>
diff --git a/components/strings/components_strings_fr-CA.xtb b/components/strings/components_strings_fr-CA.xtb index 953c321..59119be 100644 --- a/components/strings/components_strings_fr-CA.xtb +++ b/components/strings/components_strings_fr-CA.xtb
@@ -1886,7 +1886,6 @@ <translation id="8685155993131031756">PRC 16K</translation> <translation id="8688672835843460752">Disponible</translation> <translation id="868922510921656628">Pages par ensemble</translation> -<translation id="8697373104056314601">Pour profiter du niveau de sécurité le plus élevé de Chrome, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />activez la protection renforcée<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Date d'expiration</translation> <translation id="8699041776323235191">Appareil HID</translation> <translation id="8703575177326907206">Votre connexion à <ph name="DOMAIN" /> n'est pas chiffrée.</translation>
diff --git a/components/strings/components_strings_fr.xtb b/components/strings/components_strings_fr.xtb index b9863a7..67945722 100644 --- a/components/strings/components_strings_fr.xtb +++ b/components/strings/components_strings_fr.xtb
@@ -283,6 +283,7 @@ <translation id="204357726431741734">Connectez-vous pour utiliser les mots de passe enregistrés dans votre compte Google</translation> <translation id="2053111141626950936">Les pages en <ph name="LANGUAGE" /> ne seront pas traduites.</translation> <translation id="2053553514270667976">Code postal</translation> +<translation id="2054665754582400095">Votre présence</translation> <translation id="2064691555167957331">{COUNT,plural, =1{1 suggestion}one{# suggestion}other{# suggestions}}</translation> <translation id="2079545284768500474">Annuler</translation> <translation id="20817612488360358">Les paramètres de proxy du système sont configurés pour être utilisés, mais une configuration de proxy explicite est également spécifiée.</translation> @@ -1894,7 +1895,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Disponible</translation> <translation id="868922510921656628">Pages par ensemble</translation> -<translation id="8697373104056314601">Pour bénéficier du niveau de sécurité le plus élevé de Chrome, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />activez la protection renforcée<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Date d'expiration</translation> <translation id="8699041776323235191">Appareil HID</translation> <translation id="8703575177326907206">Votre connexion à <ph name="DOMAIN" /> n'est pas chiffrée.</translation>
diff --git a/components/strings/components_strings_gl.xtb b/components/strings/components_strings_gl.xtb index 873e8a9..c00ca46 100644 --- a/components/strings/components_strings_gl.xtb +++ b/components/strings/components_strings_gl.xtb
@@ -282,6 +282,7 @@ <translation id="204357726431741734">Iniciar sesión para utilizar contrasinais gardados na túa Conta de Google</translation> <translation id="2053111141626950936">Non se traducirán as páxinas en <ph name="LANGUAGE" />.</translation> <translation id="2053553514270667976">Código postal</translation> +<translation id="2054665754582400095">A túa presenza</translation> <translation id="2064691555167957331">{COUNT,plural, =1{1 suxestión}other{# suxestións}}</translation> <translation id="2079545284768500474">Desfacer</translation> <translation id="20817612488360358">Estableceuse a configuración do proxy do sistema que debe utilizarse, pero tamén se especificou unha configuración de proxy explícita.</translation> @@ -1893,7 +1894,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Dispoñible</translation> <translation id="868922510921656628">Páxinas por xogo</translation> -<translation id="8697373104056314601">Para gozar do máximo nivel de seguranza de Chrome, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />activa a protección mellorada<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Data de vencemento</translation> <translation id="8699041776323235191">Dispositivo HID</translation> <translation id="8703575177326907206">A túa conexión con <ph name="DOMAIN" /> non está cifrada.</translation>
diff --git a/components/strings/components_strings_gu.xtb b/components/strings/components_strings_gu.xtb index 32c6047..c12d81f 100644 --- a/components/strings/components_strings_gu.xtb +++ b/components/strings/components_strings_gu.xtb
@@ -283,6 +283,7 @@ <translation id="204357726431741734">તમારા Google એકાઉન્ટમાં સ્ટોર કરેલા પાસવર્ડનો ઉપયોગ કરવા માટે સાઇન ઇન કરો</translation> <translation id="2053111141626950936"><ph name="LANGUAGE" />માં લખાયેલાં પેજનો અનુવાદ થશે નહીં.</translation> <translation id="2053553514270667976">પિન કોડ</translation> +<translation id="2054665754582400095">તમારી હાજરી</translation> <translation id="2064691555167957331">{COUNT,plural, =1{1 સૂચન}one{# સૂચન}other{# સૂચન}}</translation> <translation id="2079545284768500474">છેલ્લો ફેરફાર રદ કરો</translation> <translation id="20817612488360358">સિસ્ટમ પ્રૉક્સી સેટિંગ ઉપયોગમાં લેવા માટે સેટ છે પણ એક સ્પષ્ટ પ્રૉક્સી ગોઠવણીનો પણ ઉલ્લેખ કરાયેલો છે.</translation> @@ -1896,7 +1897,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">ઉપલબ્ધ</translation> <translation id="868922510921656628">સેટ દીઠ પેજ</translation> -<translation id="8697373104056314601">Chromeની સૌથી ઉચ્ચ લેવલની સુરક્ષા મેળવવા માટે, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />વધારેલી સુરક્ષા ચાલુ કરો<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">સમાપ્તિ તારીખ</translation> <translation id="8699041776323235191">HID ડિવાઇસ</translation> <translation id="8703575177326907206"><ph name="DOMAIN" /> સાથેનું તમારું કનેક્શન એન્ક્રિપ્ટેડ નથી.</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb index 9d13ea5..fc2dd1b 100644 --- a/components/strings/components_strings_hi.xtb +++ b/components/strings/components_strings_hi.xtb
@@ -906,7 +906,7 @@ <translation id="4597348597567598915">आकार 8</translation> <translation id="4600854749408232102">सी6/सी5 (एन्वेलप)</translation> <translation id="4628948037717959914">फ़ोटो</translation> -<translation id="4631649115723685955">कैशबैक ऑफ़र शामिल है</translation> +<translation id="4631649115723685955">कार्ड से पैसे चुकाने पर कैशबैक मिलेगा</translation> <translation id="464342062220857295">खोज सुविधाएं</translation> <translation id="4644670975240021822">दूसरी तरफ़ उलटा करके रखें</translation> <translation id="4646534391647090355">मुझे अभी वहां ले जाएं</translation> @@ -1895,7 +1895,6 @@ <translation id="8685155993131031756">पीआरसी-16के</translation> <translation id="8688672835843460752">उपलब्ध</translation> <translation id="868922510921656628">हर सेट पर मौजूद पेजों की संख्या</translation> -<translation id="8697373104056314601">Chrome की सबसे बेहतर सुरक्षा पाने के लिए, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />बेहर सुरक्षा सुविधा चालू करें<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">समय समाप्ति तारीख</translation> <translation id="8699041776323235191">एचआईडी डिवाइस</translation> <translation id="8703575177326907206"><ph name="DOMAIN" /> से आपके कनेक्शन को सुरक्षित नहीं किया गया है.</translation>
diff --git a/components/strings/components_strings_hr.xtb b/components/strings/components_strings_hr.xtb index bdcdfeb..6bce21fa 100644 --- a/components/strings/components_strings_hr.xtb +++ b/components/strings/components_strings_hr.xtb
@@ -1898,7 +1898,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Dostupno</translation> <translation id="868922510921656628">Stranica po skupu</translation> -<translation id="8697373104056314601">Da biste dobili najvišu Chromeovu razinu sigurnosti, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />uključite poboljšanu zaštitu<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Datum isteka</translation> <translation id="8699041776323235191">HID uređaj</translation> <translation id="8703575177326907206">Vaša veza s <ph name="DOMAIN" /> nije šifrirana.</translation>
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb index 163d067d..43c3c85 100644 --- a/components/strings/components_strings_hu.xtb +++ b/components/strings/components_strings_hu.xtb
@@ -1894,7 +1894,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Rendelkezésre áll</translation> <translation id="868922510921656628">Oldalak száma készletenként</translation> -<translation id="8697373104056314601">A Chrome legmagasabb szintű biztonságának eléréséhez <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />kapcsolja be a speciális védelmet<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Lejárati dátum</translation> <translation id="8699041776323235191">HID-eszköz</translation> <translation id="8703575177326907206">A kapcsolat (<ph name="DOMAIN" />) nem titkosított.</translation>
diff --git a/components/strings/components_strings_hy.xtb b/components/strings/components_strings_hy.xtb index c18bacda..08fc6be 100644 --- a/components/strings/components_strings_hy.xtb +++ b/components/strings/components_strings_hy.xtb
@@ -1897,7 +1897,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Հասանելի</translation> <translation id="868922510921656628">Էջերի թիվը կազմում</translation> -<translation id="8697373104056314601">Chrome-ի լավագույն պաշտպանության համակարգերն օգտագործելու համար <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />միացրեք լրացուցիչ պաշտպանությունը<ph name="END_ENHANCED_PROTECTION_LINK" />։</translation> <translation id="869891660844655955">Սպառման ժամկետ</translation> <translation id="8699041776323235191">HID սարք</translation> <translation id="8703575177326907206">Ձեր կապակցումը <ph name="DOMAIN" />-ին գաղտնագրված չէ:</translation>
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb index ae82e5e..bae6591 100644 --- a/components/strings/components_strings_id.xtb +++ b/components/strings/components_strings_id.xtb
@@ -1883,7 +1883,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Tersedia</translation> <translation id="868922510921656628">Halaman per set</translation> -<translation id="8697373104056314601">Untuk mendapatkan tingkat keamanan tertinggi Chrome, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />aktifkan perlindungan yang disempurnakan<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Masa berlaku</translation> <translation id="8699041776323235191">Perangkat HID</translation> <translation id="8703575177326907206">Sambungan ke <ph name="DOMAIN" /> tidak dienkripsi.</translation>
diff --git a/components/strings/components_strings_is.xtb b/components/strings/components_strings_is.xtb index 5e608486..dd00ed1 100644 --- a/components/strings/components_strings_is.xtb +++ b/components/strings/components_strings_is.xtb
@@ -1898,7 +1898,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Laust</translation> <translation id="868922510921656628">Síður í setti</translation> -<translation id="8697373104056314601">Til að fá mesta öryggi sem Chrome býður uppá skaltu <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />kveikja á aukinni vörn<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Lokadagsetning</translation> <translation id="8699041776323235191">HID-tæki</translation> <translation id="8703575177326907206">Tengingin þín við <ph name="DOMAIN" /> er ekki dulkóðuð.</translation>
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb index 4a00ef1..5f23577 100644 --- a/components/strings/components_strings_it.xtb +++ b/components/strings/components_strings_it.xtb
@@ -1893,7 +1893,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Disponibile</translation> <translation id="868922510921656628">Pagine per insieme</translation> -<translation id="8697373104056314601">Per il massimo livello di sicurezza di Chrome, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />attiva la protezione avanzata<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Data di scadenza</translation> <translation id="8699041776323235191">Dispositivo HID</translation> <translation id="8703575177326907206">La connessione a <ph name="DOMAIN" /> non è criptata.</translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb index 71de281..6650879 100644 --- a/components/strings/components_strings_iw.xtb +++ b/components/strings/components_strings_iw.xtb
@@ -617,7 +617,7 @@ <translation id="3456231139987291353">Number-11 (Envelope)</translation> <translation id="3461266716147554923"><ph name="URL" /> רוצה גישה אל טקסט ותמונות שהועתקו אל לוח העריכה.</translation> <translation id="3461824795358126837">כלי הדגשה</translation> -<translation id="3462200631372590220">הסתר פרטים מתקדמים</translation> +<translation id="3462200631372590220">הסתרת פרטים מתקדמים</translation> <translation id="3467763166455606212">עליך לציין את שם בעל הכרטיס</translation> <translation id="3468054117417088249"><ph name="TAB_SWITCH_SUFFIX" />, פתוחה כרגע, יש להקיש על Tab ולאחר מכן על Enter כדי לעבור לכרטיסייה הפתוחה</translation> <translation id="3479552764303398839">לא עכשיו</translation> @@ -656,7 +656,7 @@ <translation id="3615877443314183785">עליך להזין תאריך תפוגה חוקי</translation> <translation id="36224234498066874">ניקוי נתוני גלישה…</translation> <translation id="362276910939193118">כל ההיסטוריה</translation> -<translation id="3630155396527302611">אם היא כבר רשומה כתוכנית המורשית לגשת לרשת, נסה +<translation id="3630155396527302611">אם היא כבר רשומה כתוכנית המורשית לגשת לרשת, יש לנסות להסיר אותה מהרשימה ולהוסיף אותה שוב.</translation> <translation id="3630699740441428070">החיבור לרשת של המכשיר הזה הוגדר על ידי מנהלי המערכת, ועשויה להיות להם אפשרות לראות את התנועה שלך ברשת, כולל האתרים שבהם ביקרת.</translation> <translation id="3631244953324577188">מידע ביומטרי</translation> @@ -695,7 +695,7 @@ <translation id="3761718714832595332">הסתרת הסטטוס</translation> <translation id="3765032636089507299">הדף 'גלישה בטוחה' נמצא כרגע בבנייה.</translation> <translation id="3765588406864124894">תיבת דואר 9</translation> -<translation id="3778403066972421603">האם ברצונך לשמור את הכרטיס בחשבון Google שלך ובמכשיר הזה?</translation> +<translation id="3778403066972421603">ברצונך לשמור את הכרטיס בחשבון Google שלך ובמכשיר הזה?</translation> <translation id="3780694243617746492">סל פלט</translation> <translation id="3781428340399460090">ורוד בוהק</translation> <translation id="3783418713923659662">מאסטרקארד</translation> @@ -710,7 +710,7 @@ <translation id="3807873520724684969">תוכן מזיק נחסם.</translation> <translation id="3808375843007691220">אזהרה: תכונות ניסיוניות לפניך!</translation> <translation id="3810973564298564668">נהל</translation> -<translation id="382518646247711829">אם אתה משתמש בשרת Proxy...</translation> +<translation id="382518646247711829">אם עשית שימוש בשרת Proxy...</translation> <translation id="3827112369919217609">מוחלט</translation> <translation id="3828924085048779000">אין אפשרות להשתמש במשפט-סיסמה ריק.</translation> <translation id="3831915413245941253">הותקנו תוספים מהדומיין <ph name="ENROLLMENT_DOMAIN" /> כדי להשתמש בפונקציות נוספות. לתוספים יש גישה לחלק מהנתונים שלך.</translation> @@ -1003,7 +1003,7 @@ <translation id="5017554619425969104">טקסט שהעתקת</translation> <translation id="5018422839182700155">לא ניתן לפתוח את הדף</translation> <translation id="5019198164206649151">האחסון המשמש כגיבוי אינו תקין</translation> -<translation id="5023310440958281426">בדוק את תקנון מנהל המערכת שלך</translation> +<translation id="5023310440958281426">יש לבדוק את תקנון מנהל המערכת שלך</translation> <translation id="5029568752722684782">מחיקת העותק</translation> <translation id="5030338702439866405">הונפק על ידי</translation> <translation id="503069730517007720">יש צורך באישור שורש בשביל "<ph name="SOFTWARE_NAME" />", אבל לא מותקן אישור כזה. על מנהל ה-IT לבדוק את הוראות התצורה של "<ph name="SOFTWARE_NAME" />" כדי לפתור את הבעיה. <ph name="FURTHER_EXPLANATION" /></translation> @@ -1203,7 +1203,7 @@ <translation id="5781136890105823427">הניסוי מופעל</translation> <translation id="578305955206182703">ענבר</translation> <translation id="57838592816432529">השתקה</translation> -<translation id="5784606427469807560">הייתה בעיה באישור הכרטיס. בדוק את החיבור לאינטרנט ונסה שוב.</translation> +<translation id="5784606427469807560">הייתה בעיה באישור הכרטיס. יש לבדוק את החיבור לאינטרנט ולנסות שוב.</translation> <translation id="5785756445106461925">כמו כן, דף זה כולל משאבים נוספים שאינם מאובטחים. גורמים אחרים עלולים לראות את המשאבים האלה במהלך העברתם, ותוקף עלול לשנות אותם באופן שישנה את מראה הדף.</translation> <translation id="5786044859038896871">האם ברצונך למלא את פרטי הכרטיס שלך?</translation> <translation id="5798290721819630480">לבטל את השינויים?</translation> @@ -1227,7 +1227,7 @@ <translation id="5869405914158311789">לא ניתן לגשת לאתר הזה</translation> <translation id="5869522115854928033">סיסמאות שמורות</translation> <translation id="5887400589839399685">הכרטיס נשמר</translation> -<translation id="5895138241574237353">הפעל מחדש</translation> +<translation id="5895138241574237353">הפעלה מחדש</translation> <translation id="5895187275912066135">הונפק בתאריך</translation> <translation id="5901630391730855834">צהוב</translation> <translation id="5905445707201418379">נחסם בהתאם למדיניות המקור של <ph name="ORIGIN" />.</translation> @@ -1272,7 +1272,7 @@ <translation id="6041777658117377052">טמפרטורה בתא</translation> <translation id="6044573915096792553">גודל 12</translation> <translation id="6045164183059402045">תבנית הצבה</translation> -<translation id="6047233362582046994">אם אתה מבין את סיכוני האבטחה, תוכל <ph name="BEGIN_LINK" />להיכנס לאתר הזה<ph name="END_LINK" /> לפני הסרת היישומים המזיקים.</translation> +<translation id="6047233362582046994">אם סיכוני האבטחה מובנים לך, יהיה באפשרותך <ph name="BEGIN_LINK" />להיכנס לאתר הזה<ph name="END_LINK" /> לפני הסרת האפליקציות המזיקות.</translation> <translation id="6047927260846328439">ייתכן שבתוכן הזה יש מידע מטעה שנועד לגרום לך להתקין תוכנות או לחשוף מידע אישי. <ph name="BEGIN_LINK" />הצג בכל זאת<ph name="END_LINK" /></translation> <translation id="6049488691372270142">מסירת דף</translation> <translation id="6051221802930200923">נכון לעכשיו אי אפשר לבקר באתר <ph name="SITE" />, מאחר שבאתר הזה נעשה שימוש בנעיצת אישורים. שגיאות רשת ומתקפות הן בדרך כלל זמניות, כך שהדף הזה יחזור כנראה לפעול מאוחר יותר.</translation> @@ -1358,7 +1358,7 @@ <translation id="6404511346730675251">ערוך סימניה</translation> <translation id="6406765186087300643">C0 (Envelope)</translation> <translation id="6409754798200046165">הזנת כרגע את הסיסמה שלך באתר מטעה. ההמלצה של Chrome היא לשנות את הסיסמה עכשיו.</translation> -<translation id="6410264514553301377">הזן את תאריך התפוגה ואת קוד האימות של <ph name="CREDIT_CARD" /></translation> +<translation id="6410264514553301377">יש להזין את תאריך התפוגה ואת קוד האימות של <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">בעזרת Chromium אפשר להגן על חשבון Google ולשנות את הסיסמה.</translation> <translation id="6423385022588644828">כדי לאשר את הכרטיסים שלך מהר יותר, אפשר להשתמש ב-Touch ID מעכשיו והלאה</translation> <translation id="6425092077175753609">עיצוב חדשני תלת-ממדי</translation> @@ -1389,7 +1389,7 @@ <translation id="6545864417968258051">סריקת Bluetooth</translation> <translation id="6547208576736763147">שני ניקובים בצד שמאל</translation> <translation id="6554795675067793129">החשבון שלך מנוהל על-ידי <ph name="ENROLLMENT_DOMAIN" />.</translation> -<translation id="6556866813142980365">בצע מחדש</translation> +<translation id="6556866813142980365">ביצוע מחדש</translation> <translation id="6569060085658103619">אתה מציג דף של תוסף</translation> <translation id="6573200754375280815">שני ניקובים בצד ימין</translation> <translation id="6578796323535178455">C2 (Envelope)</translation> @@ -1438,7 +1438,7 @@ <translation id="6775759552199460396">JIS B2</translation> <translation id="67862343314499040">סגול סיגלית</translation> <translation id="6786747875388722282">תוספים</translation> -<translation id="6790428901817661496">הפעל</translation> +<translation id="6790428901817661496">הפעלה</translation> <translation id="679355240208270552">המערכת התעלמה מערך מדיניות זה, משום שלפי המדיניות חיפוש ברירת המחדל מושבת.</translation> <translation id="6794951432696553238">כדי לאשר את הכרטיסים שלך מהר יותר, ניתן להשתמש ב-Windows Hello מעכשיו והלאה</translation> <translation id="681021252041861472">שדה חובה</translation> @@ -1498,7 +1498,7 @@ <translation id="7064851114919012435">פרטים ליצירת קשר</translation> <translation id="70705239631109039">החיבור שלך לא מאובטח לחלוטין</translation> <translation id="7072826695771387770">מתרחש אירוע אבטחה</translation> -<translation id="7075452647191940183">הבקשה גדולה מידי</translation> +<translation id="7075452647191940183">הבקשה גדולה מדי</translation> <translation id="7079718277001814089">האתר הזה מכיל תוכנה זדונית</translation> <translation id="7081308185095828845">התכונה הזו לא זמינה במכשיר שלך</translation> <translation id="7083258188081898530">מגש 9</translation> @@ -1549,7 +1549,7 @@ פרטים נוספים: <ph name="DEBUG_INFO" /></translation> <translation id="725866823122871198">לא ניתן ליצור חיבור פרטי אל <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> מפני שהתאריך והשעה (<ph name="DATE_AND_TIME" />) במחשב שלך שגויים.</translation> -<translation id="7260504762447901703">בטל גישה</translation> +<translation id="7260504762447901703">ביטול גישה</translation> <translation id="7275334191706090484">סימניות מנוהלות</translation> <translation id="7292031607255951991">שם הנמען</translation> <translation id="7298195798382681320">מומלצים</translation> @@ -1734,7 +1734,7 @@ <translation id="7937554595067888181">בתוקף עד <ph name="EXPIRATION_DATE_ABBR" /></translation> <translation id="7938958445268990899">אישור השרת עדיין לא בתוקף.</translation> <translation id="7942349550061667556">אדום</translation> -<translation id="7947285636476623132">בדוק את שנת התפוגה ונסה שוב</translation> +<translation id="7947285636476623132">יש לבדוק את שנת התפוגה ולנסות שוב</translation> <translation id="7951415247503192394">(32 סיביות)</translation> <translation id="7953569069500808819">הידוק קצוות בחלק העליון</translation> <translation id="7954523986259449736">באתר הזה נעשה שימוש בחיבור שאינו מאובטח כראוי, לכן ייתכן שהמידע שלך יהיה גלוי למשתמשים אחרים.</translation> @@ -1823,7 +1823,7 @@ <translation id="8286036467436129157">כניסה</translation> <translation id="8288807391153049143">הצגת אישור</translation> <translation id="8289355894181816810">כדי לברר מה זה אומר, מומלץ לפנות למנהל הרשת.</translation> -<translation id="8293206222192510085">הוסף סימניה</translation> +<translation id="8293206222192510085">הוספת סימנייה</translation> <translation id="8294431847097064396">מקור</translation> <translation id="8298115750975731693">ייתכן שתידרש להיכנס ל-<ph name="BEGIN_BOLD" /><ph name="LOGIN_URL" /><ph name="END_BOLD" /> עבור רשת ה-Wi-Fi שבה אתה משתמש (<ph name="WIFI_NAME" />).</translation> <translation id="8303854710873047864">הקטע "<ph name="SECTION" />" מוצג</translation> @@ -1901,7 +1901,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">פנוי</translation> <translation id="868922510921656628">דפים בכל קבוצה</translation> -<translation id="8697373104056314601">כדי ליהנות מאבטחה ברמה הגבוהה ביותר ב-Chrome, יש <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />להפעיל את ההגנה המשופרת<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">תאריך תפוגה</translation> <translation id="8699041776323235191">התקן HID</translation> <translation id="8703575177326907206">ההתחברות שלך אל <ph name="DOMAIN" /> אינה מוצפנת.</translation>
diff --git a/components/strings/components_strings_ja.xtb b/components/strings/components_strings_ja.xtb index fc358ad8..ee7b317d 100644 --- a/components/strings/components_strings_ja.xtb +++ b/components/strings/components_strings_ja.xtb
@@ -1886,7 +1886,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">使用可能</translation> <translation id="868922510921656628">1 部あたりのページ数</translation> -<translation id="8697373104056314601">Chrome の最高レベルのセキュリティで保護するには、<ph name="BEGIN_ENHANCED_PROTECTION_LINK" />保護強化機能を有効にしてください<ph name="END_ENHANCED_PROTECTION_LINK" />。</translation> <translation id="869891660844655955">有効期限</translation> <translation id="8699041776323235191">HID デバイス</translation> <translation id="8703575177326907206"><ph name="DOMAIN" /> への接続は暗号化されていません。</translation>
diff --git a/components/strings/components_strings_ka.xtb b/components/strings/components_strings_ka.xtb index 0de8108..bcafb43 100644 --- a/components/strings/components_strings_ka.xtb +++ b/components/strings/components_strings_ka.xtb
@@ -1886,7 +1886,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">ხელმისაწვდომი</translation> <translation id="868922510921656628">გვერდების რაოდენობა ნაკრებში</translation> -<translation id="8697373104056314601">Chrome-ის უსაფრთხოების ყველაზე ძლიერი ფუნქციებით სარგებლობისთვის <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />ჩართეთ გაძლიერებული დაცვა<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">ვადის გასვლის თარიღი</translation> <translation id="8699041776323235191">HID მოწყობილობა</translation> <translation id="8703575177326907206">თქვენი კავშირი <ph name="DOMAIN" />-თან არ არის დაშიფრული.</translation>
diff --git a/components/strings/components_strings_kk.xtb b/components/strings/components_strings_kk.xtb index 2afdd4c..7cdc76a 100644 --- a/components/strings/components_strings_kk.xtb +++ b/components/strings/components_strings_kk.xtb
@@ -1896,7 +1896,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Қолжетімді</translation> <translation id="868922510921656628">Әр жиынтықтағы беттер саны</translation> -<translation id="8697373104056314601">Chrome-ның ең жоғары деңгейдегі қауіпсіздігіне ие болу үшін <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />жақсартылған қорғанысты<ph name="END_ENHANCED_PROTECTION_LINK" /> қосыңыз.</translation> <translation id="869891660844655955">Аяқталу мерзімі</translation> <translation id="8699041776323235191">HID құрылғысы</translation> <translation id="8703575177326907206"><ph name="DOMAIN" /> доменімен байланысыңыз шифрланбаған.</translation>
diff --git a/components/strings/components_strings_km.xtb b/components/strings/components_strings_km.xtb index 722502b2..939363dd 100644 --- a/components/strings/components_strings_km.xtb +++ b/components/strings/components_strings_km.xtb
@@ -1902,7 +1902,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">នៅសល់</translation> <translation id="868922510921656628">ទំព័រក្នុងការកំណត់មួយលើក</translation> -<translation id="8697373104056314601">ដើម្បីទទួលបានកម្រិតសុវត្ថិភាពខ្ពស់បំផុតរបស់ Chrome <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />សូមបើកការការពារដែលប្រសើរជាងមុន<ph name="END_ENHANCED_PROTECTION_LINK" />។</translation> <translation id="869891660844655955">កាលបរិច្ឆេទការផុតកំណត់</translation> <translation id="8699041776323235191">ឧបករណ៍ HID</translation> <translation id="8703575177326907206">ការភ្ជាប់របស់អ្នកទៅ <ph name="DOMAIN" /> មិនត្រូវបានអ៊ីនគ្រីបទេ។</translation>
diff --git a/components/strings/components_strings_kn.xtb b/components/strings/components_strings_kn.xtb index 4e965f7c..8c2a0ad 100644 --- a/components/strings/components_strings_kn.xtb +++ b/components/strings/components_strings_kn.xtb
@@ -1882,7 +1882,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">ಲಭ್ಯವಿದೆ</translation> <translation id="868922510921656628">ಪ್ರತಿ ಸೆಟ್ಗೆ ಪುಟಗಳು</translation> -<translation id="8697373104056314601">Chrome ನ ಉನ್ನತ ಮಟ್ಟದ ಸುರಕ್ಷತೆಯನ್ನು ಪಡೆಯಲು, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />ವರ್ಧಿತ ಸುರಕ್ಷತೆಯನ್ನು ಆನ್ ಮಾಡಿ<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">ಅವಧಿ ಮುಗಿಯುವ ದಿನಾಂಕ</translation> <translation id="8699041776323235191">HID ಸಾಧನ</translation> <translation id="8703575177326907206"><ph name="DOMAIN" /> ಗೆ ನಿಮ್ಮ ಸಂಪರ್ಕವು ಎನ್ಕ್ರಿಪ್ಟ್ ಆಗಿಲ್ಲ.</translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb index 6754d4cd..9d49401 100644 --- a/components/strings/components_strings_ko.xtb +++ b/components/strings/components_strings_ko.xtb
@@ -1885,7 +1885,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">사용 가능</translation> <translation id="868922510921656628">세트당 페이지 수</translation> -<translation id="8697373104056314601">Chrome의 가장 강력한 보안 기능을 사용하려면 <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />향상된 보호 모드를 사용 설정<ph name="END_ENHANCED_PROTECTION_LINK" />하세요.</translation> <translation id="869891660844655955">유효기간</translation> <translation id="8699041776323235191">HID 기기</translation> <translation id="8703575177326907206"><ph name="DOMAIN" />로의 연결은 암호화되지 않습니다.</translation>
diff --git a/components/strings/components_strings_ky.xtb b/components/strings/components_strings_ky.xtb index 98f290e..7de508a 100644 --- a/components/strings/components_strings_ky.xtb +++ b/components/strings/components_strings_ky.xtb
@@ -1896,7 +1896,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Бош</translation> <translation id="868922510921656628">Бир топтомдогу барактар</translation> -<translation id="8697373104056314601">Chrome’ду жогорку деңгээлде коопсуздандыруу үчүн <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />өркүндөтүлгөн коргоону күйгүзүңүз<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Мөөнөтү аяктай турган күн</translation> <translation id="8699041776323235191">HID түзмөгү</translation> <translation id="8703575177326907206"><ph name="DOMAIN" /> менен туташуу аракетиңиз шифрленген эмес.</translation>
diff --git a/components/strings/components_strings_lo.xtb b/components/strings/components_strings_lo.xtb index f713b0c..aaef0f5 100644 --- a/components/strings/components_strings_lo.xtb +++ b/components/strings/components_strings_lo.xtb
@@ -1897,7 +1897,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">ຍັງເຫຼືອ</translation> <translation id="868922510921656628">ໜ້າຕໍ່ຊຸດ</translation> -<translation id="8697373104056314601">ເພື່ອຮັບຄວາມປອດໄພລະດັບສູງສຸດຂອງ Chrome, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />ກະລຸນາເປີດການປົກປ້ອງທີ່ປັບປຸງດີຂຶ້ນແລ້ວ<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">ວັນຫມົດອາຍຸ</translation> <translation id="8699041776323235191">ອຸປະກອນ HID</translation> <translation id="8703575177326907206">ການເຊື່ອມຕໍ່ຂອງທ່ານກັບ <ph name="DOMAIN" /> ບໍ່ໄດ້ຖືກໃສ່ລະຫັດໄວ້.</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb index 333eddc..8b48303 100644 --- a/components/strings/components_strings_lt.xtb +++ b/components/strings/components_strings_lt.xtb
@@ -1899,7 +1899,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Galima</translation> <translation id="868922510921656628">Puslapių skaičius rinkinyje</translation> -<translation id="8697373104056314601">Jei norite, kad būtų užtikrinta aukščiausio lygio „Chrome“ sauga, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />įjunkite sustiprintą apsaugą<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Galiojimo data</translation> <translation id="8699041776323235191">HID įrenginys</translation> <translation id="8703575177326907206">Jūsų ryšys su <ph name="DOMAIN" /> nekoduotas.</translation>
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb index fd4fec7..0b083797 100644 --- a/components/strings/components_strings_lv.xtb +++ b/components/strings/components_strings_lv.xtb
@@ -1895,7 +1895,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Pieejams</translation> <translation id="868922510921656628">Lapas katrā kopā</translation> -<translation id="8697373104056314601">Lai pārlūkprogrammā Chrome izmantotu visaugstāko drošības līmeni, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />ieslēdziet uzlaboto aizsardzību<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Derīguma termiņš</translation> <translation id="8699041776323235191">HID ierīce</translation> <translation id="8703575177326907206">Jūsu savienojums ar <ph name="DOMAIN" /> nav kodēts.</translation>
diff --git a/components/strings/components_strings_mk.xtb b/components/strings/components_strings_mk.xtb index 36ee7dd..0395c36 100644 --- a/components/strings/components_strings_mk.xtb +++ b/components/strings/components_strings_mk.xtb
@@ -1897,7 +1897,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Достапно</translation> <translation id="868922510921656628">Страници по група</translation> -<translation id="8697373104056314601">За да го добиете нависокото ниво на безбедност на Chrome, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />вклучете ја „Подобрената заштита“<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Рок на важност</translation> <translation id="8699041776323235191">HID-уред</translation> <translation id="8703575177326907206">Вашата врска со <ph name="DOMAIN" /> не е шифрирана.</translation>
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb index acd21267..f3c0d51 100644 --- a/components/strings/components_strings_ml.xtb +++ b/components/strings/components_strings_ml.xtb
@@ -1889,7 +1889,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">ലഭ്യമാണ്</translation> <translation id="868922510921656628">ഓരോ സെറ്റിലെയും പേജുകൾ</translation> -<translation id="8697373104056314601">Chrome-ന്റെ ഏറ്റവും ഉയർന്ന സുരക്ഷ നേടാൻ, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />മെച്ചപ്പെടുത്തിയ പരിരക്ഷ ഓണാക്കുക<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">കാലഹരണപ്പെടല് തീയതി</translation> <translation id="8699041776323235191">HID ഉപകരണം</translation> <translation id="8703575177326907206"><ph name="DOMAIN" /> ലേക്കുള്ള നിങ്ങളുടെ കണക്ഷന് എന്ക്രിപ്റ്റ് ചെയ്തിട്ടില്ല.</translation>
diff --git a/components/strings/components_strings_mn.xtb b/components/strings/components_strings_mn.xtb index b26e9de..d78529e 100644 --- a/components/strings/components_strings_mn.xtb +++ b/components/strings/components_strings_mn.xtb
@@ -1897,7 +1897,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Боломжтой</translation> <translation id="868922510921656628">Багц бүрийн хуудас</translation> -<translation id="8697373104056314601">Chrome-н хамгийн дээд түвшний аюулгүй байдлыг авахын тулд <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />сайжруулсан хамгаалалтыг асаана уу<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Дуусах хугацаа</translation> <translation id="8699041776323235191">HID төхөөрөмж</translation> <translation id="8703575177326907206">Таны <ph name="DOMAIN" /> руу холбогдох холболтыг шифрлээгүй байна.</translation>
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb index 567a8e8..2a68cb1c 100644 --- a/components/strings/components_strings_mr.xtb +++ b/components/strings/components_strings_mr.xtb
@@ -1896,7 +1896,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">उपलब्ध</translation> <translation id="868922510921656628">प्रति संच पेज</translation> -<translation id="8697373104056314601">Chrome ची सर्वोत्तम सुरक्षितता मिळवण्यासाठी, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />वर्धित सुरक्षितता सुरू करा<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">कालावधी समाप्ती तारीख</translation> <translation id="8699041776323235191">HID डिव्हाइस</translation> <translation id="8703575177326907206">तुमचे <ph name="DOMAIN" /> चे कनेक्शन एंक्रिप्ट केलेले नाही.</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb index 1b0073e..22734272 100644 --- a/components/strings/components_strings_ms.xtb +++ b/components/strings/components_strings_ms.xtb
@@ -1899,7 +1899,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Tersedia</translation> <translation id="868922510921656628">Halaman setiap set</translation> -<translation id="8697373104056314601">Untuk mendapatkan tahap keselamatan tertinggi Chrome, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />hidupkan perlindungan dipertingkatkan<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Tarikh tamat tempoh</translation> <translation id="8699041776323235191">Peranti HID</translation> <translation id="8703575177326907206">Sambungan anda ke <ph name="DOMAIN" /> tidak disulitkan.</translation>
diff --git a/components/strings/components_strings_my.xtb b/components/strings/components_strings_my.xtb index bacead3..66da0af4 100644 --- a/components/strings/components_strings_my.xtb +++ b/components/strings/components_strings_my.xtb
@@ -1897,7 +1897,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">ရနိုင်သည်</translation> <translation id="868922510921656628">အတွဲတစ်တွဲပါ စာမျက်နှာများ</translation> -<translation id="8697373104056314601">Chrome ၏ အမြင့်ဆုံးလုံခြုံရေး ရရှိရန် <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />အဆင့်မြှင့်တင်ထားသော ကာကွယ်မှုကို ဖွင့်ပါ<ph name="END_ENHANCED_PROTECTION_LINK" />။</translation> <translation id="869891660844655955">သက်တမ်း ကုန်ဆုံးရက်</translation> <translation id="8699041776323235191">HID စက်ပစ္စည်း</translation> <translation id="8703575177326907206">သင်၏ <ph name="DOMAIN" />သို့ ချိတ်က်မှုကို လျှို့ဝှက်ကုဒ် မသွင်းထားပါ။</translation>
diff --git a/components/strings/components_strings_ne.xtb b/components/strings/components_strings_ne.xtb index d766a0e..070e9e9f 100644 --- a/components/strings/components_strings_ne.xtb +++ b/components/strings/components_strings_ne.xtb
@@ -1891,7 +1891,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">उपलब्ध</translation> <translation id="868922510921656628">प्रति समूह पृष्ठको सङ्ख्या</translation> -<translation id="8697373104056314601">Chrome को सबैभन्दा उच्च स्तरको सुरक्षा सुविधा प्रयोग गर्न <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />परिष्कृत सुरक्षा<ph name="END_ENHANCED_PROTECTION_LINK" /> अन गर्नुहोस्।</translation> <translation id="869891660844655955">समाप्ति मिति</translation> <translation id="8699041776323235191">HID यन्त्र</translation> <translation id="8703575177326907206"><ph name="DOMAIN" /> सँग तपाईंको जडान गुप्तलिखित छैन।</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb index 8e4fbcae..da4059a4 100644 --- a/components/strings/components_strings_nl.xtb +++ b/components/strings/components_strings_nl.xtb
@@ -1886,7 +1886,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Beschikbaar</translation> <translation id="868922510921656628">Pagina's per set</translation> -<translation id="8697373104056314601"><ph name="BEGIN_ENHANCED_PROTECTION_LINK" />Schakel geoptimaliseerde beveiliging in<ph name="END_ENHANCED_PROTECTION_LINK" /> om het hoogste beveiligingsniveau van Chrome te gebruiken.</translation> <translation id="869891660844655955">Vervaldatum</translation> <translation id="8699041776323235191">HID-apparaat</translation> <translation id="8703575177326907206">Je verbinding met <ph name="DOMAIN" /> is niet gecodeerd.</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb index 5418000..e48feb4 100644 --- a/components/strings/components_strings_no.xtb +++ b/components/strings/components_strings_no.xtb
@@ -1896,7 +1896,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Tilgjengelig</translation> <translation id="868922510921656628">Sider pr. sett</translation> -<translation id="8697373104056314601">For å få det høyeste sikkerhetsnivået som Chrome tilbyr, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />slå på økt beskyttelse<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Utløpsdato</translation> <translation id="8699041776323235191">HID-enhet</translation> <translation id="8703575177326907206">Tilkoblingen til <ph name="DOMAIN" /> er ikke kryptert.</translation>
diff --git a/components/strings/components_strings_or.xtb b/components/strings/components_strings_or.xtb index ad87694..ce5e2727 100644 --- a/components/strings/components_strings_or.xtb +++ b/components/strings/components_strings_or.xtb
@@ -1881,7 +1881,6 @@ <translation id="8685155993131031756">PRC 16K</translation> <translation id="8688672835843460752">ଉପଲବ୍ଧ</translation> <translation id="868922510921656628">ପ୍ରତି ସେଟ୍ ପୃଷ୍ଠାଗୁଡ଼ିକ</translation> -<translation id="8697373104056314601">Chromeର ସର୍ବୋଚ୍ଚ ସ୍ତରର ସୁରକ୍ଷା ପାଇବାକୁ, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />ଉନ୍ନତ ସୁରକ୍ଷା ଚାଲୁ କରନ୍ତୁ<ph name="END_ENHANCED_PROTECTION_LINK" />।</translation> <translation id="869891660844655955">ମିଆଦ ଶେଷ ହେଉଥିବା ତାରିଖ</translation> <translation id="8699041776323235191">HID ଡିଭାଇସ୍</translation> <translation id="8703575177326907206"><ph name="DOMAIN" /> ସହ ଆପଣଙ୍କର ସଂଯୋଜନା ଏନକ୍ରିପ୍ଟ ହୋଇ ନାହିଁ ।</translation>
diff --git a/components/strings/components_strings_pa.xtb b/components/strings/components_strings_pa.xtb index 8fa340b..fbdf3e3d 100644 --- a/components/strings/components_strings_pa.xtb +++ b/components/strings/components_strings_pa.xtb
@@ -279,6 +279,7 @@ <translation id="204357726431741734">ਆਪਣੇ Google ਖਾਤੇ ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤੇ ਪਾਸਵਰਡ ਵਰਤਣ ਲਈ ਸਾਈਨ-ਇਨ ਕਰੋ</translation> <translation id="2053111141626950936"><ph name="LANGUAGE" /> ਭਾਸ਼ਾ ਵਾਲੇ ਪੰਨਿਆਂ ਦਾ ਅਨੁਵਾਦ ਨਹੀਂ ਕੀਤਾ ਜਾਵੇਗਾ।</translation> <translation id="2053553514270667976">ਜ਼ਿਪ ਕੋਡ</translation> +<translation id="2054665754582400095">ਤੁਹਾਡੀ ਮੌਜੂਦਗੀ</translation> <translation id="2064691555167957331">{COUNT,plural, =1{1 ਸੁਝਾਅ}one{# ਸੁਝਾਅ}other{ # ਸੁਝਾਅ}}</translation> <translation id="2079545284768500474">ਅਣਕੀਤਾ ਕਰੋ</translation> <translation id="20817612488360358">ਸਿਸਟਮ ਪ੍ਰੌਕਸੀ ਸੈਟਿੰਗਾਂ ਵਰਤੇ ਜਾਣ ਲਈ ਸੈੱਟ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ ਪਰ ਇੱਕ ਸਪਸ਼ਟ ਪ੍ਰੌਕਸੀ ਸੰਰੂਪਿਤ ਵੀ ਨਿਸ਼ਚਿਤ ਹੈ।</translation> @@ -1881,7 +1882,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">ਉਪਲਬਧ</translation> <translation id="868922510921656628">ਪ੍ਰਤੀ ਸੈੱਟ ਪੰਨੇ</translation> -<translation id="8697373104056314601">Chrome ਦੀ ਉੱਚਤਮ ਪੱਧਰ ਦੀ ਸੁਰੱਖਿਆ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />ਵਿਸਤ੍ਰਿਤ ਸੁਰੱਖਿਆ ਨੂੰ ਚਾਲੂ ਕਰੋ<ph name="END_ENHANCED_PROTECTION_LINK" />।</translation> <translation id="869891660844655955">ਮਿਆਦ ਪੁੱਗਣ ਦੀ ਤਾਰੀਖ</translation> <translation id="8699041776323235191">HID ਡੀਵਾਈਸ</translation> <translation id="8703575177326907206"><ph name="DOMAIN" /> ਨਾਲ ਤੁਹਾਡਾ ਕਨੈਕਸ਼ਨ ਐਨਕ੍ਰਿਪਟ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ।</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb index d658553..962b8e86 100644 --- a/components/strings/components_strings_pl.xtb +++ b/components/strings/components_strings_pl.xtb
@@ -1888,7 +1888,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Dostępne</translation> <translation id="868922510921656628">Strony na zestaw</translation> -<translation id="8697373104056314601">Aby korzystać z najwyższego poziomu zabezpieczeń Chrome, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />włącz silniejszą ochronę<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Data wygaśnięcia</translation> <translation id="8699041776323235191">Urządzenie HID</translation> <translation id="8703575177326907206">Połączenie z witryną <ph name="DOMAIN" /> nie jest szyfrowane.</translation>
diff --git a/components/strings/components_strings_pt-BR.xtb b/components/strings/components_strings_pt-BR.xtb index 75f72b0c..aee0df29 100644 --- a/components/strings/components_strings_pt-BR.xtb +++ b/components/strings/components_strings_pt-BR.xtb
@@ -1887,7 +1887,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Disponível</translation> <translation id="868922510921656628">Páginas por grupo</translation> -<translation id="8697373104056314601">Para usar o nível mais alto de segurança do Chrome, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />ative a proteção reforçada<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Validade</translation> <translation id="8699041776323235191">Dispositivo HID</translation> <translation id="8703575177326907206">Sua conexão com <ph name="DOMAIN" /> não está criptografada.</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb index f0a4486..0d7105a 100644 --- a/components/strings/components_strings_pt-PT.xtb +++ b/components/strings/components_strings_pt-PT.xtb
@@ -1897,7 +1897,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Disponível</translation> <translation id="868922510921656628">Páginas por conjunto</translation> -<translation id="8697373104056314601">Para obter o nível de segurança mais elevado do Chrome, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />ative a proteção melhorada<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Data de expiração</translation> <translation id="8699041776323235191">Dispositivo HID</translation> <translation id="8703575177326907206">A sua ligação a <ph name="DOMAIN" /> não está encriptada.</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb index 5bd262f..a966347 100644 --- a/components/strings/components_strings_ro.xtb +++ b/components/strings/components_strings_ro.xtb
@@ -1896,7 +1896,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Disponibilă</translation> <translation id="868922510921656628">Pagini per set</translation> -<translation id="8697373104056314601">Pentru a beneficia de cel mai înalt nivel de securitate, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />activează protecția îmbunătățită<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Dată de expirare</translation> <translation id="8699041776323235191">Dispozitiv HID</translation> <translation id="8703575177326907206">Conexiunea la <ph name="DOMAIN" /> nu este criptată.</translation>
diff --git a/components/strings/components_strings_ru.xtb b/components/strings/components_strings_ru.xtb index 168099d..2f2fe9f 100644 --- a/components/strings/components_strings_ru.xtb +++ b/components/strings/components_strings_ru.xtb
@@ -1885,7 +1885,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Свободно</translation> <translation id="868922510921656628">Число страниц в наборе</translation> -<translation id="8697373104056314601">Чтобы браузер Chrome стал максимально безопасным, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />включите режим "Улучшенная защита"<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Срок действия</translation> <translation id="8699041776323235191">HID-устройство</translation> <translation id="8703575177326907206">Соединение с <ph name="DOMAIN" /> не зашифровано.</translation>
diff --git a/components/strings/components_strings_si.xtb b/components/strings/components_strings_si.xtb index b4b14400..3f74257 100644 --- a/components/strings/components_strings_si.xtb +++ b/components/strings/components_strings_si.xtb
@@ -1892,7 +1892,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">තිබේ</translation> <translation id="868922510921656628">කට්ටලයකට පිටු</translation> -<translation id="8697373104056314601">Chrome හි ඉහළම ආරක්ෂාව ලබා ගැනීමට, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />වැඩි දියුණු කළ ආරක්ෂාව ක්රියාත්මක කරන්න<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">කල් ඉකුත් වීමේ දිනය:</translation> <translation id="8699041776323235191">HID උපාංගය</translation> <translation id="8703575177326907206"><ph name="DOMAIN" /> වෙත ඔබේ සම්බන්ධතාව සංකේතනය කර නැත.</translation>
diff --git a/components/strings/components_strings_sk.xtb b/components/strings/components_strings_sk.xtb index 197bbf1..7592407 100644 --- a/components/strings/components_strings_sk.xtb +++ b/components/strings/components_strings_sk.xtb
@@ -1882,7 +1882,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">K dispozícii</translation> <translation id="868922510921656628">Počet strán v súprave</translation> -<translation id="8697373104056314601">Ak chcete získať najvyšší stupeň zabezpečenia Chromu, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />zapnite rozšírenú ochranu<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Koniec platnosti</translation> <translation id="8699041776323235191">Zariadenie HID</translation> <translation id="8703575177326907206">Vaše pripojenie k doméne <ph name="DOMAIN" /> sa nešifruje.</translation>
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb index e4fba21..30f99eb 100644 --- a/components/strings/components_strings_sl.xtb +++ b/components/strings/components_strings_sl.xtb
@@ -1897,7 +1897,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Na voljo</translation> <translation id="868922510921656628">Strani na niz</translation> -<translation id="8697373104056314601">Če želite imeti Chromovo največjo raven varnosti, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />vklopite izboljšano zaščito<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Datum izteka</translation> <translation id="8699041776323235191">Naprava HID</translation> <translation id="8703575177326907206">Vaša povezava z <ph name="DOMAIN" /> ni kodirana.</translation>
diff --git a/components/strings/components_strings_sq.xtb b/components/strings/components_strings_sq.xtb index 11543fa..cf3bb3d 100644 --- a/components/strings/components_strings_sq.xtb +++ b/components/strings/components_strings_sq.xtb
@@ -1891,7 +1891,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">E disponueshme</translation> <translation id="868922510921656628">Faqe për grup</translation> -<translation id="8697373104056314601">Për të marrë nivelin më të lartë të sigurisë së Chrome, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />aktivizo mbrojtjen e përmirësuar<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Data e skadimit</translation> <translation id="8699041776323235191">Pajisje HID</translation> <translation id="8703575177326907206">Lidhja me <ph name="DOMAIN" /> nuk është e enkriptuar.</translation>
diff --git a/components/strings/components_strings_sr-Latn.xtb b/components/strings/components_strings_sr-Latn.xtb index b9def76..f59567b4 100644 --- a/components/strings/components_strings_sr-Latn.xtb +++ b/components/strings/components_strings_sr-Latn.xtb
@@ -1897,7 +1897,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Dostupno</translation> <translation id="868922510921656628">Stranice po skupu</translation> -<translation id="8697373104056314601">Da biste dobili najviši nivo zaštite u Chrome-u, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />uključite poboljšanu zaštitu<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Datum isteka</translation> <translation id="8699041776323235191">Uređaj sa interfejsom</translation> <translation id="8703575177326907206">Vaša veza sa domenom <ph name="DOMAIN" /> nije šifrovana.</translation>
diff --git a/components/strings/components_strings_sr.xtb b/components/strings/components_strings_sr.xtb index 1ca0e5c..0794e76 100644 --- a/components/strings/components_strings_sr.xtb +++ b/components/strings/components_strings_sr.xtb
@@ -1897,7 +1897,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Доступно</translation> <translation id="868922510921656628">Странице по скупу</translation> -<translation id="8697373104056314601">Да бисте добили највиши ниво заштите у Chrome-у, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />укључите побољшану заштиту<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Датум истека</translation> <translation id="8699041776323235191">Уређај са интерфејсом</translation> <translation id="8703575177326907206">Ваша веза са доменом <ph name="DOMAIN" /> није шифрована.</translation>
diff --git a/components/strings/components_strings_sv.xtb b/components/strings/components_strings_sv.xtb index 9a45d8a..e2b77f2 100644 --- a/components/strings/components_strings_sv.xtb +++ b/components/strings/components_strings_sv.xtb
@@ -1898,7 +1898,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Tillgängligt</translation> <translation id="868922510921656628">Sidor per uppsättning</translation> -<translation id="8697373104056314601"><ph name="BEGIN_ENHANCED_PROTECTION_LINK" />Sätt på Förbättrat skydd<ph name="END_ENHANCED_PROTECTION_LINK" /> för att få Chromes högsta säkerhetsnivå.</translation> <translation id="869891660844655955">Utgångsdatum</translation> <translation id="8699041776323235191">HID-enhet</translation> <translation id="8703575177326907206">Din anslutning till <ph name="DOMAIN" /> är inte krypterad.</translation>
diff --git a/components/strings/components_strings_sw.xtb b/components/strings/components_strings_sw.xtb index 5b72258e..53bf7ff3 100644 --- a/components/strings/components_strings_sw.xtb +++ b/components/strings/components_strings_sw.xtb
@@ -1893,7 +1893,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Inapatikana</translation> <translation id="868922510921656628">Kurasa kwa kila laha</translation> -<translation id="8697373104056314601">Ili upate kiwango cha juu zaidi cha usalama kutoka Chrome, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />washa kipengele cha ulinzi wa kiwango cha juu<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Muda wake unakwisha tarehe</translation> <translation id="8699041776323235191">Kifaa cha HID</translation> <translation id="8703575177326907206">Muunganisho wako kwa <ph name="DOMAIN" /> haujasimbwa.</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb index 5866de006..2c95b94 100644 --- a/components/strings/components_strings_ta.xtb +++ b/components/strings/components_strings_ta.xtb
@@ -1889,7 +1889,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">மீதமுள்ளது:</translation> <translation id="868922510921656628">ஒரு செட்டிற்கான பக்கங்கள்</translation> -<translation id="8697373104056314601">Chromeமின் அதிகபட்ச பாதுகாப்பைப் பெற <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />மேம்பட்ட பாதுகாப்பை இயக்கவும்<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">காலாவதியாகும் தேதி</translation> <translation id="8699041776323235191">HID சாதனம்</translation> <translation id="8703575177326907206"><ph name="DOMAIN" /> க்கான உங்கள் இணைப்பு என்க்ரிப்ட் செய்யப்படவில்லை.</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb index 41f5d789..74ab1439 100644 --- a/components/strings/components_strings_te.xtb +++ b/components/strings/components_strings_te.xtb
@@ -1897,7 +1897,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">అందుబాటులో ఉంది</translation> <translation id="868922510921656628">ఒక సెట్లో ఉన్న పేజీలు</translation> -<translation id="8697373104056314601">Chrome అత్యధిక స్థాయి రక్షణను పొందడానికి, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />మెరుగుపరిచిన ఫీచర్లను ఆన్ చేయండి<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">గడువు తేదీ</translation> <translation id="8699041776323235191">HID పరికరం</translation> <translation id="8703575177326907206"><ph name="DOMAIN" />కు మీ కనెక్షన్ ఎన్క్రిప్ట్ చేయబడలేదు.</translation>
diff --git a/components/strings/components_strings_th.xtb b/components/strings/components_strings_th.xtb index 26c1c10c..8a865f2 100644 --- a/components/strings/components_strings_th.xtb +++ b/components/strings/components_strings_th.xtb
@@ -1886,7 +1886,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">มีอยู่</translation> <translation id="868922510921656628">จำนวนหน้าต่อชุด</translation> -<translation id="8697373104056314601"><ph name="BEGIN_ENHANCED_PROTECTION_LINK" />เปิดการปกป้องที่ปรับปรุงแล้ว<ph name="END_ENHANCED_PROTECTION_LINK" />เพื่อให้ Chrome รักษาความปลอดภัยในระดับสูงที่สุด</translation> <translation id="869891660844655955">วันหมดอายุ</translation> <translation id="8699041776323235191">อุปกรณ์ HID</translation> <translation id="8703575177326907206">การเชื่อมต่อของคุณไปยัง <ph name="DOMAIN" /> ไม่ได้รับการเข้ารหัส</translation>
diff --git a/components/strings/components_strings_tr.xtb b/components/strings/components_strings_tr.xtb index 0e9fba13..120f6fb 100644 --- a/components/strings/components_strings_tr.xtb +++ b/components/strings/components_strings_tr.xtb
@@ -1889,7 +1889,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Kullanılabilir</translation> <translation id="868922510921656628">Grup başına sayfa</translation> -<translation id="8697373104056314601">Chrome’un sağladığı en yüksek güvenlik düzeyinden faydalanmak için <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />gelişmiş korumayı açın<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Son kullanma tarihi</translation> <translation id="8699041776323235191">HID cihazı</translation> <translation id="8703575177326907206"><ph name="DOMAIN" /> bağlantınız şifrelenmedi.</translation>
diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb index 60b7972..ad8df97 100644 --- a/components/strings/components_strings_uk.xtb +++ b/components/strings/components_strings_uk.xtb
@@ -1896,7 +1896,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Доступно</translation> <translation id="868922510921656628">Кількість сторінок у наборі</translation> -<translation id="8697373104056314601">Щоб веб-переглядач Chrome був максимально безпечним, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />увімкніть покращений захист<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Діє до</translation> <translation id="8699041776323235191">Пристрій HID</translation> <translation id="8703575177326907206">Ваше з’єднання з <ph name="DOMAIN" /> не зашифровано.</translation>
diff --git a/components/strings/components_strings_ur.xtb b/components/strings/components_strings_ur.xtb index be5f5ee..7b0ab35 100644 --- a/components/strings/components_strings_ur.xtb +++ b/components/strings/components_strings_ur.xtb
@@ -1900,7 +1900,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">دستیاب</translation> <translation id="868922510921656628">صفحات فی سیٹ</translation> -<translation id="8697373104056314601">Chrome کی اعلی ترین سیکیورٹی حاصل کرنے کے لئے، <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />بہتر کردہ حفاظت کو آن کریں<ph name="END_ENHANCED_PROTECTION_LINK" />۔</translation> <translation id="869891660844655955">میعاد ختم ہونے کی تاریخ</translation> <translation id="8699041776323235191">HID آلہ</translation> <translation id="8703575177326907206"><ph name="DOMAIN" /> سے آپ کا کنکشن مرموز نہیں کیا گیا ہے۔</translation>
diff --git a/components/strings/components_strings_uz.xtb b/components/strings/components_strings_uz.xtb index f00ee1c..bb3abf7b 100644 --- a/components/strings/components_strings_uz.xtb +++ b/components/strings/components_strings_uz.xtb
@@ -1891,7 +1891,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Bo‘sh</translation> <translation id="868922510921656628">Majmuadagi sahifalar soni</translation> -<translation id="8697373104056314601">Chrome brauzerining yuqori darajadagi xavfsizligidan foydalanish uchun <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />kengaytirilgan himoyani yoqing<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Tugash muddati</translation> <translation id="8699041776323235191">HID qurilmasi</translation> <translation id="8703575177326907206"><ph name="DOMAIN" /> domeniga ulanish shifrlanmagan.</translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb index 66d9a048..412c7a5 100644 --- a/components/strings/components_strings_vi.xtb +++ b/components/strings/components_strings_vi.xtb
@@ -1898,7 +1898,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Có sẵn</translation> <translation id="868922510921656628">Số trang mỗi tập</translation> -<translation id="8697373104056314601">Để tận dụng mức bảo mật cao nhất của Chrome, hãy <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />bật chế độ bảo vệ tăng cường<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Ngày hết hạn</translation> <translation id="8699041776323235191">Thiết bị HID</translation> <translation id="8703575177326907206">Kết nối của bạn đến <ph name="DOMAIN" /> không được mã hóa.</translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb index cc44b2b..8d55ce5 100644 --- a/components/strings/components_strings_zh-CN.xtb +++ b/components/strings/components_strings_zh-CN.xtb
@@ -1881,7 +1881,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">可用</translation> <translation id="868922510921656628">每组页数</translation> -<translation id="8697373104056314601">如果您想获得 Chrome 最高级别的安全保护,请<ph name="BEGIN_ENHANCED_PROTECTION_LINK" />开启增强型保护<ph name="END_ENHANCED_PROTECTION_LINK" />。</translation> <translation id="869891660844655955">截止日期</translation> <translation id="8699041776323235191">HID 设备</translation> <translation id="8703575177326907206">您与 <ph name="DOMAIN" /> 的连接未加密。</translation>
diff --git a/components/strings/components_strings_zh-HK.xtb b/components/strings/components_strings_zh-HK.xtb index 74609555d..7cab28d 100644 --- a/components/strings/components_strings_zh-HK.xtb +++ b/components/strings/components_strings_zh-HK.xtb
@@ -279,7 +279,7 @@ <translation id="204357726431741734">登入即可使用儲存在 Google 帳戶中的密碼</translation> <translation id="2053111141626950936">系統將不會翻譯<ph name="LANGUAGE" />網頁。</translation> <translation id="2053553514270667976">郵遞區號</translation> -<translation id="2054665754582400095">你的使用狀態</translation> +<translation id="2054665754582400095">您的狀態</translation> <translation id="2064691555167957331">{COUNT,plural, =1{1 個建議}other{# 個建議}}</translation> <translation id="2079545284768500474">復原</translation> <translation id="20817612488360358">雖然系統 Proxy 設定已設為使用,不過也指定了明確的 Proxy 設定。</translation> @@ -1885,7 +1885,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">可用</translation> <translation id="868922510921656628">每組頁數</translation> -<translation id="8697373104056314601">如要獲得 Chrome 最高程度的安全防護,請<ph name="BEGIN_ENHANCED_PROTECTION_LINK" />啟用強化保護功能<ph name="END_ENHANCED_PROTECTION_LINK" />。</translation> <translation id="869891660844655955">到期日</translation> <translation id="8699041776323235191">HID 裝置</translation> <translation id="8703575177326907206">您與 <ph name="DOMAIN" /> 的連線未加密。</translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb index a912054..4dc43da 100644 --- a/components/strings/components_strings_zh-TW.xtb +++ b/components/strings/components_strings_zh-TW.xtb
@@ -1886,7 +1886,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">可用空間</translation> <translation id="868922510921656628">每組頁數</translation> -<translation id="8697373104056314601">要獲得 Chrome 最高等級的安全防護,請<ph name="BEGIN_ENHANCED_PROTECTION_LINK" />啟用強化防護功能<ph name="END_ENHANCED_PROTECTION_LINK" />。</translation> <translation id="869891660844655955">到期日</translation> <translation id="8699041776323235191">HID 裝置</translation> <translation id="8703575177326907206">你到 <ph name="DOMAIN" /> 的連線未加密。</translation>
diff --git a/components/strings/components_strings_zu.xtb b/components/strings/components_strings_zu.xtb index 4cbb410..b8c451a 100644 --- a/components/strings/components_strings_zu.xtb +++ b/components/strings/components_strings_zu.xtb
@@ -1894,7 +1894,6 @@ <translation id="8685155993131031756">Prc-16K</translation> <translation id="8688672835843460752">Kuyatholakala</translation> <translation id="868922510921656628">Amakhasi ngesethi ngayinye</translation> -<translation id="8697373104056314601">Ukuze uthole ileveli yokuphepha ephakeme kakhulu ye-Chrome, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />vula isivielo esithuthukisiwe<ph name="END_ENHANCED_PROTECTION_LINK" />.</translation> <translation id="869891660844655955">Idethi yokuphelelwa yisikhathi</translation> <translation id="8699041776323235191">Idivayisi ye-HID</translation> <translation id="8703575177326907206">Ukuxhumeka kwakho ku-<ph name="DOMAIN" /> akubetheliwe.</translation>
diff --git a/components/tracing/common/trace_startup_config.cc b/components/tracing/common/trace_startup_config.cc index 3ad44dc..5da3a216 100644 --- a/components/tracing/common/trace_startup_config.cc +++ b/components/tracing/common/trace_startup_config.cc
@@ -66,15 +66,8 @@ // static base::trace_event::TraceConfig TraceStartupConfig::GetDefaultBrowserStartupConfig() { - base::trace_event::TraceConfig trace_config( + return base::trace_event::TraceConfig( kDefaultStartupCategories, base::trace_event::RECORD_UNTIL_FULL); - // Filter only browser process events. - base::trace_event::TraceConfig::ProcessFilterConfig process_config( - {base::GetCurrentProcId()}); - // First 10k events at start are sufficient to debug startup traces. - trace_config.SetTraceBufferSizeInEvents(10000); - trace_config.SetProcessFilterConfig(process_config); - return trace_config; } TraceStartupConfig::TraceStartupConfig() {
diff --git a/components/viz/service/display/dc_layer_overlay.cc b/components/viz/service/display/dc_layer_overlay.cc index 2433b7b..2272a82 100644 --- a/components/viz/service/display/dc_layer_overlay.cc +++ b/components/viz/service/display/dc_layer_overlay.cc
@@ -5,6 +5,7 @@ #include "components/viz/service/display/dc_layer_overlay.h" #include <limits> +#include <utility> #include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_macros.h" @@ -35,6 +36,8 @@ constexpr int kDCLayerDebugBorderWidth = 4; constexpr gfx::Insets kDCLayerDebugBorderInsets = gfx::Insets(-2); +using RenderPassListWithFilters = base::flat_map<AggregatedRenderPassId, float>; + // This is used for a histogram to determine why overlays are or aren't used, // so don't remove entries and make sure to update enums.xml if it changes. enum DCLayerResult { @@ -69,6 +72,18 @@ return quad_rect; } +gfx::RectF GetExpandedRectWithPixelMovingFilter( + const AggregatedRenderPassDrawQuad* rpdq, + float max_pixel_movement) { + const SharedQuadState* shared_quad_state = rpdq->shared_quad_state; + gfx::Rect expanded_rect = rpdq->rect; + expanded_rect.Inset(-max_pixel_movement, -max_pixel_movement); + + // expanded_rect in the target space + return cc::MathUtil::MapClippedRect( + shared_quad_state->quad_to_target_transform, gfx::RectF(expanded_rect)); +} + DCLayerResult ValidateYUVQuad( const YUVVideoDrawQuad* quad, const std::vector<gfx::Rect>& backdrop_filter_rects, @@ -236,16 +251,38 @@ } // Any occluding quads in the quad list on top of the overlay/underlay -bool HasOccludingQuads(const gfx::RectF& target_quad, - QuadList::ConstIterator quad_list_begin, - QuadList::ConstIterator quad_list_end) { +bool HasOccludingQuads( + const gfx::RectF& target_quad, + QuadList::ConstIterator quad_list_begin, + QuadList::ConstIterator quad_list_end, + RenderPassListWithFilters& render_pass_has_pixel_moving_filters) { for (auto overlap_iter = quad_list_begin; overlap_iter != quad_list_end; ++overlap_iter) { float opacity = overlap_iter->shared_quad_state->opacity; if (opacity < std::numeric_limits<float>::epsilon()) continue; + const DrawQuad* quad = *overlap_iter; - gfx::RectF overlap_rect = ClippedQuadRectangle(quad); + gfx::RectF overlap_rect; + // Expand the overlap_rect for the render pass draw quad with pixel moving + // foreground filters. + bool has_pixel_moving_filter = false; + if (!render_pass_has_pixel_moving_filters.empty() && + quad->material == DrawQuad::Material::kAggregatedRenderPass) { + const auto* rpdq = AggregatedRenderPassDrawQuad::MaterialCast(quad); + auto render_pass_it = + render_pass_has_pixel_moving_filters.find(rpdq->render_pass_id); + if (render_pass_it != render_pass_has_pixel_moving_filters.end()) { + float max_pixel_movement = render_pass_it->second; + overlap_rect = + GetExpandedRectWithPixelMovingFilter(rpdq, max_pixel_movement); + has_pixel_moving_filter = true; + } + } + + if (!has_pixel_moving_filter) + overlap_rect = ClippedQuadRectangle(quad); + if (quad->material == DrawQuad::Material::kSolidColor) { SkColor color = SolidColorDrawQuad::MaterialCast(quad)->color; float alpha = (SkColorGetA(color) * (1.0f / 255.0f)) * opacity; @@ -553,11 +590,19 @@ processed_yuv_overlay_count_ = 0; surface_damage_rect_list_ = surface_damage_rect_list; - // Which render passes have backdrop filters. + // Which render passes have backdrop filters or pixel moving foreground + // filters. base::flat_set<AggregatedRenderPassId> render_pass_has_backdrop_filters; + RenderPassListWithFilters render_pass_has_pixel_moving_filters; + for (const auto& render_pass : *render_pass_list) { if (!render_pass->backdrop_filters.IsEmpty()) render_pass_has_backdrop_filters.insert(render_pass->id); + + if (render_pass->filters.HasFilterThatMovesPixels()) { + render_pass_has_pixel_moving_filters.insert( + {render_pass->id, render_pass->filters.MaximumPixelMovement()}); + } } // Output rects of child render passes that have backdrop filters in target @@ -659,8 +704,9 @@ gfx::ToEnclosingRect(ClippedQuadRectangle(*it)); // Quad is considered an "overlay" if it has no occluders. - const bool is_overlay = !HasOccludingQuads( - gfx::RectF(quad_rectangle_in_target_space), quad_list->begin(), it); + bool is_overlay = !HasOccludingQuads( + gfx::RectF(quad_rectangle_in_target_space), quad_list->begin(), it, + render_pass_has_pixel_moving_filters); // Protected video is always put in an overlay, but texture quads can be // skipped if they're not underlay compatible.
diff --git a/components/viz/service/display/overlay_dc_unittest.cc b/components/viz/service/display/overlay_dc_unittest.cc index 76780eae..0875a557 100644 --- a/components/viz/service/display/overlay_dc_unittest.cc +++ b/components/viz/service/display/overlay_dc_unittest.cc
@@ -207,6 +207,19 @@ return overlay_quad; } +AggregatedRenderPassDrawQuad* CreateRenderPassDrawQuadAt( + AggregatedRenderPass* render_pass, + const SharedQuadState* shared_quad_state, + const gfx::Rect& rect, + AggregatedRenderPassId render_pass_id) { + AggregatedRenderPassDrawQuad* quad = + render_pass->CreateAndAppendDrawQuad<AggregatedRenderPassDrawQuad>(); + quad->SetNew(shared_quad_state, rect, rect, render_pass_id, 2, gfx::RectF(), + gfx::Size(), gfx::Vector2dF(1, 1), gfx::PointF(), gfx::RectF(), + false, 1.f); + return quad; +} + SkMatrix44 GetIdentityColorMatrix() { return SkMatrix44(SkMatrix44::kIdentity_Constructor); } @@ -775,5 +788,147 @@ } } +// Test that the video is forced to underlay if the expanded quad of pixel +// moving foreground filter is on top. +TEST_F(DCLayerOverlayTest, PixelMovingForegroundFilter) { + AggregatedRenderPassList pass_list; + + // Create a non-root render pass with a pixel-moving foreground filter. + AggregatedRenderPassId filter_render_pass_id{2}; + gfx::Rect filter_rect = gfx::Rect(260, 260, 100, 100); + cc::FilterOperations blur_filter; + blur_filter.Append(cc::FilterOperation::CreateBlurFilter(10.f)); + auto filter_pass = std::make_unique<AggregatedRenderPass>(); + filter_pass->SetNew(filter_render_pass_id, filter_rect, filter_rect, + gfx::Transform()); + filter_pass->filters = blur_filter; + + // Add a solid quad to the non-root pass. + SharedQuadState* shared_state_filter = + filter_pass->CreateAndAppendSharedQuadState(); + CreateSolidColorQuadAt(shared_state_filter, SK_ColorRED, filter_pass.get(), + filter_rect); + shared_state_filter->opacity = 1.f; + pass_list.push_back(std::move(filter_pass)); + + // Create a root render pass. + auto pass = CreateRenderPass(); + // Add a RenderPassDrawQuad to the root render pass. + SharedQuadState* shared_quad_state_rpdq = pass->shared_quad_state_list.back(); + // The pixel-moving render pass draw quad itself (rpdq->rect) doesn't + // intersect with kOverlayRect(0, 0, 256, 256), but the expanded draw quad + // (rpdq->rect(260, 260, 100, 100) + MaximumPixelMovement (2 * 10.f) = (240, + // 240, 140, 140)) does. + + CreateRenderPassDrawQuadAt(pass.get(), shared_quad_state_rpdq, filter_rect, + filter_render_pass_id); + + // Add a video quad to the root render pass. + SharedQuadState* shared_state = pass->CreateAndAppendSharedQuadState(); + shared_state->opacity = 1.f; + CreateFullscreenCandidateYUVVideoQuad( + resource_provider_.get(), child_resource_provider_.get(), + child_provider_.get(), shared_state, pass.get()); + // Make the root render pass output rect bigger enough to cover the video + // quad kOverlayRect(0, 0, 256, 256) and the render pass draw quad (260, 260, + // 100, 100). + pass->output_rect = gfx::Rect(0, 0, 512, 512); + + DCLayerOverlayList dc_layer_list; + OverlayProcessorInterface::FilterOperationsMap render_pass_filters; + OverlayProcessorInterface::FilterOperationsMap render_pass_backdrop_filters; + render_pass_filters[filter_render_pass_id] = &blur_filter; + + pass_list.push_back(std::move(pass)); + // filter_rect + kOverlayRect. Both are damaged. + gfx::Rect damage_rect_ = gfx::Rect(0, 0, 360, 360); + shared_state->overlay_damage_index = 1; + + SurfaceDamageRectList surface_damage_rect_list = {filter_rect, kOverlayRect}; + + overlay_processor_->ProcessForOverlays( + resource_provider_.get(), &pass_list, GetIdentityColorMatrix(), + render_pass_filters, render_pass_backdrop_filters, + &surface_damage_rect_list, nullptr, &dc_layer_list, &damage_rect_, + &content_bounds_); + + EXPECT_EQ(1U, dc_layer_list.size()); + // Make sure the video is in an underlay mode if the overlay quad intersects + // with (rpdq->rect + MaximumPixelMovement()). + EXPECT_EQ(-1, dc_layer_list.back().z_order); + EXPECT_EQ(gfx::Rect(0, 0, 360, 360), damage_rect_); +} + +// Test that the video is not promoted if a quad on top has backdrop filters. +TEST_F(DCLayerOverlayTest, BackdropFilter) { + AggregatedRenderPassList pass_list; + + // Create a non-root render pass with a backdrop filter. + AggregatedRenderPassId backdrop_filter_render_pass_id{2}; + gfx::Rect backdrop_filter_rect = gfx::Rect(200, 200, 100, 100); + cc::FilterOperations backdrop_filter; + backdrop_filter.Append(cc::FilterOperation::CreateBlurFilter(10.f)); + auto backdrop_filter_pass = std::make_unique<AggregatedRenderPass>(); + backdrop_filter_pass->SetNew(backdrop_filter_render_pass_id, + backdrop_filter_rect, backdrop_filter_rect, + gfx::Transform()); + backdrop_filter_pass->backdrop_filters = backdrop_filter; + + // Add a transparent solid quad to the non-root pass. + SharedQuadState* shared_state_backdrop_filter = + backdrop_filter_pass->CreateAndAppendSharedQuadState(); + CreateSolidColorQuadAt(shared_state_backdrop_filter, SK_ColorGREEN, + backdrop_filter_pass.get(), backdrop_filter_rect); + shared_state_backdrop_filter->opacity = 0.1f; + pass_list.push_back(std::move(backdrop_filter_pass)); + + // Create a root render pass. + auto pass = CreateRenderPass(); + // Add a RenderPassDrawQuad to the root render pass, on top of the video. + SharedQuadState* shared_quad_state_rpdq = pass->shared_quad_state_list.back(); + shared_quad_state_rpdq->opacity = 0.1f; + // The render pass draw quad rpdq->rect intersects with the overlay quad + // kOverlayRect(0, 0, 256, 256). + CreateRenderPassDrawQuadAt(pass.get(), shared_quad_state_rpdq, + backdrop_filter_rect, + backdrop_filter_render_pass_id); + + // Add a video quad to the root render pass. + SharedQuadState* shared_state = pass->CreateAndAppendSharedQuadState(); + shared_state->opacity = 1.f; + CreateFullscreenCandidateYUVVideoQuad( + resource_provider_.get(), child_resource_provider_.get(), + child_provider_.get(), shared_state, pass.get()); + // Make the root render pass output rect bigger enough to cover the video + // quad kOverlayRect(0, 0, 256, 256) and the render pass draw quad (200, 200, + // 100, 100). + pass->output_rect = gfx::Rect(0, 0, 512, 512); + + DCLayerOverlayList dc_layer_list; + OverlayProcessorInterface::FilterOperationsMap render_pass_filters; + OverlayProcessorInterface::FilterOperationsMap render_pass_backdrop_filters; + render_pass_backdrop_filters[backdrop_filter_render_pass_id] = + &backdrop_filter; + + pass_list.push_back(std::move(pass)); + // backdrop_filter_rect + kOverlayRect. Both are damaged. + gfx::Rect damage_rect_ = gfx::Rect(0, 0, 300, 300); + shared_state->overlay_damage_index = 1; + + SurfaceDamageRectList surface_damage_rect_list = {backdrop_filter_rect, + kOverlayRect}; + + overlay_processor_->ProcessForOverlays( + resource_provider_.get(), &pass_list, GetIdentityColorMatrix(), + render_pass_filters, render_pass_backdrop_filters, + &surface_damage_rect_list, nullptr, &dc_layer_list, &damage_rect_, + &content_bounds_); + + // Make sure the video is not promoted if the overlay quad intersects + // with the backdrop filter rpdq->rect. + EXPECT_EQ(0U, dc_layer_list.size()); + EXPECT_EQ(gfx::Rect(0, 0, 300, 300), damage_rect_); +} + } // namespace } // namespace viz
diff --git a/components/viz/service/display/surface_aggregator.cc b/components/viz/service/display/surface_aggregator.cc index 0db4f9f..c67582a 100644 --- a/components/viz/service/display/surface_aggregator.cc +++ b/components/viz/service/display/surface_aggregator.cc
@@ -80,6 +80,19 @@ return true; } +gfx::Rect GetExpandedRectWithPixelMovingForegroundFilter( + const CompositorRenderPassDrawQuad* rpdq, + const CompositorRenderPass& child_render_pass) { + const SharedQuadState* shared_quad_state = rpdq->shared_quad_state; + float max_pixel_movement = child_render_pass.filters.MaximumPixelMovement(); + gfx::Rect expanded_rect = rpdq->rect; + expanded_rect.Inset(-max_pixel_movement, -max_pixel_movement); + + // expanded_rect in the target space + return cc::MathUtil::MapEnclosingClippedRect( + shared_quad_state->quad_to_target_transform, expanded_rect); +} + } // namespace struct SurfaceAggregator::ClipData { @@ -265,6 +278,32 @@ if (!needs_surface_damage_rect_list_) return nullptr; + // Add the damage from a non-root render pass with pixel-moving filters to the + // damage list. + if (source_pass.filters.HasFilterThatMovesPixels() || + source_pass.backdrop_filters.HasFilterThatMovesPixels()) { + gfx::Transform parent_quad_to_root_target_transform = gfx::Transform( + dest_pass->transform_to_root_target, parent_target_transform); + + gfx::Rect surface_damage_rect = source_pass.output_rect; + if (source_pass.filters.HasFilterThatMovesPixels()) { + float max_pixel_movement = source_pass.filters.MaximumPixelMovement(); + surface_damage_rect.Inset(-max_pixel_movement, -max_pixel_movement); + } + + gfx::Rect damage_rect_in_root_target_space = + cc::MathUtil::MapEnclosingClippedRect( + parent_quad_to_root_target_transform, surface_damage_rect); + + // The whole render pass rect with pixel-moving filters is considered + // damaged if it intersects with the other damages. + if (damage_rect_in_root_target_space.Intersects(root_damage_rect_)) { + AddSurfaceDamageToDamageList(damage_rect_in_root_target_space, + gfx::Transform(), clip_rect); + } + return nullptr; + } + Surface* surface = manager_->GetSurfaceForId(surface_id); // Only process the damage rect once per surface. const CompositorFrame& frame = surface->GetActiveFrame(); @@ -1361,6 +1400,31 @@ } } } + // For the pixel-moving backdrop filters, all effects are limited to the + // size of the RenderPassDrawQuad rect. Therefore when we find the damage + // under the quad intersects quad render pass output rect, we extend the + // damage rect to include the rpdq->rect. + + // For the pixel-moving foreground filters, all effects can be expanded + // outside the RenderPassDrawQuad rect to the size of rect + + // filters.MaximumPixelMovement(). Therefore, we have to check if + // (rpdq->rect + MaximumPixelMovement()) intersects the damage under it. + // Then we extend the damage rect to include the (rpdq->rect + + // MaximumPixelMovement()). + + // Expand the damage to cover entire |output_rect| if the |render_pass| + // has pixel-moving foreground filter. + if (child_render_pass.filters.HasFilterThatMovesPixels()) { + gfx::Rect expanded_rect_in_target_space = + GetExpandedRectWithPixelMovingForegroundFilter(render_pass_quad, + child_render_pass); + + if (expanded_rect_in_target_space.Intersects(damage_rect) || + expanded_rect_in_target_space.Intersects(damage_from_parent) || + expanded_rect_in_target_space.Intersects(surface_root_rp_damage)) { + damage_rect.Union(expanded_rect_in_target_space); + } + } auto remapped_child_pass_id = pass_id_remapper_.Remap(child_pass_id, surface->surface_id());
diff --git a/components/viz/service/display/surface_aggregator_unittest.cc b/components/viz/service/display/surface_aggregator_unittest.cc index 443abe64..14034cf 100644 --- a/components/viz/service/display/surface_aggregator_unittest.cc +++ b/components/viz/service/display/surface_aggregator_unittest.cc
@@ -5098,8 +5098,10 @@ ASSERT_EQ(0u, aggregated_pass_list[0]->quad_list.size()); } - // Root surface has smaller damage rect, but filter on render pass means all - // of it and its descendant passes should be aggregated. + // Render passes with pixel-moving foreground filters will increase the damage + // only if the damage of the contents will overlap the expanded render pass + // draw quad. Since the root surface damage does not overlap, the render pass + // and its descendant passes should not be aggregated. { CompositorRenderPassId root_pass_ids[] = {CompositorRenderPassId{1}, CompositorRenderPassId{2}, @@ -5123,9 +5125,18 @@ auto* filter_pass = root_pass_list[1].get(); filter_pass->shared_quad_state_list.front() ->quad_to_target_transform.Translate(10, 10); - auto* root_pass = root_pass_list[2].get(); + // Create 3 pixel-moving filters with the same max pixel movement. filter_pass->filters.Append(cc::FilterOperation::CreateBlurFilter(2)); - root_pass->damage_rect = gfx::Rect(10, 10, 2, 2); + filter_pass->filters.Append( + cc::FilterOperation::CreateDropShadowFilter(gfx::Point(0, 0), 2, 0)); + filter_pass->filters.Append(cc::FilterOperation::CreateZoomFilter(2, 4)); + auto* root_pass = root_pass_list[2].get(); + // Set the root damage rect which doesn't intersect with the expanded + // filter_pass quad (-4, -4, 13, 13) (filter quad (0, 0, 5, 5) + + // MaximumPixelMovement(2 * 2 = 4)), so we don't have to add more damage + // from the filter_pass and the first render pass draw quad will not be + // drawn. + root_pass->damage_rect = gfx::Rect(20, 20, 2, 2); SubmitPassListAsFrame(root_sink_.get(), root_local_surface_id_, &root_pass_list, std::move(referenced_surfaces), device_scale_factor); @@ -5141,15 +5152,80 @@ EXPECT_EQ(gfx::Rect(SurfaceSize()), aggregated_pass_list[0]->damage_rect); EXPECT_EQ(gfx::Rect(SurfaceSize()), aggregated_pass_list[1]->damage_rect); EXPECT_EQ(gfx::Rect(SurfaceSize()), aggregated_pass_list[2]->damage_rect); - EXPECT_EQ(gfx::Rect(10, 10, 2, 2), aggregated_pass_list[3]->damage_rect); + // The filter pass does not intersects with the other damages. The root + // damage should not increase. + EXPECT_EQ(gfx::Rect(20, 20, 2, 2), aggregated_pass_list[3]->damage_rect); EXPECT_EQ(1u, aggregated_pass_list[0]->quad_list.size()); EXPECT_EQ(1u, aggregated_pass_list[1]->quad_list.size()); EXPECT_EQ(1u, aggregated_pass_list[2]->quad_list.size()); - // First render pass draw quad is outside damage rect, so shouldn't be - // drawn. + // First render pass draw quad with filterw is outside damage rect, so + // shouldn't be drawn. EXPECT_EQ(0u, aggregated_pass_list[3]->quad_list.size()); } + // Render passes with pixel-moving foreground filters will increase the damage + // if the damage of the contents will overlap the expanded render pass draw + // quad (quad rect + maximum pixel movement). Since the root surface damage + // overlaps, the render pass and its descendant passes should be aggregated. + { + CompositorRenderPassId root_pass_ids[] = {CompositorRenderPassId{1}, + CompositorRenderPassId{2}, + CompositorRenderPassId{3}}; + std::vector<Quad> root_quads1 = {Quad::SurfaceQuad( + SurfaceRange(base::nullopt, child_surface_id), SK_ColorWHITE, + gfx::Rect(5, 5), /*stretch_content_to_fill_bounds=*/false)}; + std::vector<Quad> root_quads2 = { + Quad::RenderPassQuad(root_pass_ids[0], gfx::Transform(), false)}; + std::vector<Quad> root_quads3 = { + Quad::RenderPassQuad(root_pass_ids[1], gfx::Transform(), false)}; + std::vector<Pass> root_passes = { + Pass(root_quads1, root_pass_ids[0], SurfaceSize()), + Pass(root_quads2, root_pass_ids[1], SurfaceSize()), + Pass(root_quads3, root_pass_ids[2], SurfaceSize())}; + + CompositorRenderPassList root_pass_list; + std::vector<SurfaceRange> referenced_surfaces; + AddPasses(&root_pass_list, root_passes, &referenced_surfaces); + + auto* filter_pass = root_pass_list[1].get(); + filter_pass->shared_quad_state_list.front() + ->quad_to_target_transform.Translate(10, 10); + // Create 3 pixel-moving filters with the same max pixel movement. + filter_pass->filters.Append(cc::FilterOperation::CreateBlurFilter(10)); + filter_pass->filters.Append( + cc::FilterOperation::CreateDropShadowFilter(gfx::Point(0, 0), 10, 0)); + filter_pass->filters.Append(cc::FilterOperation::CreateZoomFilter(2, 20)); + auto* root_pass = root_pass_list[2].get(); + // Make the root damage rect intersect with the expanded filter_pass + // quad (filter quad (0, 0, 5, 5) + MaximumPixelMovement(10 * 2) = (-20, + // -20, 45, 45)), but not with filter_pass quad itself (0, 0, 5, 5). The + // first render pass will be drawn. + root_pass->damage_rect = gfx::Rect(20, 20, 2, 2); + SubmitPassListAsFrame(root_sink_.get(), root_local_surface_id_, + &root_pass_list, std::move(referenced_surfaces), + device_scale_factor); + } + + { + auto aggregated_frame = AggregateFrame(root_surface_id); + + const auto& aggregated_pass_list = aggregated_frame.render_pass_list; + + ASSERT_EQ(4u, aggregated_pass_list.size()); + + EXPECT_EQ(gfx::Rect(SurfaceSize()), aggregated_pass_list[0]->damage_rect); + EXPECT_EQ(gfx::Rect(SurfaceSize()), aggregated_pass_list[1]->damage_rect); + EXPECT_EQ(gfx::Rect(SurfaceSize()), aggregated_pass_list[2]->damage_rect); + // The filter pass intersects with the root surface damage, the root damage + // increases (= original root damage + expanded filter pass quad). + EXPECT_EQ(gfx::Rect(0, 0, 25, 25), aggregated_pass_list[3]->damage_rect); + EXPECT_EQ(1u, aggregated_pass_list[0]->quad_list.size()); + EXPECT_EQ(1u, aggregated_pass_list[1]->quad_list.size()); + EXPECT_EQ(1u, aggregated_pass_list[2]->quad_list.size()); + // First render pass draw quad is damaged. It should be drawn. + EXPECT_EQ(1u, aggregated_pass_list[3]->quad_list.size()); + } + // Root surface has smaller damage rect. Opacity filter on render pass // means Surface quad under it should be aggregated. { @@ -5202,9 +5278,10 @@ EXPECT_EQ(1u, aggregated_pass_list[2]->quad_list.size()); } - // Render passes with pixel-moving filters will increase the damage only if - // the damage of the contents will overlap the render pass. Since one of the - // render passes has a pixel-moving backdrop filter no quads are ignored. + // Render passes with pixel-moving backdrop filters will increase the damage + // only if the damage of the contents will overlap the render pass. Since one + // of the render passes has a pixel-moving backdrop filter no quads are + // ignored. { CompositorRenderPassId child_pass_ids[] = {CompositorRenderPassId{1}, CompositorRenderPassId{2}};
diff --git a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc index 9c8f9a9..26aef7b 100644 --- a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc +++ b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
@@ -554,40 +554,6 @@ #define MAYBE_AccessibilityAriaCombobox AccessibilityAriaCombobox #endif -// DISABLE A BUNCH OF TESTS FOR ANDROID -// ------------------------------------ -// TODO(crbug.com/1137967): tests are flaky on android. -#if defined(OS_ANDROID) -#define MAYBE_AccessibilityAriaMenuItemRadio \ - DISABLED_AccessibilityAriaMenuItemRadio -#define MAYBE_AccessibilityAriaComboboxUneditable \ - DISABLED_AccessibilityAriaComboboxUneditable -#define MAYBE_AccessibilityAriaListBox DISABLED_AccessibilityAriaListBox -#define MAYBE_AccessibilityAriaListBoxDisabled \ - DISABLED_AccessibilityAriaListBoxDisabled -#define MAYBE_AccessibilityAriaOption DISABLED_AccessibilityAriaOption -#define MAYBE_AccessibilityAriaPosinset DISABLED_AccessibilityAriaPosinset -#define MAYBE_AccessibilityAriaSelected DISABLED_AccessibilityAriaSelected -#define MAYBE_AccessibilityAriaSetsize DISABLED_AccessibilityAriaSetsize -#define MAYBE_AccessibilityAriaTree DISABLED_AccessibilityAriaTree -#define MAYBE_AccessibilityButtonWithListboxPopup \ - DISABLED_AccessibilityButtonWithListboxPopup -#else -#define MAYBE_AccessibilityAriaMenuItemRadio AccessibilityAriaMenuItemRadio -#define MAYBE_AccessibilityAriaComboboxUneditable \ - AccessibilityAriaComboboxUneditable -#define MAYBE_AccessibilityAriaListBox AccessibilityAriaListBox -#define MAYBE_AccessibilityAriaListBoxDisabled AccessibilityAriaListBoxDisabled -#define MAYBE_AccessibilityAriaOption AccessibilityAriaOption -#define MAYBE_AccessibilityAriaPosinset AccessibilityAriaPosinset -#define MAYBE_AccessibilityAriaSelected AccessibilityAriaSelected -#define MAYBE_AccessibilityAriaSetsize AccessibilityAriaSetsize -#define MAYBE_AccessibilityAriaTree AccessibilityAriaTree -#define MAYBE_AccessibilityButtonWithListboxPopup \ - AccessibilityButtonWithListboxPopup -#endif -// ------------------------------------ - IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, MAYBE_AccessibilityAriaCombobox) { RunAriaTest(FILE_PATH_LITERAL("aria-combobox.html"));
diff --git a/content/browser/devtools/devtools_url_loader_interceptor.cc b/content/browser/devtools/devtools_url_loader_interceptor.cc index 787aadeb..2f79d90 100644 --- a/content/browser/devtools/devtools_url_loader_interceptor.cc +++ b/content/browser/devtools/devtools_url_loader_interceptor.cc
@@ -317,6 +317,7 @@ void StartRequest(); void CancelRequest(); + void CompleteRequest(const network::URLLoaderCompletionStatus& status); void Shutdown(); std::unique_ptr<InterceptedRequestInfo> BuildRequestInfo( @@ -854,9 +855,10 @@ Response InterceptionJob::InnerContinueRequest( std::unique_ptr<Modifications> modifications) { - if (!waiting_for_resolution_) + if (!waiting_for_resolution_) { return Response::ServerError( "Invalid state for continueInterceptedRequest"); + } waiting_for_resolution_ = false; if (state_ == State::kAuthRequired) { @@ -880,15 +882,15 @@ status.extended_error_code = static_cast<int>(blink::ResourceRequestBlockedReason::kInspector); } - client_->OnComplete(status); - Shutdown(); + CompleteRequest(status); return Response::Success(); } - if (modifications->response_headers || modifications->response_body) + if (modifications->response_headers || modifications->response_body) { return ProcessResponseOverride(std::move(modifications->response_headers), std::move(modifications->response_body), modifications->body_offset); + } if (state_ == State::kFollowRedirect) { if (modifications->modified_url.isJust()) { @@ -934,6 +936,10 @@ "Unable to continue request as is after body is taken"); } // TODO(caseq): report error if other modifications are present. + if (response_metadata_->status.error_code) { + CompleteRequest(response_metadata_->status); + return Response::Success(); + } DCHECK_EQ(State::kResponseReceived, state_); DCHECK(!body_reader_); client_->OnReceiveResponse(std::move(response_metadata_->head)); @@ -1173,8 +1179,7 @@ } if (response_metadata_->transfer_size) client_->OnTransferSizeUpdated(response_metadata_->transfer_size); - client_->OnComplete(response_metadata_->status); - Shutdown(); + CompleteRequest(response_metadata_->status); } void InterceptionJob::ResponseBodyComplete() { @@ -1267,6 +1272,7 @@ void InterceptionJob::NotifyClient( std::unique_ptr<InterceptedRequestInfo> request_info) { + DCHECK(!waiting_for_resolution_); FetchCookies(base::BindOnce(&InterceptionJob::NotifyClientWithCookies, base::Unretained(this), std::move(request_info))); } @@ -1290,6 +1296,12 @@ interceptor_->request_intercepted_callback_.Run(std::move(request_info)); } +void InterceptionJob::CompleteRequest( + const network::URLLoaderCompletionStatus& status) { + client_->OnComplete(status); + Shutdown(); +} + void InterceptionJob::Shutdown() { if (interceptor_) interceptor_->RemoveJob(current_id_); @@ -1456,18 +1468,32 @@ void InterceptionJob::OnComplete( const network::URLLoaderCompletionStatus& status) { - // Essentially ShouldBypassForResponse(), but skip DCHECKs - // since this may be called in any state during shutdown. - if (!response_metadata_) { - client_->OnComplete(status); - Shutdown(); - return; - } - response_metadata_->status = status; // No need to listen to the channel any more, so just reset it, so if the pipe // is closed by the other end, |shutdown| isn't run. client_receiver_.reset(); loader_.reset(); + + if (!response_metadata_) { + // If we haven't seen response and get an error completion, + // treat it as a response and intercept (provided response are + // being intercepted). + if (!(stage_ & InterceptionStage::RESPONSE) || !status.error_code) { + CompleteRequest(status); + return; + } + response_metadata_ = std::make_unique<ResponseMetadata>(); + response_metadata_->status = status; + auto request_info = BuildRequestInfo(nullptr); + request_info->response_error_code = status.error_code; + NotifyClient(std::move(request_info)); + return; + } + // Since we're not forwarding OnComplete right now, make sure + // we're in the proper state. The completion is due upon client response. + DCHECK(state_ == State::kResponseReceived || state_ == State::kResponseTaken); + DCHECK(waiting_for_resolution_); + + response_metadata_->status = status; } void InterceptionJob::OnAuthRequest(
diff --git a/content/browser/devtools/protocol/emulation_handler.cc b/content/browser/devtools/protocol/emulation_handler.cc index 4c7b28a3..0b2a30a 100644 --- a/content/browser/devtools/protocol/emulation_handler.cc +++ b/content/browser/devtools/protocol/emulation_handler.cc
@@ -15,7 +15,6 @@ #include "content/browser/renderer_host/render_frame_host_impl.h" #include "content/browser/renderer_host/render_widget_host_impl.h" #include "content/browser/web_contents/web_contents_impl.h" -#include "content/common/widget_messages.h" #include "content/public/common/url_constants.h" #include "net/http/http_util.h" #include "services/device/public/cpp/geolocation/geoposition.h"
diff --git a/content/browser/devtools/protocol/page_handler.cc b/content/browser/devtools/protocol/page_handler.cc index 770f61f6..16821a7e 100644 --- a/content/browser/devtools/protocol/page_handler.cc +++ b/content/browser/devtools/protocol/page_handler.cc
@@ -37,7 +37,6 @@ #include "content/browser/renderer_host/render_widget_host_view_base.h" #include "content/browser/web_contents/web_contents_impl.h" #include "content/browser/web_contents/web_contents_view.h" -#include "content/common/widget_messages.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/download_manager.h"
diff --git a/content/browser/find_request_manager_browsertest.cc b/content/browser/find_request_manager_browsertest.cc index 71829fccb..db27782 100644 --- a/content/browser/find_request_manager_browsertest.cc +++ b/content/browser/find_request_manager_browsertest.cc
@@ -9,7 +9,6 @@ #include "content/browser/find_request_manager.h" #include "content/browser/web_contents/web_contents_impl.h" #include "content/common/view_messages.h" -#include "content/common/widget_messages.h" #include "content/public/browser/browser_message_filter.h" #include "content/public/browser/notification_types.h" #include "content/public/common/content_switches.h"
diff --git a/content/browser/renderer_host/input/autoscroll_browsertest.cc b/content/browser/renderer_host/input/autoscroll_browsertest.cc index c0663aa..7b98ac4 100644 --- a/content/browser/renderer_host/input/autoscroll_browsertest.cc +++ b/content/browser/renderer_host/input/autoscroll_browsertest.cc
@@ -5,7 +5,6 @@ #include "base/feature_list.h" #include "build/build_config.h" #include "content/browser/web_contents/web_contents_impl.h" -#include "content/common/widget_messages.h" #include "content/public/common/content_switches.h" #include "content/public/test/browser_test.h" #include "content/public/test/browser_test_utils.h"
diff --git a/content/browser/renderer_host/input/input_event_browsertest.cc b/content/browser/renderer_host/input/input_event_browsertest.cc index b8125cc..60966a5 100644 --- a/content/browser/renderer_host/input/input_event_browsertest.cc +++ b/content/browser/renderer_host/input/input_event_browsertest.cc
@@ -220,8 +220,7 @@ IN_PROC_BROWSER_TEST_F(InputEventBrowserTest, MAYBE_MouseDownEventTimeStamp) { LoadURL(kEventListenerDataURL); - MainThreadFrameObserver frame_observer( - shell()->web_contents()->GetRenderViewHost()->GetWidget()); + MainThreadFrameObserver frame_observer(GetWidgetHost()); base::TimeTicks event_time = base::TimeTicks::Now(); int64_t event_time_ms = event_time.since_origin().InMilliseconds(); SimulateSyntheticMousePressAt(event_time); @@ -238,8 +237,7 @@ IN_PROC_BROWSER_TEST_F(InputEventBrowserTest, KeyDownEventTimeStamp) { LoadURL(kEventListenerDataURL); - MainThreadFrameObserver frame_observer( - shell()->web_contents()->GetRenderViewHost()->GetWidget()); + MainThreadFrameObserver frame_observer(GetWidgetHost()); base::TimeTicks event_time = base::TimeTicks::Now(); int64_t event_time_ms = event_time.since_origin().InMilliseconds(); @@ -258,8 +256,7 @@ IN_PROC_BROWSER_TEST_F(InputEventBrowserTest, TouchStartEventTimeStamp) { LoadURL(kEventListenerDataURL); - MainThreadFrameObserver frame_observer( - shell()->web_contents()->GetRenderViewHost()->GetWidget()); + MainThreadFrameObserver frame_observer(GetWidgetHost()); base::TimeTicks event_time = base::TimeTicks::Now(); int64_t event_time_ms = event_time.since_origin().InMilliseconds(); @@ -278,8 +275,7 @@ IN_PROC_BROWSER_TEST_F(InputEventBrowserTest, ClickEventTimeStamp) { LoadURL(kEventListenerDataURL); - MainThreadFrameObserver frame_observer( - shell()->web_contents()->GetRenderViewHost()->GetWidget()); + MainThreadFrameObserver frame_observer(GetWidgetHost()); base::TimeTicks event_time = base::TimeTicks::Now(); int64_t event_time_ms = event_time.since_origin().InMilliseconds(); @@ -298,8 +294,7 @@ IN_PROC_BROWSER_TEST_F(InputEventBrowserTest, WheelEventTimeStamp) { LoadURL(kEventListenerDataURL); - MainThreadFrameObserver frame_observer( - shell()->web_contents()->GetRenderViewHost()->GetWidget()); + MainThreadFrameObserver frame_observer(GetWidgetHost()); base::TimeTicks event_time = base::TimeTicks::Now(); int64_t event_time_ms = event_time.since_origin().InMilliseconds();
diff --git a/content/browser/renderer_host/input/mouse_latency_browsertest.cc b/content/browser/renderer_host/input/mouse_latency_browsertest.cc index faa81629..2cc1f5f 100644 --- a/content/browser/renderer_host/input/mouse_latency_browsertest.cc +++ b/content/browser/renderer_host/input/mouse_latency_browsertest.cc
@@ -358,8 +358,7 @@ gfx::Vector2dF(250, 250)); // The following wait is the upper bound for gpu swap completed callback. It // is two frames to account for double buffering. - MainThreadFrameObserver observer(RenderWidgetHostImpl::From( - shell()->web_contents()->GetRenderViewHost()->GetWidget())); + MainThreadFrameObserver observer(GetWidgetHost()); observer.Wait(); observer.Wait();
diff --git a/content/browser/renderer_host/input/scroll_behavior_browsertest.cc b/content/browser/renderer_host/input/scroll_behavior_browsertest.cc index f092358..9a38e0d7 100644 --- a/content/browser/renderer_host/input/scroll_behavior_browsertest.cc +++ b/content/browser/renderer_host/input/scroll_behavior_browsertest.cc
@@ -204,8 +204,7 @@ // When the first smooth scroll starts and scroll to 5 pixels, we will // send the second scroll to interrupt the current smooth scroll. constexpr int kExpectedScrollTop = 5; - MainThreadFrameObserver frame_observer( - shell()->web_contents()->GetRenderViewHost()->GetWidget()); + MainThreadFrameObserver frame_observer(GetWidgetHost()); while (ExecuteScriptAndExtractDouble(script) < kExpectedScrollTop) frame_observer.Wait(); } @@ -214,8 +213,7 @@ double starting_scroll_top) { // For the scroll interruption, we want to make sure that the first smooth // scroll animation stops right away, and the second scroll starts. - MainThreadFrameObserver frame_observer( - shell()->web_contents()->GetRenderViewHost()->GetWidget()); + MainThreadFrameObserver frame_observer(GetWidgetHost()); double current = ExecuteScriptAndExtractDouble(script); // If the animation doesn't reverse within this number of pixels we fail the @@ -231,8 +229,7 @@ void ValueHoldsAt(const std::string& scroll_top_script, double scroll_top) { // This function checks that the scroll top value holds at the given value // for 10 frames. - MainThreadFrameObserver frame_observer( - shell()->web_contents()->GetRenderViewHost()->GetWidget()); + MainThreadFrameObserver frame_observer(GetWidgetHost()); int frame_count = 5; while (frame_count > 0) { ASSERT_EQ(ExecuteScriptAndExtractDouble(scroll_top_script), scroll_top); @@ -241,12 +238,6 @@ } } - RenderViewHost* GetRenderViewHost() const { - RenderViewHost* const rvh = shell()->web_contents()->GetRenderViewHost(); - CHECK(rvh); - return rvh; - } - std::unique_ptr<base::RunLoop> run_loop_; bool disable_threaded_scrolling_ = false;
diff --git a/content/browser/renderer_host/input/touch_selection_controller_client_child_frame.cc b/content/browser/renderer_host/input/touch_selection_controller_client_child_frame.cc index 033d3c7..141c218 100644 --- a/content/browser/renderer_host/input/touch_selection_controller_client_child_frame.cc +++ b/content/browser/renderer_host/input/touch_selection_controller_client_child_frame.cc
@@ -9,7 +9,6 @@ #include "content/browser/renderer_host/render_widget_host_delegate.h" #include "content/browser/renderer_host/render_widget_host_impl.h" #include "content/browser/renderer_host/render_widget_host_view_child_frame.h" -#include "content/common/widget_messages.h" #include "content/public/browser/touch_selection_controller_client_manager.h" #include "content/public/common/use_zoom_for_dsf_policy.h" #include "ui/base/clipboard/clipboard.h"
diff --git a/content/browser/renderer_host/input/wheel_scroll_latching_browsertest.cc b/content/browser/renderer_host/input/wheel_scroll_latching_browsertest.cc index e095c71..641c77b 100644 --- a/content/browser/renderer_host/input/wheel_scroll_latching_browsertest.cc +++ b/content/browser/renderer_host/input/wheel_scroll_latching_browsertest.cc
@@ -156,8 +156,7 @@ EXPECT_EQ(0, ExecuteScriptAndExtractInt("documentWheelEventCounter")); EXPECT_EQ(0, ExecuteScriptAndExtractInt("scrollableDivWheelEventCounter")); - MainThreadFrameObserver frame_observer( - shell()->web_contents()->GetRenderViewHost()->GetWidget()); + MainThreadFrameObserver frame_observer(GetWidgetHost()); auto input_msg_watcher = std::make_unique<InputMsgWatcher>( GetWidgetHost(), blink::WebInputEvent::Type::kMouseWheel);
diff --git a/content/browser/renderer_host/render_frame_host_manager.cc b/content/browser/renderer_host/render_frame_host_manager.cc index 7381efc..67b967b6 100644 --- a/content/browser/renderer_host/render_frame_host_manager.cc +++ b/content/browser/renderer_host/render_frame_host_manager.cc
@@ -599,33 +599,21 @@ // that it is replaced by a RenderFrameProxyHost to allow other frames to // communicate to this frame. SiteInstanceImpl* site_instance = render_frame_host->GetSiteInstance(); - RenderViewHostImpl* rvh = render_frame_host->render_view_host(); RenderFrameProxyHost* proxy = nullptr; if (site_instance->HasSite() && site_instance->active_frame_count() > 1) { - // If a proxy already exists for the |site_instance|, just reuse it instead - // of creating a new one. There is no need to call Unload() on the - // |render_frame_host|, as this method is only called to discard a pending - // or speculative RenderFrameHost, i.e. one that has never hosted an actual - // document. + // A proxy already exists for the |site_instance| so just reuse it. There is + // no need to call Unload() on the |render_frame_host|, as this method is + // only called to discard a pending or speculative RenderFrameHost, i.e. one + // that has never hosted an actual document. proxy = GetRenderFrameProxyHost(site_instance); - if (!proxy) - proxy = CreateRenderFrameProxyHost(site_instance, rvh); + CHECK(proxy); } - // Doing this is important in the case where the replacement proxy is created - // above, as the RenderViewHost will continue to exist and should be - // considered inactive. When there's no replacement proxy, this doesn't - // really matter, as the RenderViewHost will be destroyed shortly, since - // |render_frame_host| is its last active frame and will be deleted below. - // See https://crbug.com/627400. - if (frame_tree_node_->IsMainFrame()) - rvh->SetMainFrameRoutingId(MSG_ROUTING_NONE); - render_frame_host.reset(); - // If a new RenderFrameProxyHost was created above, or if the old proxy isn't - // live, create the RenderFrameProxy in the renderer, so that other frames - // can still communicate with this frame. See https://crbug.com/653746. + // If the old proxy isn't live, create the RenderFrameProxy in the renderer, + // so that other frames can still communicate with this frame. See + // https://crbug.com/653746. if (proxy && !proxy->is_render_frame_proxy_live()) proxy->InitRenderFrameProxy(); }
diff --git a/content/browser/renderer_host/render_frame_host_manager_unittest.cc b/content/browser/renderer_host/render_frame_host_manager_unittest.cc index a94e367..6f7fbbd0 100644 --- a/content/browser/renderer_host/render_frame_host_manager_unittest.cc +++ b/content/browser/renderer_host/render_frame_host_manager_unittest.cc
@@ -36,7 +36,6 @@ #include "content/common/frame_messages.h" #include "content/common/input_messages.h" #include "content/common/view_messages.h" -#include "content/common/widget_messages.h" #include "content/public/browser/render_process_host.h" #include "content/public/browser/render_widget_host.h" #include "content/public/browser/render_widget_host_iterator.h"
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc index 9a0ed201..6c1bfb9 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -149,7 +149,6 @@ #include "content/common/resource_messages.h" #include "content/common/service_worker/service_worker_utils.h" #include "content/common/view_messages.h" -#include "content/common/widget_messages.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_or_resource_context.h" #include "content/public/browser/browser_task_traits.h"
diff --git a/content/browser/renderer_host/render_widget_host_browsertest.cc b/content/browser/renderer_host/render_widget_host_browsertest.cc index 554b58fa..a41e459 100644 --- a/content/browser/renderer_host/render_widget_host_browsertest.cc +++ b/content/browser/renderer_host/render_widget_host_browsertest.cc
@@ -19,7 +19,6 @@ #include "content/browser/renderer_host/render_widget_host_view_base.h" #include "content/browser/web_contents/web_contents_impl.h" #include "content/common/view_messages.h" -#include "content/common/widget_messages.h" #include "content/public/browser/notification_types.h" #include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents_observer.h"
diff --git a/content/browser/renderer_host/render_widget_host_unittest.cc b/content/browser/renderer_host/render_widget_host_unittest.cc index 89b9ac0..2551554 100644 --- a/content/browser/renderer_host/render_widget_host_unittest.cc +++ b/content/browser/renderer_host/render_widget_host_unittest.cc
@@ -41,7 +41,6 @@ #include "content/browser/storage_partition_impl.h" #include "content/common/content_constants_internal.h" #include "content/common/input_messages.h" -#include "content/common/widget_messages.h" #include "content/public/browser/keyboard_event_processing_result.h" #include "content/public/common/content_features.h" #include "content/public/common/content_switches.h"
diff --git a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc index 272faa8..df81ab5 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc +++ b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
@@ -57,7 +57,6 @@ #include "content/browser/web_contents/web_contents_view_aura.h" #include "content/common/input_messages.h" #include "content/common/view_messages.h" -#include "content/common/widget_messages.h" #include "content/public/browser/context_menu_params.h" #include "content/public/browser/keyboard_event_processing_result.h" #include "content/public/browser/render_widget_host_view.h"
diff --git a/content/browser/renderer_host/render_widget_host_view_child_frame.cc b/content/browser/renderer_host/render_widget_host_view_child_frame.cc index 0a6a54a..c4e8027 100644 --- a/content/browser/renderer_host/render_widget_host_view_child_frame.cc +++ b/content/browser/renderer_host/render_widget_host_view_child_frame.cc
@@ -32,7 +32,6 @@ #include "content/browser/renderer_host/render_widget_host_input_event_router.h" #include "content/browser/renderer_host/render_widget_host_view_event_handler.h" #include "content/browser/renderer_host/text_input_manager.h" -#include "content/common/widget_messages.h" #include "content/public/browser/render_process_host.h" #include "gpu/ipc/common/gpu_messages.h" #include "third_party/blink/public/common/input/web_touch_event.h"
diff --git a/content/browser/renderer_host/render_widget_host_view_child_frame_browsertest.cc b/content/browser/renderer_host/render_widget_host_view_child_frame_browsertest.cc index d3ee1ff..b5075a2 100644 --- a/content/browser/renderer_host/render_widget_host_view_child_frame_browsertest.cc +++ b/content/browser/renderer_host/render_widget_host_view_child_frame_browsertest.cc
@@ -19,7 +19,6 @@ #include "content/browser/web_contents/web_contents_impl.h" #include "content/common/frame_messages.h" #include "content/common/view_messages.h" -#include "content/common/widget_messages.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/web_contents.h" #include "content/public/test/browser_test.h"
diff --git a/content/browser/renderer_host/render_widget_host_view_child_frame_unittest.cc b/content/browser/renderer_host/render_widget_host_view_child_frame_unittest.cc index 2dad841..abaac8b 100644 --- a/content/browser/renderer_host/render_widget_host_view_child_frame_unittest.cc +++ b/content/browser/renderer_host/render_widget_host_view_child_frame_unittest.cc
@@ -26,7 +26,6 @@ #include "content/browser/renderer_host/render_widget_host_delegate.h" #include "content/browser/renderer_host/render_widget_host_impl.h" #include "content/common/view_messages.h" -#include "content/common/widget_messages.h" #include "content/public/browser/render_widget_host_view.h" #include "content/public/test/browser_task_environment.h" #include "content/public/test/fake_frame_widget.h"
diff --git a/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm b/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm index 25ba0ebb..48b20b0a 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm
@@ -33,7 +33,6 @@ #include "content/browser/renderer_host/text_input_manager.h" #include "content/common/input_messages.h" #include "content/common/view_messages.h" -#include "content/common/widget_messages.h" #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_types.h"
diff --git a/content/browser/renderer_host/text_input_manager.cc b/content/browser/renderer_host/text_input_manager.cc index c25aa48..b2114c9 100644 --- a/content/browser/renderer_host/text_input_manager.cc +++ b/content/browser/renderer_host/text_input_manager.cc
@@ -6,7 +6,6 @@ #include "content/browser/renderer_host/render_widget_host_impl.h" #include "content/browser/renderer_host/render_widget_host_view_base.h" -#include "content/common/widget_messages.h" #include "ui/gfx/geometry/rect.h" #include "ui/gfx/range/range.h"
diff --git a/content/browser/site_per_process_hit_test_browsertest.cc b/content/browser/site_per_process_hit_test_browsertest.cc index 98970bd..61b8ee20 100644 --- a/content/browser/site_per_process_hit_test_browsertest.cc +++ b/content/browser/site_per_process_hit_test_browsertest.cc
@@ -29,7 +29,6 @@ #include "content/browser/site_per_process_browsertest.h" #include "content/common/frame_messages.h" #include "content/common/view_messages.h" -#include "content/common/widget_messages.h" #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/context_menu_params.h"
diff --git a/content/browser/text_fragment_browsertest.cc b/content/browser/text_fragment_browsertest.cc index a792a53..c5bc2f0 100644 --- a/content/browser/text_fragment_browsertest.cc +++ b/content/browser/text_fragment_browsertest.cc
@@ -624,8 +624,7 @@ base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( FROM_HERE, run_loop.QuitClosure(), TestTimeouts::tiny_timeout()); run_loop.Run(); - RunUntilInputProcessed(RenderWidgetHostImpl::From( - main_contents->GetRenderViewHost()->GetWidget())); + RunUntilInputProcessed(GetWidgetHost()); const cc::RenderFrameMetadata& last_metadata = RenderFrameSubmissionObserver(main_contents).LastRenderFrameMetadata(); EXPECT_TRUE(last_metadata.is_scroll_offset_at_top); @@ -645,8 +644,7 @@ base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( FROM_HERE, run_loop.QuitClosure(), TestTimeouts::tiny_timeout()); run_loop.Run(); - RunUntilInputProcessed(RenderWidgetHostImpl::From( - main_contents->GetRenderViewHost()->GetWidget())); + RunUntilInputProcessed(GetWidgetHost()); const cc::RenderFrameMetadata& last_metadata = RenderFrameSubmissionObserver(main_contents).LastRenderFrameMetadata(); EXPECT_TRUE(last_metadata.is_scroll_offset_at_top); @@ -689,8 +687,7 @@ base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( FROM_HERE, run_loop.QuitClosure(), TestTimeouts::tiny_timeout()); run_loop.Run(); - RunUntilInputProcessed(RenderWidgetHostImpl::From( - main_contents->GetRenderViewHost()->GetWidget())); + RunUntilInputProcessed(GetWidgetHost()); const cc::RenderFrameMetadata& last_metadata = RenderFrameSubmissionObserver(main_contents).LastRenderFrameMetadata(); EXPECT_TRUE(last_metadata.is_scroll_offset_at_top);
diff --git a/content/common/android/DIR_METADATA b/content/common/android/DIR_METADATA new file mode 100644 index 0000000..ee7462c --- /dev/null +++ b/content/common/android/DIR_METADATA
@@ -0,0 +1,3 @@ +monorail { + component: "Content>Core" +}
diff --git a/content/common/android/OWNERS b/content/common/android/OWNERS index 841d67d..8f9b298 100644 --- a/content/common/android/OWNERS +++ b/content/common/android/OWNERS
@@ -10,5 +10,3 @@ per-file *_param_traits*.*=set noparent per-file *_param_traits*.*=file://ipc/SECURITY_OWNERS - -# COMPONENT: Content>Core
diff --git a/content/common/background_fetch/DIR_METADATA b/content/common/background_fetch/DIR_METADATA new file mode 100644 index 0000000..8011d708 --- /dev/null +++ b/content/common/background_fetch/DIR_METADATA
@@ -0,0 +1,5 @@ +monorail { + component: "Blink>BackgroundFetch" +} + +team_email: "platform-capabilities@chromium.org"
diff --git a/content/common/background_fetch/OWNERS b/content/common/background_fetch/OWNERS index 80bf15e..cb2d63f1 100644 --- a/content/common/background_fetch/OWNERS +++ b/content/common/background_fetch/OWNERS
@@ -5,6 +5,3 @@ per-file *.typemap=set noparent per-file *.typemap=file://ipc/SECURITY_OWNERS - -# TEAM: platform-capabilities@chromium.org -# COMPONENT: Blink>BackgroundFetch
diff --git a/content/common/dom_storage/DIR_METADATA b/content/common/dom_storage/DIR_METADATA new file mode 100644 index 0000000..f5d8083 --- /dev/null +++ b/content/common/dom_storage/DIR_METADATA
@@ -0,0 +1,5 @@ +monorail { + component: "Blink>Storage>DOMStorage" +} + +team_email: "storage-dev@chromium.org"
diff --git a/content/common/dom_storage/OWNERS b/content/common/dom_storage/OWNERS index c91ee10..90671504 100644 --- a/content/common/dom_storage/OWNERS +++ b/content/common/dom_storage/OWNERS
@@ -2,6 +2,3 @@ per-file *_messages*.h=set noparent per-file *_messages*.h=file://ipc/SECURITY_OWNERS - -# TEAM: storage-dev@chromium.org -# COMPONENT: Blink>Storage>DOMStorage
diff --git a/content/common/frame_messages.h b/content/common/frame_messages.h index 62f1df4d..929b11d 100644 --- a/content/common/frame_messages.h +++ b/content/common/frame_messages.h
@@ -534,15 +534,6 @@ int32_t /* pp_instance */, bool /* is_external */) -// A renderer sends this to the browser process when it wants to -// create a ppapi broker. The browser will create the broker process -// if necessary, and will return a handle to the channel on success. -// On error an empty string is returned. -// The browser will respond with ViewMsg_PpapiBrokerChannelCreated. -IPC_MESSAGE_CONTROL2(FrameHostMsg_OpenChannelToPpapiBroker, - int /* routing_id */, - base::FilePath /* path */) - // A renderer sends this to the browser process when it throttles or unthrottles // a plugin instance for the Plugin Power Saver feature. IPC_MESSAGE_CONTROL3(FrameHostMsg_PluginInstanceThrottleStateChange,
diff --git a/content/common/input/DIR_METADATA b/content/common/input/DIR_METADATA new file mode 100644 index 0000000..b68ea00 --- /dev/null +++ b/content/common/input/DIR_METADATA
@@ -0,0 +1,5 @@ +monorail { + component: "Blink>Input" +} + +team_email: "input-dev@chromium.org"
diff --git a/content/common/input/OWNERS b/content/common/input/OWNERS index 1bd8cec3..a850308 100644 --- a/content/common/input/OWNERS +++ b/content/common/input/OWNERS
@@ -12,6 +12,3 @@ per-file *_messages.cc=file://ipc/SECURITY_OWNERS per-file *_messages*.h=set noparent per-file *_messages*.h=file://ipc/SECURITY_OWNERS - -# TEAM: input-dev@chromium.org -# COMPONENT: Blink>Input
diff --git a/content/common/media/DIR_METADATA b/content/common/media/DIR_METADATA new file mode 100644 index 0000000..6667e7f --- /dev/null +++ b/content/common/media/DIR_METADATA
@@ -0,0 +1,3 @@ +monorail { + component: "Internals>Media" +}
diff --git a/content/common/media/OWNERS b/content/common/media/OWNERS index 852f7dd3..d7dc4db 100644 --- a/content/common/media/OWNERS +++ b/content/common/media/OWNERS
@@ -15,5 +15,3 @@ per-file *.typemap=set noparent per-file *.typemap=file://ipc/SECURITY_OWNERS - -# COMPONENT: Internals>Media
diff --git a/content/common/service_worker/DIR_METADATA b/content/common/service_worker/DIR_METADATA new file mode 100644 index 0000000..2a951d09 --- /dev/null +++ b/content/common/service_worker/DIR_METADATA
@@ -0,0 +1,5 @@ +monorail { + component: "Blink>ServiceWorker" +} + +team_email: "worker-dev@chromium.org"
diff --git a/content/common/service_worker/OWNERS b/content/common/service_worker/OWNERS index 27f122d..37d7ea6a 100644 --- a/content/common/service_worker/OWNERS +++ b/content/common/service_worker/OWNERS
@@ -14,6 +14,3 @@ per-file *.typemap=set noparent per-file *.typemap=file://ipc/SECURITY_OWNERS - -# TEAM: worker-dev@chromium.org -# COMPONENT: Blink>ServiceWorker
diff --git a/content/common/view_messages.h b/content/common/view_messages.h index cc9faca..eb3f50df 100644 --- a/content/common/view_messages.h +++ b/content/common/view_messages.h
@@ -97,20 +97,6 @@ // started. IPC_MESSAGE_ROUTED0(ViewMsg_MoveOrResizeStarted) -#if BUILDFLAG(ENABLE_PLUGINS) -// Reply to ViewHostMsg_OpenChannelToPpapiBroker -// Tells the renderer that the channel to the broker has been created. -IPC_MESSAGE_ROUTED2(ViewMsg_PpapiBrokerChannelCreated, - base::ProcessId /* broker_pid */, - IPC::ChannelHandle /* handle */) - -// Reply to ViewHostMsg_RequestPpapiBrokerPermission. -// Tells the renderer whether permission to access to PPAPI broker was granted -// or not. -IPC_MESSAGE_ROUTED1(ViewMsg_PpapiBrokerPermissionResult, - bool /* result */) -#endif - // ----------------------------------------------------------------------------- // Messages sent from the renderer to the browser. @@ -122,17 +108,6 @@ int /* route_id */, gfx::Rect /* initial_rect */) -#if BUILDFLAG(ENABLE_PLUGINS) -// A renderer sends this to the browser process when it wants to access a PPAPI -// broker. In contrast to FrameHostMsg_OpenChannelToPpapiBroker, this is called -// for every connection. -// The browser will respond with ViewMsg_PpapiBrokerPermissionResult. -IPC_MESSAGE_ROUTED3(ViewHostMsg_RequestPpapiBrokerPermission, - int /* routing_id */, - GURL /* document_url */, - base::FilePath /* plugin_path */) -#endif // BUILDFLAG(ENABLE_PLUGINS) - // Adding a new message? Stick to the sort order above: first platform // independent ViewMsg, then ifdefs for platform specific ViewMsg, then platform // independent ViewHostMsg, then ifdefs for platform specific ViewHostMsg.
diff --git a/content/common/web_package/DIR_METADATA b/content/common/web_package/DIR_METADATA new file mode 100644 index 0000000..25ca5ca6 --- /dev/null +++ b/content/common/web_package/DIR_METADATA
@@ -0,0 +1,5 @@ +monorail { + component: "Blink>Loader>WebPackaging" +} + +team_email: "loading-dev@chromium.org"
diff --git a/content/common/web_package/OWNERS b/content/common/web_package/OWNERS index b02bd90..fee744f 100644 --- a/content/common/web_package/OWNERS +++ b/content/common/web_package/OWNERS
@@ -1,4 +1 @@ file://content/browser/web_package/OWNERS - -# TEAM: loading-dev@chromium.org -# COMPONENT: Blink>Loader>WebPackaging
diff --git a/content/common/zygote/DIR_METADATA b/content/common/zygote/DIR_METADATA new file mode 100644 index 0000000..eba0ca0 --- /dev/null +++ b/content/common/zygote/DIR_METADATA
@@ -0,0 +1,5 @@ +monorail { + component: "Internals>Sandbox" +} + +team_email: "security-dev@chromium.org"
diff --git a/content/common/zygote/OWNERS b/content/common/zygote/OWNERS index eb4b322..50fe3e5 100644 --- a/content/common/zygote/OWNERS +++ b/content/common/zygote/OWNERS
@@ -1,4 +1 @@ file://content/zygote/OWNERS - -# TEAM: security-dev@chromium.org -# COMPONENT: Internals>Sandbox
diff --git a/content/public/test/browser_test_utils.cc b/content/public/test/browser_test_utils.cc index 3ec5e6a..86880da 100644 --- a/content/public/test/browser_test_utils.cc +++ b/content/public/test/browser_test_utils.cc
@@ -57,7 +57,6 @@ #include "content/common/frame.mojom.h" #include "content/common/frame_messages.h" #include "content/common/input_messages.h" -#include "content/common/widget_messages.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h"
diff --git a/content/public/test/render_view_test.cc b/content/public/test/render_view_test.cc index 1a51ee84..91bf3e5 100644 --- a/content/public/test/render_view_test.cc +++ b/content/public/test/render_view_test.cc
@@ -20,7 +20,6 @@ #include "content/common/input_messages.h" #include "content/common/renderer.mojom.h" #include "content/common/view_messages.h" -#include "content/common/widget_messages.h" #include "content/public/browser/content_browser_client.h" #include "content/public/browser/native_web_keyboard_event.h" #include "content/public/common/content_client.h"
diff --git a/content/renderer/render_frame_impl_browsertest.cc b/content/renderer/render_frame_impl_browsertest.cc index f9beadc..18f1615 100644 --- a/content/renderer/render_frame_impl_browsertest.cc +++ b/content/renderer/render_frame_impl_browsertest.cc
@@ -23,7 +23,6 @@ #include "content/common/navigation_params_mojom_traits.h" #include "content/common/renderer.mojom.h" #include "content/common/unfreezable_frame_messages.h" -#include "content/common/widget_messages.h" #include "content/public/common/content_features.h" #include "content/public/common/content_switches.h" #include "content/public/renderer/content_renderer_client.h"
diff --git a/content/renderer/render_widget_browsertest.cc b/content/renderer/render_widget_browsertest.cc index e9396a3..7b4b899 100644 --- a/content/renderer/render_widget_browsertest.cc +++ b/content/renderer/render_widget_browsertest.cc
@@ -5,7 +5,6 @@ #include "base/strings/utf_string_conversions.h" #include "components/viz/common/surfaces/local_surface_id.h" #include "components/viz/common/surfaces/parent_local_surface_id_allocator.h" -#include "content/common/widget_messages.h" #include "content/public/renderer/render_frame_visitor.h" #include "content/public/test/fake_render_widget_host.h" #include "content/public/test/render_view_test.h"
diff --git a/content/web_test/browser/web_test_content_browser_client.cc b/content/web_test/browser/web_test_content_browser_client.cc index f0c53c0..6f5ae5b 100644 --- a/content/web_test/browser/web_test_content_browser_client.cc +++ b/content/web_test/browser/web_test_content_browser_client.cc
@@ -11,6 +11,7 @@ #include <vector> #include "base/bind.h" +#include "base/path_service.h" #include "base/single_thread_task_runner.h" #include "base/stl_util.h" #include "base/strings/pattern.h" @@ -517,4 +518,17 @@ return content::GetShellLanguage(); } +void WebTestContentBrowserClient::GetHyphenationDictionary( + base::OnceCallback<void(const base::FilePath&)> callback) { + // Use the dictionaries in the runtime deps instead of the repository. The + // build infrastructure takes only the list of files that GN determines to be + // the runtime deps, not the whole repository. + base::FilePath dir; + if (base::PathService::Get(base::DIR_EXE, &dir)) { + dir = dir.AppendASCII("gen/hyphen-data"); + std::move(callback).Run(dir); + } + // No need to callback if there were no dictionaries. +} + } // namespace content
diff --git a/content/web_test/browser/web_test_content_browser_client.h b/content/web_test/browser/web_test_content_browser_client.h index b96c23e..15262ff3 100644 --- a/content/web_test/browser/web_test_content_browser_client.h +++ b/content/web_test/browser/web_test_content_browser_client.h
@@ -107,6 +107,8 @@ RendererSpawnFlags flags) override; #endif std::string GetAcceptLangs(BrowserContext* context) override; + void GetHyphenationDictionary( + base::OnceCallback<void(const base::FilePath&)>) override; private: // ShellContentBrowserClient overrides.
diff --git a/device/BUILD.gn b/device/BUILD.gn index 2113a942..50f9f99 100644 --- a/device/BUILD.gn +++ b/device/BUILD.gn
@@ -365,10 +365,6 @@ "vr/vr_device_base_unittest.cc", ] - if (is_android) { - deps += [ "//device/vr:java" ] - } - defines = [ "DEVICE_VR_IMPLEMENTATION" ] deps += [
diff --git a/device/bluetooth/strings/bluetooth_strings_am.xtb b/device/bluetooth/strings/bluetooth_strings_am.xtb index 362cb1d..58de17f 100644 --- a/device/bluetooth/strings/bluetooth_strings_am.xtb +++ b/device/bluetooth/strings/bluetooth_strings_am.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />፣ የቪዲዮ መሣሪያ</translation> <translation id="5271696982761495740">ጡባዊ (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">ያልታወቀ ወይም ያልተደገፈ መሣሪያ (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />፣ ሞደም</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />፣ የመኪና ኦዲዮ መሣሪያ</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />፣ የቁልፍ ሰሌዳ</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_az.xtb b/device/bluetooth/strings/bluetooth_strings_az.xtb index 2365a34c..164582a 100644 --- a/device/bluetooth/strings/bluetooth_strings_az.xtb +++ b/device/bluetooth/strings/bluetooth_strings_az.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />, Video cihaz</translation> <translation id="5271696982761495740">Planşet (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Tanınmayan və ya Dəstəklənməyən Cihaz (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />, Modem</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />, Avtomobil audio cihazı</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />, Klaviatura</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_ca.xtb b/device/bluetooth/strings/bluetooth_strings_ca.xtb index ed6e9b3..bc19356 100644 --- a/device/bluetooth/strings/bluetooth_strings_ca.xtb +++ b/device/bluetooth/strings/bluetooth_strings_ca.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />, dispositiu de vídeo</translation> <translation id="5271696982761495740">Tauleta (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Dispositiu desconegut o no compatible (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />, mòdem</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />, dispositiu d'àudio per al cotxe</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />, teclat</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_cs.xtb b/device/bluetooth/strings/bluetooth_strings_cs.xtb index 61a1bbc..a0e8838 100644 --- a/device/bluetooth/strings/bluetooth_strings_cs.xtb +++ b/device/bluetooth/strings/bluetooth_strings_cs.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />, videozařízení</translation> <translation id="5271696982761495740">Tablet (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Neznámé nebo nepodporované zařízení (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />, modem</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />, audiozařízení auta</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />, klávesnice</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_da.xtb b/device/bluetooth/strings/bluetooth_strings_da.xtb index bb69bd9..fb594d2c 100644 --- a/device/bluetooth/strings/bluetooth_strings_da.xtb +++ b/device/bluetooth/strings/bluetooth_strings_da.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />, videoenhed</translation> <translation id="5271696982761495740">Tablet (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Ukendt eller ikke-understøttet enhed (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />, modem</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />, lydenhed til biler</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />, tastatur</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_el.xtb b/device/bluetooth/strings/bluetooth_strings_el.xtb index f604c89..9721bc4 100644 --- a/device/bluetooth/strings/bluetooth_strings_el.xtb +++ b/device/bluetooth/strings/bluetooth_strings_el.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />, συσκευή βίντεο</translation> <translation id="5271696982761495740">Tablet (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Άγνωστη ή μη υποστηριζόμενη συσκευή (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="CONNECTION_STATUS" /> <ph name="DEVICE_NAME_AND_TYPE" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />, Μόντεμ</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />, Συσκευή ήχου αυτοκινήτου</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />, Πληκτρολόγιο</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_es.xtb b/device/bluetooth/strings/bluetooth_strings_es.xtb index bd3fe9ba..6b0e49b20 100644 --- a/device/bluetooth/strings/bluetooth_strings_es.xtb +++ b/device/bluetooth/strings/bluetooth_strings_es.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />, dispositivo de vídeo</translation> <translation id="5271696982761495740">Tablet (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Dispositivo desconocido o no compatible (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />, módem</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />, dispositivo de audio de coche</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />, teclado</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_gl.xtb b/device/bluetooth/strings/bluetooth_strings_gl.xtb index cee665a..c1be55b 100644 --- a/device/bluetooth/strings/bluetooth_strings_gl.xtb +++ b/device/bluetooth/strings/bluetooth_strings_gl.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />, dispositivo de vídeo</translation> <translation id="5271696982761495740">Tableta (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Dispositivo descoñecido ou non compatible (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />, módem</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />, dispositivo de audio para coche</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />, teclado</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_hr.xtb b/device/bluetooth/strings/bluetooth_strings_hr.xtb index df152b7b..922c388 100644 --- a/device/bluetooth/strings/bluetooth_strings_hr.xtb +++ b/device/bluetooth/strings/bluetooth_strings_hr.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />, videouređaj</translation> <translation id="5271696982761495740">Tabletno računalo (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Nepoznat ili nepodržan uređaj (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />, modem</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />, automobilski audiouređaj</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />, tipkovnica</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_is.xtb b/device/bluetooth/strings/bluetooth_strings_is.xtb index 40e3799f..e787190f 100644 --- a/device/bluetooth/strings/bluetooth_strings_is.xtb +++ b/device/bluetooth/strings/bluetooth_strings_is.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />, myndtæki</translation> <translation id="5271696982761495740">Spjaldtölva (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Óþekkt eða óstutt tæki (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />, mótald</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />, hljómtæki í bíl</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />, lyklaborð</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_it.xtb b/device/bluetooth/strings/bluetooth_strings_it.xtb index 24eddd96..ee1ffe6 100644 --- a/device/bluetooth/strings/bluetooth_strings_it.xtb +++ b/device/bluetooth/strings/bluetooth_strings_it.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />, dispositivo video</translation> <translation id="5271696982761495740">Tablet (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Dispositivo sconosciuto o non supportato (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />, modem</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />, dispositivo audio per auto</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />, tastiera</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_kk.xtb b/device/bluetooth/strings/bluetooth_strings_kk.xtb index 3a5394d..b11d920 100644 --- a/device/bluetooth/strings/bluetooth_strings_kk.xtb +++ b/device/bluetooth/strings/bluetooth_strings_kk.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />, бейне құрылғысы</translation> <translation id="5271696982761495740">Планшет (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Белгісіз немесе қолдау көрсетілмеген құрылғы (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />, модем</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />, көліктің аудио құрылғысы</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />, пернетақта</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_ky.xtb b/device/bluetooth/strings/bluetooth_strings_ky.xtb index 5049db5..91ef6c13 100644 --- a/device/bluetooth/strings/bluetooth_strings_ky.xtb +++ b/device/bluetooth/strings/bluetooth_strings_ky.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />, Видео түзмөк</translation> <translation id="5271696982761495740">Планшет (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Белгисиз же колдоого алынбаган түзмөк (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />, Модем</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />, Унаадагы аудио түзмөк</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />, Баскычтоп</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_lt.xtb b/device/bluetooth/strings/bluetooth_strings_lt.xtb index f70e3fa..54a9b68 100644 --- a/device/bluetooth/strings/bluetooth_strings_lt.xtb +++ b/device/bluetooth/strings/bluetooth_strings_lt.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173">„<ph name="DEVICE_NAME" />“, vaizdo įrenginys</translation> <translation id="5271696982761495740">Planšetinis kompiuteris (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Nežinomas arba nepalaikomas įrenginys (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618">„<ph name="DEVICE_NAME" />“, modemas</translation> <translation id="6459740836740815150">„<ph name="DEVICE_NAME" />“, automobilio garso įrenginys</translation> <translation id="6542922424766292144">„<ph name="DEVICE_NAME" />“, klaviatūra</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_lv.xtb b/device/bluetooth/strings/bluetooth_strings_lv.xtb index 28d7387..358a7c3 100644 --- a/device/bluetooth/strings/bluetooth_strings_lv.xtb +++ b/device/bluetooth/strings/bluetooth_strings_lv.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />, video ierīce</translation> <translation id="5271696982761495740">Planšetdators (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Nezināma vai neatbalstīta ierīce (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />, modems</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />, automašīnas audioierīce</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />, tastatūra</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_mk.xtb b/device/bluetooth/strings/bluetooth_strings_mk.xtb index 57ff127..52b10f8 100644 --- a/device/bluetooth/strings/bluetooth_strings_mk.xtb +++ b/device/bluetooth/strings/bluetooth_strings_mk.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />, видеоуред</translation> <translation id="5271696982761495740">Таблет (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Непознат или неподдржан уред (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />, модем</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />, аудиоуред за автомобил</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />, тастатура</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_no.xtb b/device/bluetooth/strings/bluetooth_strings_no.xtb index 21da0e43..deacfaf 100644 --- a/device/bluetooth/strings/bluetooth_strings_no.xtb +++ b/device/bluetooth/strings/bluetooth_strings_no.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" /> – videoenhet</translation> <translation id="5271696982761495740">Nettbrett (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Ukjent eller ikke-støttet enhet (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" /> – modem</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" /> – lydenhet for bil</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" /> – tastatur</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_pl.xtb b/device/bluetooth/strings/bluetooth_strings_pl.xtb index c2fb8377..1dac783 100644 --- a/device/bluetooth/strings/bluetooth_strings_pl.xtb +++ b/device/bluetooth/strings/bluetooth_strings_pl.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />, urządzenie wideo</translation> <translation id="5271696982761495740">Tablet (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Nieznane lub nieobsługiwane urządzenie (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />, modem</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />, samochodowe urządzenie audio</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />, klawiatura</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_pt-BR.xtb b/device/bluetooth/strings/bluetooth_strings_pt-BR.xtb index 905f543..fa53d4b 100644 --- a/device/bluetooth/strings/bluetooth_strings_pt-BR.xtb +++ b/device/bluetooth/strings/bluetooth_strings_pt-BR.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />, dispositivo de vídeo</translation> <translation id="5271696982761495740">Tablet (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Dispositivo desconhecido ou não suportado (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />, modem</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />, dispositivo de áudio do carro</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />, teclado</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_pt-PT.xtb b/device/bluetooth/strings/bluetooth_strings_pt-PT.xtb index 14a56c6..a237f57 100644 --- a/device/bluetooth/strings/bluetooth_strings_pt-PT.xtb +++ b/device/bluetooth/strings/bluetooth_strings_pt-PT.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />, dispositivo de vídeo</translation> <translation id="5271696982761495740">Tablet (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Aparelho Desconhecido ou Não Suportado (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />, modem</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />, dispositivo de áudio do automóvel</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />, teclado</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_ro.xtb b/device/bluetooth/strings/bluetooth_strings_ro.xtb index 7238ae15..6d8e379 100644 --- a/device/bluetooth/strings/bluetooth_strings_ro.xtb +++ b/device/bluetooth/strings/bluetooth_strings_ro.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />, dispozitiv video</translation> <translation id="5271696982761495740">Tabletă (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Dispozitiv necunoscut sau neacceptat (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />, modem</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />, dispozitiv audio pentru mașină</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />, tastatură</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_sr-Latn.xtb b/device/bluetooth/strings/bluetooth_strings_sr-Latn.xtb index 56dffd3..06dd2fac 100644 --- a/device/bluetooth/strings/bluetooth_strings_sr-Latn.xtb +++ b/device/bluetooth/strings/bluetooth_strings_sr-Latn.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />, video uređaj</translation> <translation id="5271696982761495740">Tablet (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Nepoznat ili nepodržan uređaj (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />, modem</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />, audio uređaj u automobilu</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />, tastatura</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_sr.xtb b/device/bluetooth/strings/bluetooth_strings_sr.xtb index fc274c890..60bf361 100644 --- a/device/bluetooth/strings/bluetooth_strings_sr.xtb +++ b/device/bluetooth/strings/bluetooth_strings_sr.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />, видео уређај</translation> <translation id="5271696982761495740">Таблет (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Непознат или неподржан уређај (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />, модем</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />, аудио уређај у аутомобилу</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />, тастатура</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_sv.xtb b/device/bluetooth/strings/bluetooth_strings_sv.xtb index 2a7df3fc..88e3772 100644 --- a/device/bluetooth/strings/bluetooth_strings_sv.xtb +++ b/device/bluetooth/strings/bluetooth_strings_sv.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />, videoenhet</translation> <translation id="5271696982761495740">Surfplatta (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Enheten är okänd eller stöds inte (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />, modem</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />, ljudenhet för bil</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />, tangentbord</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_th.xtb b/device/bluetooth/strings/bluetooth_strings_th.xtb index 432af8b..8cbd7b7 100644 --- a/device/bluetooth/strings/bluetooth_strings_th.xtb +++ b/device/bluetooth/strings/bluetooth_strings_th.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />, อุปกรณ์วิดีโอ</translation> <translation id="5271696982761495740">แท็บเล็ต (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">อุปกรณ์ที่ไม่รู้จักหรือไม่สนับสนุน (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />, โมเด็ม</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" /> อุปกรณ์เสียงของรถยนต์</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />, แป้นพิมพ์</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_uk.xtb b/device/bluetooth/strings/bluetooth_strings_uk.xtb index d6a291e..03781bf 100644 --- a/device/bluetooth/strings/bluetooth_strings_uk.xtb +++ b/device/bluetooth/strings/bluetooth_strings_uk.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />, відеопристрій</translation> <translation id="5271696982761495740">Планшетний ПК (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Невідомий чи непідтримуваний пристрій (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />, модем</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />, аудіопристрій для автомобілів</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />, клавіатура</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_uz.xtb b/device/bluetooth/strings/bluetooth_strings_uz.xtb index 744cdf66..d4d1100 100644 --- a/device/bluetooth/strings/bluetooth_strings_uz.xtb +++ b/device/bluetooth/strings/bluetooth_strings_uz.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />, Video qurilma</translation> <translation id="5271696982761495740">Planshet (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">Noma’lum yoki qo‘llab-quvvatlanmaydigan qurilma (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />, Modem</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />, avtomobil audio qurilmasi</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />, Klaviatura</translation>
diff --git a/device/bluetooth/strings/bluetooth_strings_zh-HK.xtb b/device/bluetooth/strings/bluetooth_strings_zh-HK.xtb index 35e6749..a0d770c 100644 --- a/device/bluetooth/strings/bluetooth_strings_zh-HK.xtb +++ b/device/bluetooth/strings/bluetooth_strings_zh-HK.xtb
@@ -16,6 +16,7 @@ <translation id="4986357476502426173"><ph name="DEVICE_NAME" />,視訊裝置</translation> <translation id="5271696982761495740">平板電腦 (<ph name="ADDRESS" />)</translation> <translation id="5376363957846771741">不明的或不支援的裝置 (<ph name="ADDRESS" />)</translation> +<translation id="571460437990229974"><ph name="DEVICE_NAME_AND_TYPE" /> <ph name="CONNECTION_STATUS" /></translation> <translation id="5716052956047449618"><ph name="DEVICE_NAME" />,數據機</translation> <translation id="6459740836740815150"><ph name="DEVICE_NAME" />,汽車音響裝置</translation> <translation id="6542922424766292144"><ph name="DEVICE_NAME" />,鍵盤</translation>
diff --git a/device/vr/BUILD.gn b/device/vr/BUILD.gn index c86426b..8ca92d1 100644 --- a/device/vr/BUILD.gn +++ b/device/vr/BUILD.gn
@@ -232,6 +232,8 @@ "openxr/openxr_defs.h", "openxr/openxr_device.cc", "openxr/openxr_device.h", + "openxr/openxr_extension_helper.cc", + "openxr/openxr_extension_helper.h", "openxr/openxr_input_helper.cc", "openxr/openxr_input_helper.h", "openxr/openxr_interaction_profiles.h", @@ -322,6 +324,8 @@ sources = [ "openxr/openxr_defs.h", + "openxr/openxr_extension_helper.cc", + "openxr/openxr_extension_helper.h", "openxr/openxr_util.cc", "openxr/openxr_util.h", "openxr/test/fake_openxr_impl_api.cc",
diff --git a/device/vr/openxr/openxr_api_wrapper.cc b/device/vr/openxr/openxr_api_wrapper.cc index 1b48d1ec..c531483 100644 --- a/device/vr/openxr/openxr_api_wrapper.cc +++ b/device/vr/openxr/openxr_api_wrapper.cc
@@ -271,7 +271,8 @@ // objects that may have been created before the failure. XrResult OpenXrApiWrapper::InitSession( const Microsoft::WRL::ComPtr<ID3D11Device>& d3d_device, - std::unique_ptr<OpenXRInputHelper>* input_helper) { + std::unique_ptr<OpenXRInputHelper>* input_helper, + const OpenXrExtensionHelper& extension_helper) { DCHECK(d3d_device.Get()); DCHECK(IsInitialized()); @@ -286,14 +287,13 @@ CreateSpace(XR_REFERENCE_SPACE_TYPE_STAGE, &stage_space_); UpdateStageBounds(); - OpenXrExtensionHelper extension_helper; - if (extension_helper.ExtensionSupported( + if (extension_helper.ExtensionEnumeration()->ExtensionSupported( XR_MSFT_UNBOUNDED_REFERENCE_SPACE_EXTENSION_NAME)) { RETURN_IF_XR_FAILED( CreateSpace(XR_REFERENCE_SPACE_TYPE_UNBOUNDED_MSFT, &unbounded_space_)); } - RETURN_IF_XR_FAILED(CreateGamepadHelper(input_helper)); + RETURN_IF_XR_FAILED(CreateGamepadHelper(input_helper, extension_helper)); // Since the objects in these arrays are used on every frame, // we don't want to create and destroy these objects every frame, @@ -395,12 +395,13 @@ } XrResult OpenXrApiWrapper::CreateGamepadHelper( - std::unique_ptr<OpenXRInputHelper>* input_helper) { + std::unique_ptr<OpenXRInputHelper>* input_helper, + const OpenXrExtensionHelper& extension_helper) { DCHECK(HasSession()); DCHECK(HasSpace(XR_REFERENCE_SPACE_TYPE_LOCAL)); - return OpenXRInputHelper::CreateOpenXRInputHelper(instance_, session_, - local_space_, input_helper); + return OpenXRInputHelper::CreateOpenXRInputHelper( + instance_, extension_helper, session_, local_space_, input_helper); } XrResult OpenXrApiWrapper::BeginSession() { @@ -620,13 +621,20 @@ *right = head_from_eye_views_[1]; } -XrResult OpenXrApiWrapper::GetLuid(LUID* luid) const { +XrResult OpenXrApiWrapper::GetLuid( + LUID* luid, + const OpenXrExtensionHelper& extension_helper) const { DCHECK(IsInitialized()); + if (extension_helper.ExtensionMethods().xrGetD3D11GraphicsRequirementsKHR == + nullptr) + return XR_ERROR_FUNCTION_UNSUPPORTED; + XrGraphicsRequirementsD3D11KHR graphics_requirements = { XR_TYPE_GRAPHICS_REQUIREMENTS_D3D11_KHR}; - RETURN_IF_XR_FAILED(xrGetD3D11GraphicsRequirementsKHR( - instance_, system_, &graphics_requirements)); + RETURN_IF_XR_FAILED( + extension_helper.ExtensionMethods().xrGetD3D11GraphicsRequirementsKHR( + instance_, system_, &graphics_requirements)); luid->LowPart = graphics_requirements.adapterLuid.LowPart; luid->HighPart = graphics_requirements.adapterLuid.HighPart;
diff --git a/device/vr/openxr/openxr_api_wrapper.h b/device/vr/openxr/openxr_api_wrapper.h index e55d8e5..dc2a966f 100644 --- a/device/vr/openxr/openxr_api_wrapper.h +++ b/device/vr/openxr/openxr_api_wrapper.h
@@ -47,7 +47,8 @@ bool UpdateAndGetSessionEnded(); XrResult InitSession(const Microsoft::WRL::ComPtr<ID3D11Device>& d3d_device, - std::unique_ptr<OpenXRInputHelper>* input_helper); + std::unique_ptr<OpenXRInputHelper>* input_helper, + const OpenXrExtensionHelper& extension_helper); XrResult BeginFrame(Microsoft::WRL::ComPtr<ID3D11Texture2D>* texture); XrResult EndFrame(); @@ -60,7 +61,8 @@ gfx::Size GetViewSize() const; XrTime GetPredictedDisplayTime() const; - XrResult GetLuid(LUID* luid) const; + XrResult GetLuid(LUID* luid, + const OpenXrExtensionHelper& extension_helper) const; bool GetStageParameters(XrExtent2Df* stage_bounds, gfx::Transform* local_from_stage); void RegisterInteractionProfileChangeCallback( @@ -89,8 +91,8 @@ const Microsoft::WRL::ComPtr<ID3D11Device>& d3d_device); XrResult CreateSwapchain(); XrResult CreateSpace(XrReferenceSpaceType type, XrSpace* space); - XrResult CreateGamepadHelper( - std::unique_ptr<OpenXRInputHelper>* input_helper); + XrResult CreateGamepadHelper(std::unique_ptr<OpenXRInputHelper>* input_helper, + const OpenXrExtensionHelper& extension_helper); XrResult BeginSession(); XrResult UpdateProjectionLayers();
diff --git a/device/vr/openxr/openxr_controller.cc b/device/vr/openxr/openxr_controller.cc index 65c920c..87bce0f 100644 --- a/device/vr/openxr/openxr_controller.cc +++ b/device/vr/openxr/openxr_controller.cc
@@ -143,8 +143,9 @@ const bool extension_required = interaction_profile.required_extension != nullptr; if (extension_required) { - const bool extension_enabled = extension_helper.ExtensionSupported( - interaction_profile.required_extension); + const bool extension_enabled = + extension_helper.ExtensionEnumeration()->ExtensionSupported( + interaction_profile.required_extension); if (!extension_enabled) { continue; }
diff --git a/device/vr/openxr/openxr_defs.h b/device/vr/openxr/openxr_defs.h index 54ddb8b..2fd969ab 100644 --- a/device/vr/openxr/openxr_defs.h +++ b/device/vr/openxr/openxr_defs.h
@@ -6,9 +6,6 @@ #define DEVICE_VR_OPENXR_OPENXR_DEFS_H_ namespace device { -constexpr char kWin32AppcontainerCompatibleExtensionName[] = - "XR_EXT_win32_appcontainer_compatible"; - constexpr char kExtSamsungOdysseyControllerExtensionName[] = "XR_EXT_samsung_odyssey_controller"; constexpr char kExtHPMixedRealityControllerExtensionName[] = @@ -16,4 +13,4 @@ } // namespace device -#endif // DEVICE_VR_OPENXR_OPENXR_DEFS_H_ +#endif // DEVICE_VR_OPENXR_OPENXR_DEFS_H_ \ No newline at end of file
diff --git a/device/vr/openxr/openxr_device.cc b/device/vr/openxr/openxr_device.cc index 3282dc89..5bb76c97 100644 --- a/device/vr/openxr/openxr_device.cc +++ b/device/vr/openxr/openxr_device.cc
@@ -58,12 +58,13 @@ OpenXrDevice::OpenXrDevice(OpenXrStatics* openxr_statics) : VRDeviceBase(device::mojom::XRDeviceId::OPENXR_DEVICE_ID), instance_(openxr_statics->GetXrInstance()), + extension_helper_(instance_, openxr_statics->GetExtensionEnumeration()), weak_ptr_factory_(this) { mojom::VRDisplayInfoPtr display_info = CreateFakeVRDisplayInfo(); SetVRDisplayInfo(std::move(display_info)); SetArBlendModeSupported(IsArBlendModeSupported(openxr_statics)); #if defined(OS_WIN) - SetLuid(openxr_statics->GetLuid()); + SetLuid(openxr_statics->GetLuid(extension_helper_)); #endif } @@ -86,7 +87,7 @@ auto on_info_changed = base::BindRepeating(&OpenXrDevice::SetVRDisplayInfo, weak_ptr_factory_.GetWeakPtr()); render_loop_ = std::make_unique<OpenXrRenderLoop>( - std::move(on_info_changed), instance_); + std::move(on_info_changed), instance_, extension_helper_); } }
diff --git a/device/vr/openxr/openxr_device.h b/device/vr/openxr/openxr_device.h index 1ee325d..150703c 100644 --- a/device/vr/openxr/openxr_device.h +++ b/device/vr/openxr/openxr_device.h
@@ -8,6 +8,7 @@ #include <memory> #include "base/macros.h" +#include "device/vr/openxr/openxr_util.h" #include "device/vr/public/mojom/vr_service.mojom.h" #include "device/vr/vr_device_base.h" #include "device/vr/vr_export.h" @@ -53,6 +54,7 @@ bool IsArBlendModeSupported(OpenXrStatics* openxr_statics); XrInstance instance_; + OpenXrExtensionHelper extension_helper_; std::unique_ptr<OpenXrRenderLoop> render_loop_; mojo::Receiver<mojom::XRSessionController> exclusive_controller_receiver_{
diff --git a/device/vr/openxr/openxr_extension_helper.cc b/device/vr/openxr/openxr_extension_helper.cc new file mode 100644 index 0000000..892cf3d --- /dev/null +++ b/device/vr/openxr/openxr_extension_helper.cc
@@ -0,0 +1,46 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "device/vr/openxr/openxr_extension_helper.h" + +namespace device { + +OpenXrExtensionEnumeration::OpenXrExtensionEnumeration() { + uint32_t extension_count; + if (XR_SUCCEEDED(xrEnumerateInstanceExtensionProperties( + nullptr, 0, &extension_count, nullptr))) { + extension_properties_.resize(extension_count, + {XR_TYPE_EXTENSION_PROPERTIES}); + xrEnumerateInstanceExtensionProperties(nullptr, extension_count, + &extension_count, + extension_properties_.data()); + } +} + +OpenXrExtensionEnumeration::~OpenXrExtensionEnumeration() = default; + +bool OpenXrExtensionEnumeration::ExtensionSupported( + const char* extension_name) const { + return std::find_if( + extension_properties_.begin(), extension_properties_.end(), + [&extension_name](const XrExtensionProperties& properties) { + return strcmp(properties.extensionName, extension_name) == 0; + }) != extension_properties_.end(); +} + +OpenXrExtensionHelper::~OpenXrExtensionHelper() = default; + +OpenXrExtensionHelper::OpenXrExtensionHelper( + XrInstance instance, + const OpenXrExtensionEnumeration* const extension_enumeration) + : extension_enumeration_(extension_enumeration) { + // Failure results in a nullptr + (void)xrGetInstanceProcAddr( + instance, "xrGetD3D11GraphicsRequirementsKHR", + reinterpret_cast<PFN_xrVoidFunction*>( + const_cast<PFN_xrGetD3D11GraphicsRequirementsKHR*>( + &extension_methods_.xrGetD3D11GraphicsRequirementsKHR))); +} + +} // namespace device
diff --git a/device/vr/openxr/openxr_extension_helper.h b/device/vr/openxr/openxr_extension_helper.h new file mode 100644 index 0000000..1523d37 --- /dev/null +++ b/device/vr/openxr/openxr_extension_helper.h
@@ -0,0 +1,54 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef DEVICE_VR_OPENXR_OPENXR_EXTENSION_HELPER_H_ +#define DEVICE_VR_OPENXR_OPENXR_EXTENSION_HELPER_H_ + +#include <d3d11.h> +#include <vector> + +#include "base/logging.h" +#include "third_party/openxr/src/include/openxr/openxr.h" +#include "third_party/openxr/src/include/openxr/openxr_platform.h" + +namespace device { +struct OpenXrExtensionMethods { + PFN_xrGetD3D11GraphicsRequirementsKHR xrGetD3D11GraphicsRequirementsKHR{ + nullptr}; +}; + +class OpenXrExtensionEnumeration { + public: + OpenXrExtensionEnumeration(); + ~OpenXrExtensionEnumeration(); + + bool ExtensionSupported(const char* extension_name) const; + + private: + std::vector<XrExtensionProperties> extension_properties_; +}; + +class OpenXrExtensionHelper { + public: + OpenXrExtensionHelper( + XrInstance instance, + const OpenXrExtensionEnumeration* const extension_enumeration); + ~OpenXrExtensionHelper(); + + const OpenXrExtensionEnumeration* ExtensionEnumeration() const { + return extension_enumeration_; + } + + const OpenXrExtensionMethods& ExtensionMethods() const { + return extension_methods_; + } + + private: + const OpenXrExtensionMethods extension_methods_; + const OpenXrExtensionEnumeration* const extension_enumeration_; +}; + +} // namespace device + +#endif // DEVICE_VR_OPENXR_OPENXR_EXTENSION_HELPER_H_
diff --git a/device/vr/openxr/openxr_input_helper.cc b/device/vr/openxr/openxr_input_helper.cc index 668faad..6ea52a6 100644 --- a/device/vr/openxr/openxr_input_helper.cc +++ b/device/vr/openxr/openxr_input_helper.cc
@@ -96,13 +96,14 @@ XrResult OpenXRInputHelper::CreateOpenXRInputHelper( XrInstance instance, + const OpenXrExtensionHelper& extension_helper, XrSession session, XrSpace local_space, std::unique_ptr<OpenXRInputHelper>* helper) { std::unique_ptr<OpenXRInputHelper> new_helper = std::make_unique<OpenXRInputHelper>(session, local_space); - RETURN_IF_XR_FAILED(new_helper->Initialize(instance)); + RETURN_IF_XR_FAILED(new_helper->Initialize(instance, extension_helper)); *helper = std::move(new_helper); return XR_SUCCESS; } @@ -114,7 +115,9 @@ OpenXRInputHelper::~OpenXRInputHelper() = default; -XrResult OpenXRInputHelper::Initialize(XrInstance instance) { +XrResult OpenXRInputHelper::Initialize( + XrInstance instance, + const OpenXrExtensionHelper& extension_helper) { RETURN_IF_XR_FAILED(path_helper_->Initialize(instance)); // This map is used to store bindings for different kinds of interaction @@ -122,7 +125,6 @@ // on availability. std::map<XrPath, std::vector<XrActionSuggestedBinding>> bindings; - OpenXrExtensionHelper extension_helper; for (size_t i = 0; i < controller_states_.size(); i++) { RETURN_IF_XR_FAILED(controller_states_[i].controller.Initialize( static_cast<OpenXrHandednessType>(i), instance, session_,
diff --git a/device/vr/openxr/openxr_input_helper.h b/device/vr/openxr/openxr_input_helper.h index 1480abe0..cf8b16c 100644 --- a/device/vr/openxr/openxr_input_helper.h +++ b/device/vr/openxr/openxr_input_helper.h
@@ -13,6 +13,7 @@ #include "device/vr/openxr/openxr_controller.h" #include "device/vr/openxr/openxr_interaction_profiles.h" +#include "device/vr/openxr/openxr_util.h" namespace device { @@ -20,6 +21,7 @@ public: static XrResult CreateOpenXRInputHelper( XrInstance instance, + const OpenXrExtensionHelper& extension_helper, XrSession session, XrSpace local_space, std::unique_ptr<OpenXRInputHelper>* helper); @@ -38,7 +40,8 @@ private: base::Optional<Gamepad> GetWebXRGamepad(const OpenXrController& controller); - XrResult Initialize(XrInstance instance); + XrResult Initialize(XrInstance instance, + const OpenXrExtensionHelper& extension_helper); XrResult SyncActions(XrTime predicted_display_time);
diff --git a/device/vr/openxr/openxr_render_loop.cc b/device/vr/openxr/openxr_render_loop.cc index 831404a..2fe46de 100644 --- a/device/vr/openxr/openxr_render_loop.cc +++ b/device/vr/openxr/openxr_render_loop.cc
@@ -17,9 +17,11 @@ OpenXrRenderLoop::OpenXrRenderLoop( base::RepeatingCallback<void(mojom::VRDisplayInfoPtr)> on_display_info_changed, - XrInstance instance) + XrInstance instance, + const OpenXrExtensionHelper& extension_helper) : XRCompositorCommon(), instance_(instance), + extension_helper_(extension_helper), on_display_info_changed_(std::move(on_display_info_changed)) { DCHECK(instance_ != XR_NULL_HANDLE); } @@ -91,11 +93,11 @@ texture_helper_.SetUseBGRA(true); LUID luid; - if (XR_FAILED(openxr->GetLuid(&luid)) || + if (XR_FAILED(openxr->GetLuid(&luid, extension_helper_)) || !texture_helper_.SetAdapterLUID(luid) || !texture_helper_.EnsureInitialized() || - XR_FAILED( - openxr->InitSession(texture_helper_.GetDevice(), &input_helper_))) { + XR_FAILED(openxr->InitSession(texture_helper_.GetDevice(), &input_helper_, + extension_helper_))) { texture_helper_.Reset(); return false; }
diff --git a/device/vr/openxr/openxr_render_loop.h b/device/vr/openxr/openxr_render_loop.h index f3b5eb9a..a4b0619 100644 --- a/device/vr/openxr/openxr_render_loop.h +++ b/device/vr/openxr/openxr_render_loop.h
@@ -10,6 +10,7 @@ #include "base/callback.h" #include "base/macros.h" +#include "device/vr/openxr/openxr_util.h" #include "device/vr/windows/compositor_base.h" #include "third_party/openxr/src/include/openxr/openxr.h" @@ -24,7 +25,8 @@ public: OpenXrRenderLoop(base::RepeatingCallback<void(mojom::VRDisplayInfoPtr)> on_display_info_changed, - XrInstance instance); + XrInstance instance, + const OpenXrExtensionHelper& extension_helper_); ~OpenXrRenderLoop() override; private: @@ -53,6 +55,7 @@ // Owned by OpenXrStatics XrInstance instance_; + const OpenXrExtensionHelper& extension_helper_; std::unique_ptr<OpenXrApiWrapper> openxr_; std::unique_ptr<OpenXRInputHelper> input_helper_;
diff --git a/device/vr/openxr/openxr_statics.cc b/device/vr/openxr/openxr_statics.cc index cd38089..5ecc088 100644 --- a/device/vr/openxr/openxr_statics.cc +++ b/device/vr/openxr/openxr_statics.cc
@@ -17,7 +17,8 @@ } XrInstance OpenXrStatics::GetXrInstance() { - if (instance_ == XR_NULL_HANDLE && XR_FAILED(CreateInstance(&instance_))) { + if (instance_ == XR_NULL_HANDLE && + XR_FAILED(CreateInstance(&instance_, extension_enumeration_))) { return XR_NULL_HANDLE; } return instance_; @@ -39,7 +40,7 @@ #if defined(OS_WIN) // Returns the LUID of the adapter the OpenXR runtime is on. Returns {0, 0} if // the LUID could not be determined. -LUID OpenXrStatics::GetLuid() { +LUID OpenXrStatics::GetLuid(const OpenXrExtensionHelper& extension_helper) { if (GetXrInstance() == XR_NULL_HANDLE) return {0, 0}; @@ -47,10 +48,15 @@ if (XR_FAILED(GetSystem(instance_, &system))) return {0, 0}; + if (extension_helper.ExtensionMethods().xrGetD3D11GraphicsRequirementsKHR == + nullptr) + return {0, 0}; + XrGraphicsRequirementsD3D11KHR graphics_requirements = { XR_TYPE_GRAPHICS_REQUIREMENTS_D3D11_KHR}; - if (XR_FAILED(xrGetD3D11GraphicsRequirementsKHR(instance_, system, - &graphics_requirements))) + if (XR_FAILED( + extension_helper.ExtensionMethods().xrGetD3D11GraphicsRequirementsKHR( + instance_, system, &graphics_requirements))) return {0, 0}; return graphics_requirements.adapterLuid;
diff --git a/device/vr/openxr/openxr_statics.h b/device/vr/openxr/openxr_statics.h index 417f0cd..252824c 100644 --- a/device/vr/openxr/openxr_statics.h +++ b/device/vr/openxr/openxr_statics.h
@@ -9,6 +9,7 @@ #include <memory> #include "build/build_config.h" +#include "device/vr/openxr/openxr_util.h" #include "device/vr/vr_export.h" #include "third_party/openxr/src/include/openxr/openxr.h" #include "third_party/openxr/src/include/openxr/openxr_platform.h" @@ -22,17 +23,22 @@ OpenXrStatics(); ~OpenXrStatics(); + const OpenXrExtensionEnumeration* GetExtensionEnumeration() const { + return &extension_enumeration_; + } + XrInstance GetXrInstance(); bool IsHardwareAvailable(); bool IsApiAvailable(); #if defined(OS_WIN) - LUID GetLuid(); + LUID GetLuid(const OpenXrExtensionHelper& extension_helper); #endif private: XrInstance instance_; + OpenXrExtensionEnumeration extension_enumeration_; }; } // namespace device
diff --git a/device/vr/openxr/openxr_util.cc b/device/vr/openxr/openxr_util.cc index e5fcbf1..fdfc66d4 100644 --- a/device/vr/openxr/openxr_util.cc +++ b/device/vr/openxr/openxr_util.cc
@@ -3,11 +3,8 @@ // found in the LICENSE file. #include "device/vr/openxr/openxr_util.h" -#include "device/vr/openxr/openxr_defs.h" -#include <d3d11.h> #include <string> -#include <vector> #include "base/check_op.h" #include "base/stl_util.h" @@ -15,7 +12,6 @@ #include "base/win/scoped_handle.h" #include "build/build_config.h" #include "components/version_info/version_info.h" -#include "third_party/openxr/src/include/openxr/openxr_platform.h" namespace device { @@ -56,30 +52,9 @@ } #endif -OpenXrExtensionHelper::OpenXrExtensionHelper() { - uint32_t extension_count; - if (XR_SUCCEEDED(xrEnumerateInstanceExtensionProperties( - nullptr, 0, &extension_count, nullptr))) { - extension_properties_.resize(extension_count, - {XR_TYPE_EXTENSION_PROPERTIES}); - xrEnumerateInstanceExtensionProperties(nullptr, extension_count, - &extension_count, - extension_properties_.data()); - } -} - -OpenXrExtensionHelper::~OpenXrExtensionHelper() = default; - -bool OpenXrExtensionHelper::ExtensionSupported( - const char* extension_name) const { - return std::find_if( - extension_properties_.begin(), extension_properties_.end(), - [&extension_name](const XrExtensionProperties& properties) { - return strcmp(properties.extensionName, extension_name) == 0; - }) != extension_properties_.end(); -} - -XrResult CreateInstance(XrInstance* instance) { +XrResult CreateInstance( + XrInstance* instance, + const OpenXrExtensionEnumeration& extension_enumeration) { XrInstanceCreateInfo instance_create_info = {XR_TYPE_INSTANCE_CREATE_INFO}; std::string application_name = version_info::GetProductName() + " " + @@ -121,15 +96,14 @@ // Add the win32 app container compatible extension to our list of // extensions. If this runtime does not support execution in an app // container environment, one of xrCreateInstance or xrGetSystem will fail. - extensions.push_back(kWin32AppcontainerCompatibleExtensionName); + extensions.push_back(XR_EXT_WIN32_APPCONTAINER_COMPATIBLE_EXTENSION_NAME); } // XR_MSFT_UNBOUNDED_REFERENCE_SPACE_EXTENSION_NAME, is required for optional // functionality (unbounded reference spaces) and thus only requested if it is // available. - OpenXrExtensionHelper extension_helper; const bool unboundedSpaceExtensionSupported = - extension_helper.ExtensionSupported( + extension_enumeration.ExtensionSupported( XR_MSFT_UNBOUNDED_REFERENCE_SPACE_EXTENSION_NAME); if (unboundedSpaceExtensionSupported) { extensions.push_back(XR_MSFT_UNBOUNDED_REFERENCE_SPACE_EXTENSION_NAME); @@ -138,14 +112,14 @@ // Input extensions. These enable interaction profiles not defined in the core // spec const bool samsungInteractionProfileExtensionSupported = - extension_helper.ExtensionSupported( + extension_enumeration.ExtensionSupported( kExtSamsungOdysseyControllerExtensionName); if (samsungInteractionProfileExtensionSupported) { extensions.push_back(kExtSamsungOdysseyControllerExtensionName); } const bool hpControllerExtensionSupported = - extension_helper.ExtensionSupported( + extension_enumeration.ExtensionSupported( kExtHPMixedRealityControllerExtensionName); if (hpControllerExtensionSupported) { extensions.push_back(kExtHPMixedRealityControllerExtensionName);
diff --git a/device/vr/openxr/openxr_util.h b/device/vr/openxr/openxr_util.h index dd3ec51..1c9f7ed8 100644 --- a/device/vr/openxr/openxr_util.h +++ b/device/vr/openxr/openxr_util.h
@@ -5,23 +5,16 @@ #ifndef DEVICE_VR_OPENXR_OPENXR_UTIL_H_ #define DEVICE_VR_OPENXR_OPENXR_UTIL_H_ +#include <d3d11.h> #include <vector> #include "base/logging.h" +#include "device/vr/openxr/openxr_defs.h" +#include "device/vr/openxr/openxr_extension_helper.h" #include "third_party/openxr/src/include/openxr/openxr.h" +#include "third_party/openxr/src/include/openxr/openxr_platform.h" namespace device { -class OpenXrExtensionHelper { - public: - OpenXrExtensionHelper(); - ~OpenXrExtensionHelper(); - - bool ExtensionSupported(const char* extension_name) const; - - private: - std::vector<XrExtensionProperties> extension_properties_; -}; - // These macros aren't common in Chromium and generally discouraged, so define // all OpenXR helper macros here so they can be kept track of. This file // should not be included outside of device/vr/openxr. @@ -58,7 +51,9 @@ XrResult GetSystem(XrInstance instance, XrSystemId* system); -XrResult CreateInstance(XrInstance* instance); +XrResult CreateInstance( + XrInstance* instance, + const OpenXrExtensionEnumeration& extension_enumeration); std::vector<XrEnvironmentBlendMode> GetSupportedBlendModes(XrInstance instance, XrSystemId system);
diff --git a/device/vr/openxr/test/fake_openxr_impl_api.cc b/device/vr/openxr/test/fake_openxr_impl_api.cc index b371b80..61d0ce6 100644 --- a/device/vr/openxr/test/fake_openxr_impl_api.cc +++ b/device/vr/openxr/test/fake_openxr_impl_api.cc
@@ -16,6 +16,8 @@ OpenXrTestHelper g_test_helper; } // namespace +// Extension methods + // Mock implementations of openxr runtime.dll APIs. // Please add new APIs in alphabetical order. @@ -903,3 +905,100 @@ return XR_SUCCESS; } + +// Getter for extension methods. Casts the correct function dynamically based on +// the method name provided. +// Please add new OpenXR APIs below in alphabetical order. +XrResult XRAPI_PTR xrGetInstanceProcAddr(XrInstance instance, + const char* name, + PFN_xrVoidFunction* function) { + if (strcmp(name, "xrAcquireSwapchainImage") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrAcquireSwapchainImage); + } else if (strcmp(name, "xrAttachSessionActionSets") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrAttachSessionActionSets); + } else if (strcmp(name, "xrBeginFrame") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrBeginFrame); + } else if (strcmp(name, "xrBeginSession") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrBeginSession); + } else if (strcmp(name, "xrCreateAction") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrCreateAction); + } else if (strcmp(name, "xrCreateActionSet") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrCreateActionSet); + } else if (strcmp(name, "xrCreateActionSpace") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrCreateActionSpace); + } else if (strcmp(name, "xrCreateInstance") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrCreateInstance); + } else if (strcmp(name, "xrCreateReferenceSpace") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrCreateReferenceSpace); + } else if (strcmp(name, "xrCreateSession") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrCreateSession); + } else if (strcmp(name, "xrCreateSwapchain") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrCreateSwapchain); + } else if (strcmp(name, "xrDestroyActionSet") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrDestroyActionSet); + } else if (strcmp(name, "xrDestroyInstance") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrDestroyInstance); + } else if (strcmp(name, "xrDestroySpace") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrDestroySpace); + } else if (strcmp(name, "xrEndFrame") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrEndFrame); + } else if (strcmp(name, "xrEndSession") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrEndSession); + } else if (strcmp(name, "xrEnumerateEnvironmentBlendModes") == 0) { + *function = + reinterpret_cast<PFN_xrVoidFunction>(xrEnumerateEnvironmentBlendModes); + } else if (strcmp(name, "xrEnumerateInstanceExtensionProperties") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>( + xrEnumerateInstanceExtensionProperties); + } else if (strcmp(name, "xrEnumerateSwapchainImages") == 0) { + *function = + reinterpret_cast<PFN_xrVoidFunction>(xrEnumerateSwapchainImages); + } else if (strcmp(name, "xrEnumerateViewConfigurationViews") == 0) { + *function = + reinterpret_cast<PFN_xrVoidFunction>(xrEnumerateViewConfigurationViews); + } else if (strcmp(name, "xrGetD3D11GraphicsRequirementsKHR") == 0) { + *function = + reinterpret_cast<PFN_xrVoidFunction>(xrGetD3D11GraphicsRequirementsKHR); + } else if (strcmp(name, "xrGetActionStateFloat") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrGetActionStateFloat); + } else if (strcmp(name, "xrGetActionStateBoolean") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrGetActionStateBoolean); + } else if (strcmp(name, "xrGetActionStateVector2f") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrGetActionStateVector2f); + } else if (strcmp(name, "xrGetActionStatePose") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrGetActionStatePose); + } else if (strcmp(name, "xrGetCurrentInteractionProfile") == 0) { + *function = + reinterpret_cast<PFN_xrVoidFunction>(xrGetCurrentInteractionProfile); + } else if (strcmp(name, "xrGetReferenceSpaceBoundsRect") == 0) { + *function = + reinterpret_cast<PFN_xrVoidFunction>(xrGetReferenceSpaceBoundsRect); + } else if (strcmp(name, "xrGetSystem") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrGetSystem); + } else if (strcmp(name, "xrLocateSpace") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrLocateSpace); + } else if (strcmp(name, "xrLocateViews") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrLocateViews); + } else if (strcmp(name, "xrPollEvent") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrPollEvent); + } else if (strcmp(name, "xrReleaseSwapchainImage") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrReleaseSwapchainImage); + } else if (strcmp(name, "xrSuggestInteractionProfileBindings") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>( + xrSuggestInteractionProfileBindings); + } else if (strcmp(name, "xrStringToPath") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrStringToPath); + } else if (strcmp(name, "xrPathToString") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrPathToString); + } else if (strcmp(name, "xrSyncActions") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrSyncActions); + } else if (strcmp(name, "xrWaitFrame") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrWaitFrame); + } else if (strcmp(name, "xrWaitSwapchainImage") == 0) { + *function = reinterpret_cast<PFN_xrVoidFunction>(xrWaitSwapchainImage); + } else { + return XR_ERROR_FUNCTION_UNSUPPORTED; + } + + return XR_SUCCESS; +} \ No newline at end of file
diff --git a/device/vr/openxr/test/openxr_negotiate.h b/device/vr/openxr/test/openxr_negotiate.h index 0d3e15e..b8d2cec 100644 --- a/device/vr/openxr/test/openxr_negotiate.h +++ b/device/vr/openxr/test/openxr_negotiate.h
@@ -17,110 +17,19 @@ // only be used to call the fake OpenXR APIs defined in // fake_openxr_impl_api.cc. -// Please add new OpenXR APIs below in alphabetical order. -XrResult XRAPI_PTR GetInstanceProcAddress(XrInstance instance, - const char* name, - PFN_xrVoidFunction* function) { - if (strcmp(name, "xrAcquireSwapchainImage") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrAcquireSwapchainImage); - } else if (strcmp(name, "xrAttachSessionActionSets") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrAttachSessionActionSets); - } else if (strcmp(name, "xrBeginFrame") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrBeginFrame); - } else if (strcmp(name, "xrBeginSession") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrBeginSession); - } else if (strcmp(name, "xrCreateAction") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrCreateAction); - } else if (strcmp(name, "xrCreateActionSet") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrCreateActionSet); - } else if (strcmp(name, "xrCreateActionSpace") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrCreateActionSpace); - } else if (strcmp(name, "xrCreateInstance") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrCreateInstance); - } else if (strcmp(name, "xrCreateReferenceSpace") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrCreateReferenceSpace); - } else if (strcmp(name, "xrCreateSession") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrCreateSession); - } else if (strcmp(name, "xrCreateSwapchain") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrCreateSwapchain); - } else if (strcmp(name, "xrDestroyActionSet") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrDestroyActionSet); - } else if (strcmp(name, "xrDestroyInstance") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrDestroyInstance); - } else if (strcmp(name, "xrDestroySpace") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrDestroySpace); - } else if (strcmp(name, "xrEndFrame") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrEndFrame); - } else if (strcmp(name, "xrEndSession") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrEndSession); - } else if (strcmp(name, "xrEnumerateEnvironmentBlendModes") == 0) { - *function = - reinterpret_cast<PFN_xrVoidFunction>(xrEnumerateEnvironmentBlendModes); - } else if (strcmp(name, "xrEnumerateInstanceExtensionProperties") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>( - xrEnumerateInstanceExtensionProperties); - } else if (strcmp(name, "xrEnumerateSwapchainImages") == 0) { - *function = - reinterpret_cast<PFN_xrVoidFunction>(xrEnumerateSwapchainImages); - } else if (strcmp(name, "xrEnumerateViewConfigurationViews") == 0) { - *function = - reinterpret_cast<PFN_xrVoidFunction>(xrEnumerateViewConfigurationViews); - } else if (strcmp(name, "xrGetD3D11GraphicsRequirementsKHR") == 0) { - *function = - reinterpret_cast<PFN_xrVoidFunction>(xrGetD3D11GraphicsRequirementsKHR); - } else if (strcmp(name, "xrGetActionStateFloat") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrGetActionStateFloat); - } else if (strcmp(name, "xrGetActionStateBoolean") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrGetActionStateBoolean); - } else if (strcmp(name, "xrGetActionStateVector2f") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrGetActionStateVector2f); - } else if (strcmp(name, "xrGetActionStatePose") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrGetActionStatePose); - } else if (strcmp(name, "xrGetCurrentInteractionProfile") == 0) { - *function = - reinterpret_cast<PFN_xrVoidFunction>(xrGetCurrentInteractionProfile); - } else if (strcmp(name, "xrGetReferenceSpaceBoundsRect") == 0) { - *function = - reinterpret_cast<PFN_xrVoidFunction>(xrGetReferenceSpaceBoundsRect); - } else if (strcmp(name, "xrGetSystem") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrGetSystem); - } else if (strcmp(name, "xrLocateSpace") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrLocateSpace); - } else if (strcmp(name, "xrLocateViews") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrLocateViews); - } else if (strcmp(name, "xrPollEvent") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrPollEvent); - } else if (strcmp(name, "xrReleaseSwapchainImage") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrReleaseSwapchainImage); - } else if (strcmp(name, "xrSuggestInteractionProfileBindings") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>( - xrSuggestInteractionProfileBindings); - } else if (strcmp(name, "xrStringToPath") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrStringToPath); - } else if (strcmp(name, "xrPathToString") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrPathToString); - } else if (strcmp(name, "xrSyncActions") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrSyncActions); - } else if (strcmp(name, "xrWaitFrame") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrWaitFrame); - } else if (strcmp(name, "xrWaitSwapchainImage") == 0) { - *function = reinterpret_cast<PFN_xrVoidFunction>(xrWaitSwapchainImage); - } else { - return XR_ERROR_FUNCTION_UNSUPPORTED; - } - - return XR_SUCCESS; -} +XrResult XRAPI_PTR xrGetInstanceProcAddr(XrInstance instance, + const char* name, + PFN_xrVoidFunction* function); // The single exported function in fake OpenXR Runtime DLL which the OpenXR -// loader calls for negotiation. GetInstanceProcAddress is returned to the +// loader calls for negotiation. xrGetInstanceProcAddr is returned to the // loader, which is then used by the loader to call OpenXR APIs. XrResult __stdcall xrNegotiateLoaderRuntimeInterface( const XrNegotiateLoaderInfo* loaderInfo, XrNegotiateRuntimeRequest* runtimeRequest) { runtimeRequest->runtimeInterfaceVersion = 1; - runtimeRequest->runtimeApiVersion = XR_MAKE_VERSION(1, 0, 1); - runtimeRequest->getInstanceProcAddr = GetInstanceProcAddress; + runtimeRequest->runtimeApiVersion = XR_CURRENT_API_VERSION; + runtimeRequest->getInstanceProcAddr = xrGetInstanceProcAddr; return XR_SUCCESS; }
diff --git a/device/vr/openxr/test/openxr_test_helper.h b/device/vr/openxr/test/openxr_test_helper.h index 2974a4e..b1b3c6aeb 100644 --- a/device/vr/openxr/test/openxr_test_helper.h +++ b/device/vr/openxr/test/openxr_test_helper.h
@@ -17,7 +17,6 @@ #include "base/optional.h" #include "base/stl_util.h" #include "base/synchronization/lock.h" -#include "device/vr/openxr/openxr_defs.h" #include "device/vr/test/test_hook.h" #include "third_party/openxr/src/include/openxr/openxr.h" #include "third_party/openxr/src/include/openxr/openxr_platform.h" @@ -130,7 +129,7 @@ // Properties of the mock OpenXR runtime that do not change are created static constexpr const char* const kExtensions[] = { XR_KHR_D3D11_ENABLE_EXTENSION_NAME, - device::kWin32AppcontainerCompatibleExtensionName}; + XR_EXT_WIN32_APPCONTAINER_COMPATIBLE_EXTENSION_NAME}; static constexpr uint32_t kDimension = 128; static constexpr uint32_t kSwapCount = 1; static constexpr uint32_t kMinSwapchainBuffering = 3;
diff --git a/extensions/browser/BUILD.gn b/extensions/browser/BUILD.gn index cae11db..4f9cc47 100644 --- a/extensions/browser/BUILD.gn +++ b/extensions/browser/BUILD.gn
@@ -517,7 +517,6 @@ sources += [ "api/audio/audio_apitest_chromeos.cc", "api/cec_private/cec_private_apitest.cc", - "api/crash_report_private/crash_report_private_apitest.cc", "api/media_perception_private/media_perception_private_apitest.cc", "api/system_power_source/system_power_source_apitest.cc", "api/virtual_keyboard/virtual_keyboard_apitest.cc",
diff --git a/extensions/browser/api/BUILD.gn b/extensions/browser/api/BUILD.gn index 024980f..13753cc3 100644 --- a/extensions/browser/api/BUILD.gn +++ b/extensions/browser/api/BUILD.gn
@@ -130,7 +130,6 @@ public_deps += [ "//extensions/browser/api/cec_private", "//extensions/browser/api/clipboard", - "//extensions/browser/api/crash_report_private", "//extensions/browser/api/diagnostics", "//extensions/browser/api/system_power_source", "//extensions/browser/api/virtual_keyboard",
diff --git a/extensions/browser/api/crash_report_private/BUILD.gn b/extensions/browser/api/crash_report_private/BUILD.gn deleted file mode 100644 index bf2b0f8..0000000 --- a/extensions/browser/api/crash_report_private/BUILD.gn +++ /dev/null
@@ -1,21 +0,0 @@ -# Copyright 2019 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import("//extensions/buildflags/buildflags.gni") - -assert(enable_extensions, - "Cannot depend on extensions because enable_extensions=false.") - -source_set("crash_report_private") { - sources = [ - "crash_report_private_api.cc", - "crash_report_private_api.h", - ] - - deps = [ - "//components/crash/content/browser/error_reporting", - "//content/public/browser", - "//extensions/common/api", - ] -}
diff --git a/extensions/browser/api/crash_report_private/DEPS b/extensions/browser/api/crash_report_private/DEPS deleted file mode 100644 index c0cd4158..0000000 --- a/extensions/browser/api/crash_report_private/DEPS +++ /dev/null
@@ -1,4 +0,0 @@ -include_rules = [ - "+components/crash/content/browser/error_reporting", -] -
diff --git a/extensions/browser/api/declarative_net_request/flat_ruleset_indexer.cc b/extensions/browser/api/declarative_net_request/flat_ruleset_indexer.cc index 511e8c3..be2ff8aa 100644 --- a/extensions/browser/api/declarative_net_request/flat_ruleset_indexer.cc +++ b/extensions/browser/api/declarative_net_request/flat_ruleset_indexer.cc
@@ -255,7 +255,7 @@ transform_offset, request_headers_offset, response_headers_offset)); } -void FlatRulesetIndexer::Finish() { +flatbuffers::DetachedBuffer FlatRulesetIndexer::FinishAndReleaseBuffer() { DCHECK(!finished_); finished_ = true; @@ -280,11 +280,8 @@ regex_rules_offset, extension_metadata_offset); flat::FinishExtensionIndexedRulesetBuffer(builder_, root_offset); -} -base::span<const uint8_t> FlatRulesetIndexer::GetData() { - DCHECK(finished_); - return base::make_span(builder_.GetBufferPointer(), builder_.GetSize()); + return builder_.Release(); } std::vector<FlatRulesetIndexer::UrlPatternIndexBuilder*>
diff --git a/extensions/browser/api/declarative_net_request/flat_ruleset_indexer.h b/extensions/browser/api/declarative_net_request/flat_ruleset_indexer.h index d651364..2a3f443 100644 --- a/extensions/browser/api/declarative_net_request/flat_ruleset_indexer.h +++ b/extensions/browser/api/declarative_net_request/flat_ruleset_indexer.h
@@ -10,7 +10,6 @@ #include <set> #include <vector> -#include "base/containers/span.h" #include "base/macros.h" #include "components/url_pattern_index/url_pattern_index.h" #include "extensions/browser/api/declarative_net_request/flat/extension_ruleset_generated.h" @@ -35,12 +34,9 @@ // Returns the number of rules added till now. size_t indexed_rules_count() const { return indexed_rules_count_; } - // Finishes the ruleset construction. - void Finish(); - - // Returns the data buffer, which is still owned by FlatRulesetIndexer. - // Finish() must be called prior to calling this. - base::span<const uint8_t> GetData(); + // Finishes the ruleset construction and releases the underlying indexed data + // buffer. + flatbuffers::DetachedBuffer FinishAndReleaseBuffer(); private: using UrlPatternIndexBuilder = url_pattern_index::UrlPatternIndexBuilder;
diff --git a/extensions/browser/api/declarative_net_request/flat_ruleset_indexer_unittest.cc b/extensions/browser/api/declarative_net_request/flat_ruleset_indexer_unittest.cc index 2769692..aa1deec6 100644 --- a/extensions/browser/api/declarative_net_request/flat_ruleset_indexer_unittest.cc +++ b/extensions/browser/api/declarative_net_request/flat_ruleset_indexer_unittest.cc
@@ -351,18 +351,18 @@ const flat::ExtensionIndexedRuleset* AddRuleAndGetRuleset( const std::vector<IndexedRule>& rules_to_index, - FlatRulesetIndexer* indexer) { + flatbuffers::DetachedBuffer* buffer) { + FlatRulesetIndexer indexer; for (const auto& rule : rules_to_index) - indexer->AddUrlRule(rule); - indexer->Finish(); + indexer.AddUrlRule(rule); + *buffer = indexer.FinishAndReleaseBuffer(); - base::span<const uint8_t> data = indexer->GetData(); - EXPECT_EQ(rules_to_index.size(), indexer->indexed_rules_count()); - flatbuffers::Verifier verifier(data.data(), data.size()); + EXPECT_EQ(rules_to_index.size(), indexer.indexed_rules_count()); + flatbuffers::Verifier verifier(buffer->data(), buffer->size()); if (!flat::VerifyExtensionIndexedRulesetBuffer(verifier)) return nullptr; - return flat::GetExtensionIndexedRuleset(data.data()); + return flat::GetExtensionIndexedRuleset(buffer->data()); } // Helper which: @@ -374,9 +374,9 @@ void AddRulesAndVerifyIndex(const std::vector<IndexedRule>& rules_to_index, const std::vector<const IndexedRule*> expected_index_lists[flat::IndexType_count]) { - FlatRulesetIndexer indexer; + flatbuffers::DetachedBuffer buffer; const flat::ExtensionIndexedRuleset* ruleset = - AddRuleAndGetRuleset(rules_to_index, &indexer); + AddRuleAndGetRuleset(rules_to_index, &buffer); ASSERT_TRUE(ruleset); for (size_t i = 0; i < flat::IndexType_count; ++i) { @@ -573,9 +573,9 @@ dnr_api::RULE_ACTION_TYPE_MODIFYHEADERS, nullptr, base::nullopt, std::move(request_headers), {})); - FlatRulesetIndexer indexer; + flatbuffers::DetachedBuffer buffer; const flat::ExtensionIndexedRuleset* ruleset = - AddRuleAndGetRuleset(rules_to_index, &indexer); + AddRuleAndGetRuleset(rules_to_index, &buffer); ASSERT_TRUE(ruleset); // All the indices should be empty, since we only have regex rules.
diff --git a/extensions/browser/api/declarative_net_request/ruleset_source.cc b/extensions/browser/api/declarative_net_request/ruleset_source.cc index 95f3eb8..55acc91 100644 --- a/extensions/browser/api/declarative_net_request/ruleset_source.cc +++ b/extensions/browser/api/declarative_net_request/ruleset_source.cc
@@ -12,6 +12,7 @@ #include "base/callback.h" #include "base/callback_helpers.h" #include "base/check_op.h" +#include "base/containers/span.h" #include "base/feature_list.h" #include "base/files/file_util.h" #include "base/json/json_reader.h" @@ -470,9 +471,9 @@ } } } - indexer.Finish(); - - if (!PersistIndexedRuleset(indexed_path_, indexer.GetData(), + flatbuffers::DetachedBuffer buffer = indexer.FinishAndReleaseBuffer(); + if (!PersistIndexedRuleset(indexed_path_, + base::make_span(buffer.data(), buffer.size()), &ruleset_checksum)) { return ParseInfo(ParseResult::ERROR_PERSISTING_RULESET, nullptr /* rule_id */);
diff --git a/extensions/common/api/_api_features.json b/extensions/common/api/_api_features.json index e501c02..7e4a99e 100644 --- a/extensions/common/api/_api_features.json +++ b/extensions/common/api/_api_features.json
@@ -136,28 +136,6 @@ "clipboard.setImageData": { "dependencies": ["permission:clipboardWrite"] }, - "crashReportPrivate": [{ - "dependencies": ["permission:crashReportPrivate"], - "contexts": ["blessed_extension"], - "default_parent": true - }, - { - "channel": "stable", - "contexts": [ - "webui" - ], - "matches": [ - "chrome://media-app/*" - ] - }, - { - "channel": "stable", - "contexts": ["webui_untrusted"], - "matches": [ - "chrome-untrusted://help-app/*", - "chrome-untrusted://media-app/*" - ] - }], "declarativeNetRequest": { "dependencies": ["permission:declarativeNetRequest"], "contexts": ["blessed_extension"]
diff --git a/extensions/common/api/_permission_features.json b/extensions/common/api/_permission_features.json index a49fef94..77163f2 100644 --- a/extensions/common/api/_permission_features.json +++ b/extensions/common/api/_permission_features.json
@@ -199,17 +199,6 @@ "extension_types": ["platform_app"], "platforms": ["chromeos"] }, - "crashReportPrivate": { - "channel": "dev", - "extension_types": ["extension", "legacy_packaged_app", "platform_app"], - "whitelist": [ - "0EA6B717932AD64C469C1CCB6911457733295907", // Secure Shell App (stable) - "58B0C2968C335964D5433E89CA4D86628A0E3D4B", // Secure Shell App (dev) - "3BC1ED0B3E6EFDC7BD4D3D1D75D44B52DEE0A226", // Secure Shell Ext (stable) - "38C361D4A0726CE45D3572D65071B6BDB3092371", // Secure Shell Ext (dev) - "06BE211D5F014BAB34BC22D9DDA09C63A81D828E" // http://crbug.com/946241 - ] - }, "declarativeNetRequest": { "channel": "stable", "extension_types": ["extension"],
diff --git a/extensions/common/api/generated_externs_list.txt b/extensions/common/api/generated_externs_list.txt index 42bc549..e035738 100644 --- a/extensions/common/api/generated_externs_list.txt +++ b/extensions/common/api/generated_externs_list.txt
@@ -5,7 +5,6 @@ bluetooth.idl bluetooth_private.idl clipboard.idl -crash_report_private.idl management.json metrics_private.json mime_handler_private.idl
diff --git a/extensions/common/api/schema.gni b/extensions/common/api/schema.gni index 2ab6ca6b8..fa75c46e5 100644 --- a/extensions/common/api/schema.gni +++ b/extensions/common/api/schema.gni
@@ -66,7 +66,6 @@ if (is_chromeos) { extensions_api_schema_files_ += [ - "crash_report_private.idl", "diagnostics.idl", "lock_screen_data.idl", "media_perception_private.idl",
diff --git a/extensions/shell/browser/root_window_controller.cc b/extensions/shell/browser/root_window_controller.cc index 1743e2f..077c2111 100644 --- a/extensions/shell/browser/root_window_controller.cc +++ b/extensions/shell/browser/root_window_controller.cc
@@ -82,7 +82,7 @@ aura::Window::ConvertPointToTarget(window->parent(), root_window, &origin); // Translate the origin by the root window's offset in screen coordinates. - gfx::Point host_origin = GetOriginInScreen(root_window); + gfx::Point host_origin = GetRootWindowOriginInScreen(root_window); origin.Offset(-host_origin.x(), -host_origin.y()); window->SetBounds(gfx::Rect(origin, bounds.size())); }
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc index 045c719..c270d46 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
@@ -978,6 +978,7 @@ static constexpr const char* kOptionalFunctionalityExtensions[] = { "GL_ANGLE_depth_texture", "GL_ANGLE_framebuffer_multisample", + "GL_ANGLE_get_tex_level_parameter", "GL_ANGLE_instanced_arrays", "GL_ANGLE_memory_object_flags", "GL_ANGLE_pack_reverse_row_order",
diff --git a/infra/config/generated/cr-buildbucket.cfg b/infra/config/generated/cr-buildbucket.cfg index 543e9e4..217b0e6 100644 --- a/infra/config/generated/cr-buildbucket.cfg +++ b/infra/config/generated/cr-buildbucket.cfg
@@ -17514,6 +17514,10 @@ build_numbers: YES service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -17552,6 +17556,10 @@ build_numbers: YES service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -17590,6 +17598,10 @@ build_numbers: YES service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -17628,6 +17640,10 @@ build_numbers: YES service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -17666,6 +17682,10 @@ build_numbers: YES service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -17704,6 +17724,10 @@ build_numbers: YES service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -19875,6 +19899,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -19916,6 +19944,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -19957,6 +19989,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -19998,6 +20034,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -20039,6 +20079,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -20080,6 +20124,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -20121,6 +20169,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -20162,6 +20214,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -20203,6 +20259,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -20244,6 +20304,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -20285,6 +20349,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -20326,6 +20394,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -20367,6 +20439,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -20408,6 +20484,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -20449,6 +20529,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -20490,6 +20574,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -20531,6 +20619,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -20572,6 +20664,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -20613,6 +20709,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -20654,6 +20754,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -20695,6 +20799,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -20736,6 +20844,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -20777,6 +20889,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -20818,6 +20934,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -20859,6 +20979,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -20900,6 +21024,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -20941,6 +21069,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -20982,6 +21114,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -21022,6 +21158,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -21062,6 +21202,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -21102,6 +21246,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -21142,6 +21290,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -21182,6 +21334,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -21222,6 +21378,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -21263,6 +21423,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -21304,6 +21468,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -21345,6 +21513,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -21386,6 +21558,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -21427,6 +21603,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -21468,6 +21648,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -21509,6 +21693,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -21550,6 +21738,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -21591,6 +21783,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -21632,6 +21828,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -21673,6 +21873,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -21713,6 +21917,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -21754,6 +21962,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -21795,6 +22007,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -21836,6 +22052,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -21877,6 +22097,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -21918,6 +22142,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -21959,6 +22187,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22000,6 +22232,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22041,6 +22277,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22082,6 +22322,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22123,6 +22367,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22164,6 +22412,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22205,6 +22457,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22244,6 +22500,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22283,6 +22543,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22322,6 +22586,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22361,6 +22629,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22400,6 +22672,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22439,6 +22715,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22479,6 +22759,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22520,6 +22804,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22561,6 +22849,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22602,6 +22894,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22643,6 +22939,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22684,6 +22984,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22725,6 +23029,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22766,6 +23074,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22807,6 +23119,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22848,6 +23164,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22889,6 +23209,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22929,6 +23253,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -22969,6 +23297,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23009,6 +23341,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23049,6 +23385,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23089,6 +23429,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23129,6 +23473,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23169,6 +23517,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23209,6 +23561,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23249,6 +23605,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23289,6 +23649,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23329,6 +23693,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23369,6 +23737,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23409,6 +23781,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23449,6 +23825,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23489,6 +23869,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23529,6 +23913,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23569,6 +23957,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23609,6 +24001,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23649,6 +24045,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23689,6 +24089,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23729,6 +24133,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23769,6 +24177,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23809,6 +24221,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23849,6 +24265,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23889,6 +24309,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23929,6 +24353,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -23969,6 +24397,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24008,6 +24440,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24047,6 +24483,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24086,6 +24526,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24125,6 +24569,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24164,6 +24612,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24203,6 +24655,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24242,6 +24698,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24281,6 +24741,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24320,6 +24784,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24359,6 +24827,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24398,6 +24870,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24437,6 +24913,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24476,6 +24956,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24515,6 +24999,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24555,6 +25043,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24595,6 +25087,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24635,6 +25131,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24675,6 +25175,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24715,6 +25219,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24755,6 +25263,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24795,6 +25307,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24835,6 +25351,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24875,6 +25395,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24915,6 +25439,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24955,6 +25483,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -24995,6 +25527,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -25035,6 +25571,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -25075,6 +25615,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -25115,6 +25659,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -25155,6 +25703,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -25195,6 +25747,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -25235,6 +25791,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -25275,6 +25835,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -25315,6 +25879,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -25354,6 +25922,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -25393,6 +25965,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -25433,6 +26009,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -25476,6 +26056,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -25519,6 +26103,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -25562,6 +26150,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -25605,6 +26197,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -25648,6 +26244,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -25691,6 +26291,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -25734,6 +26338,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -25777,6 +26385,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -25820,6 +26432,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -25863,6 +26479,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -25906,6 +26526,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -25949,6 +26573,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -25990,6 +26618,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -26031,6 +26663,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -26071,6 +26707,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -26112,6 +26752,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -26153,6 +26797,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -26194,6 +26842,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -26235,6 +26887,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -26276,6 +26932,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -26317,6 +26977,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -26358,6 +27022,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -26399,6 +27067,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -26440,6 +27112,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -26481,6 +27157,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -26522,6 +27202,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -26563,6 +27247,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -26604,6 +27292,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -26643,6 +27335,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -26684,6 +27380,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -26725,6 +27425,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -26766,6 +27470,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -26807,6 +27515,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -26848,6 +27560,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -26889,6 +27605,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -26930,6 +27650,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -26971,6 +27695,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27012,6 +27740,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27053,6 +27785,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27094,6 +27830,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27135,6 +27875,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27175,6 +27919,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27216,6 +27964,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27257,6 +28009,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27298,6 +28054,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27339,6 +28099,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27380,6 +28144,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27421,6 +28189,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27462,6 +28234,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27503,6 +28279,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27544,6 +28324,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27585,6 +28369,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27626,6 +28414,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27667,6 +28459,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27708,6 +28504,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27749,6 +28549,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27789,6 +28593,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27829,6 +28637,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27870,6 +28682,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27911,6 +28727,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27952,6 +28772,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -27993,6 +28817,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -28034,6 +28862,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -28075,6 +28907,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -28116,6 +28952,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -28157,6 +28997,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -28198,6 +29042,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -28243,6 +29091,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -28284,6 +29136,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -28329,6 +29185,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -28370,6 +29230,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -28411,6 +29275,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -28452,6 +29320,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -28493,6 +29365,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -28534,6 +29410,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -28575,6 +29455,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -28616,6 +29500,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -28656,6 +29544,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -28697,6 +29589,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -28738,6 +29634,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -28777,6 +29677,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -28817,6 +29721,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -28856,6 +29764,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -28895,6 +29807,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -28935,6 +29851,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -28975,6 +29895,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29014,6 +29938,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29054,6 +29982,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29094,6 +30026,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29134,6 +30070,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29174,6 +30114,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29214,6 +30158,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29254,6 +30202,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29294,6 +30246,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29334,6 +30290,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29374,6 +30334,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29414,6 +30378,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29454,6 +30422,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29494,6 +30466,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29534,6 +30510,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29574,6 +30554,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29614,6 +30598,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29654,6 +30642,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29693,6 +30685,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29733,6 +30729,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29774,6 +30774,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29815,6 +30819,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29856,6 +30864,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29896,6 +30908,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29936,6 +30952,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -29976,6 +30996,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30016,6 +31040,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30057,6 +31085,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30098,6 +31130,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30139,6 +31175,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30178,6 +31218,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30218,6 +31262,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30259,6 +31307,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30300,6 +31352,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30341,6 +31397,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30382,6 +31442,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30423,6 +31487,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30464,6 +31532,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30505,6 +31577,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30546,6 +31622,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30587,6 +31667,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30627,6 +31711,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30668,6 +31756,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30709,6 +31801,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30749,6 +31845,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30790,6 +31890,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30831,6 +31935,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30872,6 +31980,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30913,6 +32025,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30954,6 +32070,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -30995,6 +32115,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -31036,6 +32160,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -31077,6 +32205,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -31118,6 +32250,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -31159,6 +32295,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -31199,6 +32339,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 } @@ -31240,6 +32384,10 @@ value: 5 } experiments { + key: "chromium.resultdb.result_sink" + value: 10 + } + experiments { key: "luci.use_realms" value: 100 }
diff --git a/infra/config/lib/try.star b/infra/config/lib/try.star index fd0dfb8..63107a7 100644 --- a/infra/config/lib/try.star +++ b/infra/config/lib/try.star
@@ -120,6 +120,7 @@ main_list_view = args.DEFAULT, subproject_list_view = args.DEFAULT, tryjob = None, + experiments = None, **kwargs): """Define a try builder. @@ -148,10 +149,16 @@ no effect on adding an entry to the subproject list view. tryjob - A struct containing the details of the tryjob verifier for the builder, obtained by calling the `tryjob` function. + experiments - a dict of experiment name to the percentage chance (0-100) + that it will apply to builds generated from this builder. """ if not branches.matches(branch_selector): return + # Enable "chromium.resultdb.result_sink" on all try builders for 10% by default. + experiments = experiments or {} + experiments.setdefault("chromium.resultdb.result_sink", 10) + # Define the builder first so that any validation of luci.builder arguments # (e.g. bucket) occurs before we try to use it builders.builder( @@ -160,6 +167,7 @@ resultdb_bigquery_exports = [resultdb.export_test_results( bq_table = "luci-resultdb.chromium.try_test_results", )], + experiments = experiments, **kwargs )
diff --git a/ios/chrome/app/BUILD.gn b/ios/chrome/app/BUILD.gn index 117e27d..8897130 100644 --- a/ios/chrome/app/BUILD.gn +++ b/ios/chrome/app/BUILD.gn
@@ -219,7 +219,7 @@ "//ios/chrome/browser/history", "//ios/chrome/browser/main", "//ios/chrome/browser/memory", - "//ios/chrome/browser/metrics:metrics", + "//ios/chrome/browser/metrics", "//ios/chrome/browser/metrics:metrics_internal", "//ios/chrome/browser/net", "//ios/chrome/browser/ntp:features",
diff --git a/ios/chrome/app/main_controller.mm b/ios/chrome/app/main_controller.mm index 0bef044..fbef849 100644 --- a/ios/chrome/app/main_controller.mm +++ b/ios/chrome/app/main_controller.mm
@@ -69,6 +69,7 @@ #import "ios/chrome/browser/main/browser_list_factory.h" #import "ios/chrome/browser/memory/memory_debugger_manager.h" #include "ios/chrome/browser/metrics/first_user_action_recorder.h" +#import "ios/chrome/browser/metrics/incognito_usage_app_state_agent.h" #import "ios/chrome/browser/metrics/window_configuration_recorder.h" #import "ios/chrome/browser/net/cookie_util.h" #import "ios/chrome/browser/omaha/omaha_service.h" @@ -617,6 +618,7 @@ // Create app state agents. [appState addAgent:[[ContentSuggestionsSchedulerAppAgent alloc] init]]; + [appState addAgent:[[IncognitoUsageAppStateAgent alloc] init]]; } - (id<BrowserInterfaceProvider>)interfaceProvider {
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_iw.xtb index c206d67d88..1f9192af 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_iw.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_iw.xtb
@@ -5,7 +5,7 @@ <translation id="1185134272377778587">על Chromium</translation> <translation id="1257458525759135959">כדי לשמור תמונות צריך להקיש על 'הגדרות' על מנת לאפשר ל-Chromium להוסיף תמונות לגלריה שלך</translation> <translation id="1361748954329991663">Chromium אינו מעודכן. אם אין עדכון זמין ב-<ph name="BEGIN_LINK" />App Store<ph name="END_LINK" />, ייתכן שהמכשיר שלך אינו תומך עוד בגרסאות החדשות של Chromium.</translation> -<translation id="1472013873724362412">החשבון שלך לא פועל ב-Chromium. פנה אל מנהל הדומיין או השתמש בחשבון Google רגיל כדי להיכנס לחשבון.</translation> +<translation id="1472013873724362412">החשבון שלך לא פועל ב-Chromium. יש לפנות אל מנהל הדומיין או להשתמש בחשבון Google רגיל כדי להיכנס לחשבון.</translation> <translation id="1507010443238049608">עזרה בשיפור התכונות והביצועים של Chromium</translation> <translation id="1617663976202781617">נתונים מסנכרון Chromium</translation> <translation id="1736662517232558588">נתוני Chromium נמחקו</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_pl.xtb index b7b1d0c..fc15443 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_pl.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_pl.xtb
@@ -69,7 +69,7 @@ <translation id="8240981428553046115">Chromium nie udało się sprawdzić dostępności aktualizacji. Spróbuj ponownie później.</translation> <translation id="8252885722420466166">Włączenie udostępniania lokalizacji w Chromium pozwala w pełni korzystać z usług Google.</translation> <translation id="8586442755830160949">Copyright <ph name="YEAR" /> Autorzy Chromium. Wszelkie prawa zastrzeżone.</translation> -<translation id="8663480472502753423">Zawsze aktualizuj Chromium</translation> +<translation id="8663480472502753423">Zawsze używaj aktualnej wersji Chromium</translation> <translation id="8776843108004031667">To konto razem z wszelkimi niezapisanymi danymi zostanie usunięte z Chromium.</translation> <translation id="9022552996538154597">Zaloguj się w Chromium</translation> <translation id="9089354809943900324">Chromium jest nieaktualny</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_iw.xtb index 9c5c3a6..81053fe2 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_iw.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_iw.xtb
@@ -61,11 +61,11 @@ <translation id="7172660552945675509">טיפ: <ph name="BEGIN_LINK" />כדאי להעביר את Chrome לשורת המשימות<ph name="END_LINK" /></translation> <translation id="7173660919484573146">Chrome משתמש ב-Face ID כדי להבטיח גישה מאושרת לסיסמאות שלך.</translation> <translation id="7261678641327190792">Chrome לא יכול לבדוק את הסיסמאות שלך</translation> -<translation id="7265369419224458312">גש מכאן ישירות לכרטיסיות שפתחת במחשב. פתח את Chrome במחשב, עבור אל התפריט ובחר באפשרות 'היכנס אל Chrome...'</translation> +<translation id="7265369419224458312">גישה מכאן ישירות לכרטיסיות שפתחת במחשב. יש לפתוח את Chrome במחשב, לעבור אל התפריט ולבחור באפשרות 'כניסה אל Chrome...'</translation> <translation id="7272930098487145294">כדי לשמור תמונות צריך להקיש על 'הגדרות' על מנת לאפשר ל-Chrome להוסיף תמונות לגלריה שלך</translation> <translation id="7400722733683201933">אודות Google Chrome</translation> <translation id="756809126120519699">נתוני Chrome נוקו</translation> -<translation id="7626032353295482388">ברוכים הבאים ל-Chrome</translation> +<translation id="7626032353295482388">ברוך בואך אל Chrome</translation> <translation id="7662994914830945754">כדי לראות את הכרטיסיות שלך מכל מקום שבו פתחת את Chrome יש להיכנס לחשבון ולהפעיל את הסנכרון</translation> <translation id="766361182512894255">הסיסמה שלך נחשפה בעקבות פרצה באבטחת מידע. ההמלצה של Chrome היא לשנות את הסיסמה עכשיו.</translation> <translation id="7698568245838009292">ל-Chrome דרושה גישה למצלמה</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_pl.xtb index 0d06651..31a3c11 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_pl.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_pl.xtb
@@ -55,7 +55,7 @@ <translation id="6648150602980899529">Logujesz się na konto, którym zarządza <ph name="DOMAIN" />, i przekazujesz jego administratorowi kontrolę nad Twoimi danymi Chrome. Zostaną one trwale przypisane do tego konta. Gdy się wylogujesz, znikną one z tego urządzenia, ale pozostaną zapisane na Twoim koncie Google.</translation> <translation id="6676840375528380067">Usunąć dane Chrome z tego urządzenia?</translation> <translation id="6822673484890854830">Przeglądarce Chrome nie udało się sprawdzić wszystkich haseł. Spróbuj ponownie później.</translation> -<translation id="7124339256045485976">Zawsze aktualizuj Chrome</translation> +<translation id="7124339256045485976">Zawsze używaj aktualnej wersji Chrome</translation> <translation id="7161390184744336561">Masz nieaktualną wersję Google Chrome</translation> <translation id="7165736900384873061">Skaner QR w Google Chrome</translation> <translation id="7172660552945675509">Wskazówka: <ph name="BEGIN_LINK" />przenieś Chrome do Docka<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_af.xtb b/ios/chrome/app/strings/resources/ios_strings_af.xtb index 01936e3..c636850 100644 --- a/ios/chrome/app/strings/resources/ios_strings_af.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_af.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Versteek wagwoord</translation> <translation id="145015347812617860"><ph name="COUNT" /> items</translation> <translation id="1491277525950327607">Dubbeltik om instelling te wissel</translation> +<translation id="1492417797159476138">Jy het hierdie gebruikernaam reeds vir hierdie werf gestoor</translation> <translation id="1509486075633541495">Meld by webwerf aan</translation> <translation id="1509960214886564027">Kenmerke op baie werwe kan breek</translation> <translation id="152234381334907219">Nooit gestoor nie</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_am.xtb b/ios/chrome/app/strings/resources/ios_strings_am.xtb index 40e4a7b..145e5d45 100644 --- a/ios/chrome/app/strings/resources/ios_strings_am.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_am.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">የይለፍ ቃል ደብቅ</translation> <translation id="145015347812617860"><ph name="COUNT" /> ንጥሎች</translation> <translation id="1491277525950327607">ቅንብርን ለመቀያየር ሁለቴ መታ ያድርጉ</translation> +<translation id="1492417797159476138">ይህንን የተጠቃሚ ስም ለዚህ ጣቢያ ቀድሞውኑ አስቀምጠዋል</translation> <translation id="1509486075633541495">ወደ የድር ጣቢያ በመለያ ይግቡ</translation> <translation id="1509960214886564027">በበርካታ ጣቢያዎች ላይ ያሉ ባሕሪያት ሊሰበሩ ይችላሉ</translation> <translation id="152234381334907219">በጭራሽ አልተቀመጠም</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_strings_ar.xtb index 0593f5b4..61103dfd 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ar.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">إخفاء كلمة المرور</translation> <translation id="145015347812617860"><ph name="COUNT" /> من العناصر</translation> <translation id="1491277525950327607">انقر مرّتين لتبديل الإعداد</translation> +<translation id="1492417797159476138">سبق لك حفظ اسم المستخدم لهذا الموقع الإلكتروني.</translation> <translation id="1509486075633541495">تسجيل الدخول إلى الموقع الإلكتروني</translation> <translation id="1509960214886564027">قد تتوقف الميزات عن العمل في العديد من المواقع الإلكترونية.</translation> <translation id="152234381334907219">المواقع التي لن تحفظ كلمات المرور أبدًا</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_as.xtb b/ios/chrome/app/strings/resources/ios_strings_as.xtb index 5112f5ed..f00e22a3 100644 --- a/ios/chrome/app/strings/resources/ios_strings_as.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_as.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">পাছৱৰ্ড লুকুৱাওক</translation> <translation id="145015347812617860"><ph name="COUNT" />টা বস্তু</translation> <translation id="1491277525950327607">ছেটিং ট’গ’ল কৰিবলৈ দুবাৰ টিপক।</translation> +<translation id="1492417797159476138">এই ছাইটটোৰ বাবে আপুনি ইতিমধ্যে এই ব্যৱহাৰকাৰীৰ নামটো ছেভ কৰিছে</translation> <translation id="1509486075633541495">ৱেবছাইটত ছাইন ইন কৰক</translation> <translation id="1509960214886564027">বহুতো ছাইটৰ সুবিধাসমূহ ব্যাহত হ’ব পাৰে</translation> <translation id="152234381334907219">কেতিয়াও ছেভ কৰা নহয়</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_az.xtb b/ios/chrome/app/strings/resources/ios_strings_az.xtb index de66399d..08e85ab6 100644 --- a/ios/chrome/app/strings/resources/ios_strings_az.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_az.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Parolu Gizlədin</translation> <translation id="145015347812617860"><ph name="COUNT" /> element</translation> <translation id="1491277525950327607">Ayarı dəyişmək üçün iki dəfə klikləyin</translation> +<translation id="1492417797159476138">Hazırda bu istifadəçi adını bu sayt üçün yadda saxlamısınız</translation> <translation id="1509486075633541495">Veb sayta daxil olun</translation> <translation id="1509960214886564027">Bir çox saytdakı xüsusiyyətlər işləməyə bilər</translation> <translation id="152234381334907219">Heç vaxt Saxlanılmır</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_be.xtb b/ios/chrome/app/strings/resources/ios_strings_be.xtb index 237a9ff..16d7882 100644 --- a/ios/chrome/app/strings/resources/ios_strings_be.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_be.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Схаваць пароль</translation> <translation id="145015347812617860">Элементаў: <ph name="COUNT" /></translation> <translation id="1491277525950327607">Каб уключыць або выключыць наладу, двойчы дакраніцеся</translation> +<translation id="1492417797159476138">Вы ўжо захавалі гэта імя карыстальніка для гэтага сайта</translation> <translation id="1509486075633541495">Уваход на вэб-сайт</translation> <translation id="1509960214886564027">Функцыі на многіх сайтах могуць перастаць працаваць</translation> <translation id="152234381334907219">Ніколі не захоўваліся</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bg.xtb b/ios/chrome/app/strings/resources/ios_strings_bg.xtb index 5574d7ae..7b869a4 100644 --- a/ios/chrome/app/strings/resources/ios_strings_bg.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Скриване на паролата</translation> <translation id="145015347812617860"><ph name="COUNT" /> елемента</translation> <translation id="1491277525950327607">Докоснете двукратно за превключване на настройката</translation> +<translation id="1492417797159476138">Вече запазихте това потребителско име за този сайт</translation> <translation id="1509486075633541495">Вход в уебсайта</translation> <translation id="1509960214886564027">Функциите в много сайтове може да не работят правилно</translation> <translation id="152234381334907219">Незапазвани никога</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bn.xtb b/ios/chrome/app/strings/resources/ios_strings_bn.xtb index 82a17379..5d19a65 100644 --- a/ios/chrome/app/strings/resources/ios_strings_bn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">পাসওয়ার্ড লুকান</translation> <translation id="145015347812617860"><ph name="COUNT" />টি আইটেম</translation> <translation id="1491277525950327607">সেটিং টগল করতে দুবার আলতো চাপুন</translation> +<translation id="1492417797159476138">আপনি আগেই এই সাইটের জন্য ইউজারনেমটি সেভ করেছেন</translation> <translation id="1509486075633541495">ওয়েবসাইটে সাইন-ইন করুন</translation> <translation id="1509960214886564027">একাধিক সাইটের ফিচারগুলি কাজ নাও করতে পারে</translation> <translation id="152234381334907219">কখনও সংরক্ষিত হয়নি</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bs.xtb b/ios/chrome/app/strings/resources/ios_strings_bs.xtb index 9680c1b..820b445 100644 --- a/ios/chrome/app/strings/resources/ios_strings_bs.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Sakrijte lozinku</translation> <translation id="145015347812617860">Broj stavki: <ph name="COUNT" /></translation> <translation id="1491277525950327607">Dodirnite dvaput da prebacite postavku</translation> +<translation id="1492417797159476138">Već ste sačuvali ovo korisničko ime za ovu web lokaciju</translation> <translation id="1509486075633541495">Prijava na web lokaciju</translation> <translation id="1509960214886564027">Moguće je da će funkcije na mnogim web lokacijama prestati s radom</translation> <translation id="152234381334907219">Nikada nije sačuvano</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_strings_ca.xtb index 0055f6c..a14359036 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ca.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Amaga la contrasenya</translation> <translation id="145015347812617860"><ph name="COUNT" /> elements</translation> <translation id="1491277525950327607">Fes doble toc per canviar la configuració</translation> +<translation id="1492417797159476138">Ja has desat aquest nom d'usuari per a aquest lloc web</translation> <translation id="1509486075633541495">Inicia la sessió al lloc web</translation> <translation id="1509960214886564027">Pot ser que les funcions de molts llocs web no funcionin</translation> <translation id="152234381334907219">No es desen mai</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cs.xtb b/ios/chrome/app/strings/resources/ios_strings_cs.xtb index f3b7eca..441b3a9 100644 --- a/ios/chrome/app/strings/resources/ios_strings_cs.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Skrýt heslo</translation> <translation id="145015347812617860">Počet položek: <ph name="COUNT" /></translation> <translation id="1491277525950327607">Nastavení můžete přepnout dvojitým klepnutím</translation> +<translation id="1492417797159476138">Toto uživatelské jméno jste pro tento web už uložili</translation> <translation id="1509486075633541495">Přihlásit se k webu</translation> <translation id="1509960214886564027">Mnoho webů může přestat fungovat</translation> <translation id="152234381334907219">Neuloženo</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_da.xtb b/ios/chrome/app/strings/resources/ios_strings_da.xtb index 0b6324ea..baf3a7c3 100644 --- a/ios/chrome/app/strings/resources/ios_strings_da.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_da.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Skjul adgangskode</translation> <translation id="145015347812617860"><ph name="COUNT" /> elementer</translation> <translation id="1491277525950327607">Tryk to gange for at skifte indstilling</translation> +<translation id="1492417797159476138">Du har allerede gemt dette brugernavn for dette website</translation> <translation id="1509486075633541495">Log ind på website</translation> <translation id="1509960214886564027">Funktioner på mange websites virker muligvis ikke</translation> <translation id="152234381334907219">Gemmes aldrig</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_de.xtb b/ios/chrome/app/strings/resources/ios_strings_de.xtb index 2ec3117f..8389d72e 100644 --- a/ios/chrome/app/strings/resources/ios_strings_de.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_de.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Passwort ausblenden</translation> <translation id="145015347812617860"><ph name="COUNT" /> Elemente</translation> <translation id="1491277525950327607">Zum Aktivieren bzw. Deaktivieren doppeltippen</translation> +<translation id="1492417797159476138">Sie haben diesen Nutzernamen für diese Website bereits gespeichert</translation> <translation id="1509486075633541495">Auf der Website anmelden</translation> <translation id="1509960214886564027">Funktionen auf vielen Websites funktionieren möglicherweise nicht mehr</translation> <translation id="152234381334907219">Nie speichern für...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_el.xtb b/ios/chrome/app/strings/resources/ios_strings_el.xtb index 6913811..49a3d55 100644 --- a/ios/chrome/app/strings/resources/ios_strings_el.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_el.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Απόκρυψη κωδικού πρόσβασης</translation> <translation id="145015347812617860"><ph name="COUNT" /> στοιχεία</translation> <translation id="1491277525950327607">Πατήστε δύο φορές για εναλλαγή της ρύθμισης</translation> +<translation id="1492417797159476138">Έχετε αποθηκεύσει ήδη αυτό το όνομα χρήστη για αυτόν τον ιστότοπο.</translation> <translation id="1509486075633541495">Σύνδεση στον ιστότοπο</translation> <translation id="1509960214886564027">Μπορεί να παρουσιαστούν προβλήματα στις λειτουργίες πολλών ιστοτόπων.</translation> <translation id="152234381334907219">Δεν έγινε ποτέ αποθήκευση</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb index 056583b6..69b7210 100644 --- a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Hide password</translation> <translation id="145015347812617860"><ph name="COUNT" /> items</translation> <translation id="1491277525950327607">Double tap to toggle setting</translation> +<translation id="1492417797159476138">You already saved this username for this site</translation> <translation id="1509486075633541495">Sign in to website</translation> <translation id="1509960214886564027">Features on many sites may break</translation> <translation id="152234381334907219">Never Saved</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb index 0770a67..5746ff9 100644 --- a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Ocultar contraseña</translation> <translation id="145015347812617860"><ph name="COUNT" /> elementos</translation> <translation id="1491277525950327607">Presiona dos veces para activar o desactivar la configuración</translation> +<translation id="1492417797159476138">Ya guardaste este nombre de usuario en este sitio</translation> <translation id="1509486075633541495">Acceder al sitio web</translation> <translation id="1509960214886564027">Es posible que las características de muchos sitios no funcionen de forma correcta</translation> <translation id="152234381334907219">Nunca guardado</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es.xtb b/ios/chrome/app/strings/resources/ios_strings_es.xtb index 15a434f..cc289c8 100644 --- a/ios/chrome/app/strings/resources/ios_strings_es.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_es.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Ocultar contraseña</translation> <translation id="145015347812617860"><ph name="COUNT" /> elementos</translation> <translation id="1491277525950327607">Toca dos veces para activar o desactivar esta opción</translation> +<translation id="1492417797159476138">Ya has guardado ese nombre de usuario en este sitio web</translation> <translation id="1509486075633541495">Inicia sesión en el sitio web</translation> <translation id="1509960214886564027">Es posible que las funciones de muchos sitios web no funcionen correctamente.</translation> <translation id="152234381334907219">Contraseñas que nunca se guardan</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_et.xtb b/ios/chrome/app/strings/resources/ios_strings_et.xtb index 5f88dcee..955b505 100644 --- a/ios/chrome/app/strings/resources/ios_strings_et.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_et.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Peida parool</translation> <translation id="145015347812617860"><ph name="COUNT" /> üksust</translation> <translation id="1491277525950327607">Seade vahetamiseks topeltpuudutage</translation> +<translation id="1492417797159476138">Olete selle kasutajanime selle saidi jaoks juba salvestanud</translation> <translation id="1509486075633541495">Logi veebisaidile sisse</translation> <translation id="1509960214886564027">Paljude saitide funktsioonid ei pruugi töötada</translation> <translation id="152234381334907219">Ei ole kunagi salvestatud</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_eu.xtb b/ios/chrome/app/strings/resources/ios_strings_eu.xtb index 8c9a8c2..579b0a4 100644 --- a/ios/chrome/app/strings/resources/ios_strings_eu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_eu.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Ezkutatu pasahitza</translation> <translation id="145015347812617860"><ph name="COUNT" /> elementu</translation> <translation id="1491277525950327607">Sakatu birritan ezarpena aldatzeko</translation> +<translation id="1492417797159476138">Dagoeneko gorde duzu erabiltzaile-izen hau webgune honetarako</translation> <translation id="1509486075633541495">Hasi saioa webgunean</translation> <translation id="1509960214886564027">Baliteke webgune askotako eginbideek ez funtzionatzea</translation> <translation id="152234381334907219">Ez dira inoiz gordeko</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_strings_fa.xtb index dcabdc4f..b0b9f1a 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fa.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">پنهان کردن گذرواژه</translation> <translation id="145015347812617860"><ph name="COUNT" /> مورد</translation> <translation id="1491277525950327607">برای جابهجایی بین تنظیمات، دو ضربه سریع بزنید</translation> +<translation id="1492417797159476138">قبلاً این نام کاربری را برای این سایت ذخیره کردهاید</translation> <translation id="1509486075633541495">ورود به سیستم وبسایت</translation> <translation id="1509960214886564027">ویژگیهای بسیاری از سایتها ممکن است درست کار نکنند</translation> <translation id="152234381334907219">هرگز ذخیره نمیشود</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fi.xtb b/ios/chrome/app/strings/resources/ios_strings_fi.xtb index 9be0b41..c62078cd 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fi.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Piilota salasana</translation> <translation id="145015347812617860"><ph name="COUNT" /> kohdetta</translation> <translation id="1491277525950327607">Muuta asetusta kaksoisnapauttamalla.</translation> +<translation id="1492417797159476138">Tallensit jo tämän käyttäjänimen sivustolle</translation> <translation id="1509486075633541495">Kirjaudu sisään verkkosivustolle</translation> <translation id="1509960214886564027">Useiden sivustojen ominaisuudet saattavat lakata toimimasta</translation> <translation id="152234381334907219">Tallentamattomat</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fil.xtb b/ios/chrome/app/strings/resources/ios_strings_fil.xtb index 969ed0f6..d4b1d0d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fil.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Itago ang Password</translation> <translation id="145015347812617860"><ph name="COUNT" /> (na) item</translation> <translation id="1491277525950327607">I-double tap upang i-toggle ang setting</translation> +<translation id="1492417797159476138">Na-save mo na ang username na ito para sa site na ito</translation> <translation id="1509486075633541495">Mag-sign in sa website</translation> <translation id="1509960214886564027">Posibleng masira ang mga feature sa maraming site</translation> <translation id="152234381334907219">Hindi Kailanman Na-save</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb index 3a299b3..96d9810 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Masquer le mot de passe</translation> <translation id="145015347812617860"><ph name="COUNT" /> éléments</translation> <translation id="1491277525950327607">Touchez deux fois pour activer ou désactiver le paramètre</translation> +<translation id="1492417797159476138">Vous avez déjà enregistré ce nom d'utilisateur pour ce site</translation> <translation id="1509486075633541495">Connexion au site Web</translation> <translation id="1509960214886564027">Des fonctionnalités sur de nombreux sites risquent de ne pas fonctionner</translation> <translation id="152234381334907219">Jamais enregistrés</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_strings_fr.xtb index 1f3ad63..293b47c2 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Masquer le mot de passe</translation> <translation id="145015347812617860"><ph name="COUNT" /> éléments</translation> <translation id="1491277525950327607">Appuyer deux fois pour activer/désactiver le paramètre</translation> +<translation id="1492417797159476138">Vous avez déjà enregistré ce nom d'utilisateur pour ce site</translation> <translation id="1509486075633541495">Connectez-vous au site Web</translation> <translation id="1509960214886564027">Des fonctionnalités sur de nombreux sites risquent de ne pas fonctionner</translation> <translation id="152234381334907219">Jamais enregistrés</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gl.xtb b/ios/chrome/app/strings/resources/ios_strings_gl.xtb index 9964abb..a3f1a0e 100644 --- a/ios/chrome/app/strings/resources/ios_strings_gl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Ocultar contrasinal</translation> <translation id="145015347812617860"><ph name="COUNT" /> elementos</translation> <translation id="1491277525950327607">Toca dúas veces para activar ou desactivar a configuración</translation> +<translation id="1492417797159476138">Xa gardaches este nome de usuario para este sitio</translation> <translation id="1509486075633541495">Iniciar sesión no sitio web</translation> <translation id="1509960214886564027">As funcións de moitos sitios poden deixar de funcionar</translation> <translation id="152234381334907219">Contrasinais que non se gardan nunca</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_strings_gu.xtb index 10986bd..4ab24ec 100644 --- a/ios/chrome/app/strings/resources/ios_strings_gu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">પાસવર્ડ છુપાવો</translation> <translation id="145015347812617860"><ph name="COUNT" /> આઇટમ્સ</translation> <translation id="1491277525950327607">સેટિંગ ટૉગલ કરવા માટે બે વાર ટૅપ કરો</translation> +<translation id="1492417797159476138">તમે આ સાઇટ માટે પહેલેથી જ વપરાશકર્તા નામ સાચવ્યું છે</translation> <translation id="1509486075633541495">વેબસાઇટમાં સાઇન ઇન કરો</translation> <translation id="1509960214886564027">ઘણી સાઇટ પરની સુવિધાઓને કદાચ બંધ કરવામાં આવી શકે</translation> <translation id="152234381334907219">ક્યારેય ન સચવાયેલું</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_strings_hi.xtb index 6986b81..f328937d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hi.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">पासवर्ड छिपाएं</translation> <translation id="145015347812617860"><ph name="COUNT" /> आइटम</translation> <translation id="1491277525950327607">सेटिंग को टॉगल करने के लिए दो बार टैप करें</translation> +<translation id="1492417797159476138">आपने इस साइट के लिए, यह उपयोगकर्ता नाम पहले ही सेव कर दिया है</translation> <translation id="1509486075633541495">वेबसाइट में साइन इन करें</translation> <translation id="1509960214886564027">शायद कई साइटों पर सुविधाएं ठीक से काम न करें</translation> <translation id="152234381334907219">कभी नहीं सेव किया गया</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_strings_hr.xtb index afd44ed..478a19e0 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Sakrijte zaporku</translation> <translation id="145015347812617860">Broj stavki: <ph name="COUNT" /></translation> <translation id="1491277525950327607">Dodirnite dvaput da biste promijenili postavku</translation> +<translation id="1492417797159476138">Već ste spremili ovo korisničko ime za ovu web-lokaciju</translation> <translation id="1509486075633541495">Prijavite se na web-lokaciju</translation> <translation id="1509960214886564027">Značajke na mnogim web-lokacijama mogu prestati funkcionirati</translation> <translation id="152234381334907219">Nikad spremljeno</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_strings_hu.xtb index f62d6539..7b9142740 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Jelszó elrejtése</translation> <translation id="145015347812617860"><ph name="COUNT" /> elem</translation> <translation id="1491277525950327607">A beállítás módosításához koppintson duplán</translation> +<translation id="1492417797159476138">Már elmentette ezt a felhasználónevet ehhez a webhelyhez</translation> <translation id="1509486075633541495">Bejelentkezés a webhelyre</translation> <translation id="1509960214886564027">Számos webhelyen nem működnek a funkciók</translation> <translation id="152234381334907219">Soha nem került mentésre</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hy.xtb b/ios/chrome/app/strings/resources/ios_strings_hy.xtb index 03e70923..f1cc9a13 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hy.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hy.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Թաքցնել գաղտնաբառը</translation> <translation id="145015347812617860"><ph name="COUNT" /> տարր</translation> <translation id="1491277525950327607">Կրկնակի հպեք՝ կարգավորումը միացնելու/անջատելու համար</translation> +<translation id="1492417797159476138">Օգտանունն արդեն պահված է այս կայքի համար</translation> <translation id="1509486075633541495">Մտեք հաշիվ</translation> <translation id="1509960214886564027">Շատ կայքերում գործառույթները կարող են չաշխատել։</translation> <translation id="152234381334907219">Կայքեր, որոնց համար գաղտնաբառերը երբեք չեն պահվում</translation> @@ -729,7 +730,7 @@ <translation id="9087108903408689779">Chrome-ի առաջարկած գաղտնաբառը՝</translation> <translation id="9094033019050270033">Թարմացնել գաղտնաբառը</translation> <translation id="9100610230175265781">Անհրաժեշտ է անցաբառ</translation> -<translation id="9107664647686727385">Կոտրված գաղտնաբառերի որոնում</translation> +<translation id="9107664647686727385">Ստուգեք կոտրված գաղտնաբառերի առկայությունը</translation> <translation id="9137526406337347448">Google-ի ծառայություններ</translation> <translation id="9148126808321036104">Նորից մուտք գործել</translation> <translation id="9152539721251340337">Ստեղծել QR կոդ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_id.xtb b/ios/chrome/app/strings/resources/ios_strings_id.xtb index 5a34384d..2ef6aaf 100644 --- a/ios/chrome/app/strings/resources/ios_strings_id.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_id.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Sembunyikan Sandi</translation> <translation id="145015347812617860"><ph name="COUNT" /> item</translation> <translation id="1491277525950327607">Ketuk dua kali untuk beralih setelan</translation> +<translation id="1492417797159476138">Anda telah menyimpan nama pengguna ini untuk situs ini</translation> <translation id="1509486075633541495">Login ke situs</translation> <translation id="1509960214886564027">Fitur di banyak situs mungkin error</translation> <translation id="152234381334907219">Jangan Pernah Disimpan</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_is.xtb b/ios/chrome/app/strings/resources/ios_strings_is.xtb index 1ed5b0d..6bdf8e31 100644 --- a/ios/chrome/app/strings/resources/ios_strings_is.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_is.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Fela aðgangsorð</translation> <translation id="145015347812617860"><ph name="COUNT" /> atriði</translation> <translation id="1491277525950327607">Ýttu tvisvar til að breyta stillingum</translation> +<translation id="1492417797159476138">Þú varst þegar búin(n) að vista þetta notandanafn fyrir vefsvæðið</translation> <translation id="1509486075633541495">Skrá inn á vefsvæði</translation> <translation id="1509960214886564027">Eiginleikar gætu bilað á mörgum vefsvæðum</translation> <translation id="152234381334907219">Aldrei vistað</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_it.xtb b/ios/chrome/app/strings/resources/ios_strings_it.xtb index a89ba41c..73a95c13 100644 --- a/ios/chrome/app/strings/resources/ios_strings_it.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_it.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Nascondi password</translation> <translation id="145015347812617860"><ph name="COUNT" /> elementi</translation> <translation id="1491277525950327607">Tocca due volte per attivare/disattivare l'impostazione</translation> +<translation id="1492417797159476138">Hai già salvato questo nome utente per questo sito</translation> <translation id="1509486075633541495">Accedi al sito web</translation> <translation id="1509960214886564027">Le funzionalità su molti siti potrebbero non essere disponibili</translation> <translation id="152234381334907219">Mai salvate</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_strings_iw.xtb index ecb0455..11ac5c4 100644 --- a/ios/chrome/app/strings/resources/ios_strings_iw.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
@@ -29,7 +29,7 @@ <translation id="122699739164161391">סגירת כל הכרטיסיות</translation> <translation id="1229222343402087523">חיפוש ${searchPhrase} ב-Chrome</translation> <translation id="1231733316453485619">להפעיל סנכרון?</translation> -<translation id="1254117744268754948">בחר תיקייה</translation> +<translation id="1254117744268754948">בחירת תיקייה</translation> <translation id="1265739287306757398">איך עושים זאת?</translation> <translation id="1272079795634619415">הפסק</translation> <translation id="1283524564873030414">מ-24 השעות האחרונות</translation> @@ -41,7 +41,7 @@ <translation id="1358214951266274152">מעבר לקישור שהעתקת</translation> <translation id="1360432990279830238">לצאת ולהשבית את הסנכרון?</translation> <translation id="1375321115329958930">סיסמאות שמורות</translation> -<translation id="1377255359165588604">הסינכרון הפסיק לפעול.</translation> +<translation id="1377255359165588604">הסנכרון הפסיק לפעול.</translation> <translation id="1377321085342047638">מספר כרטיס</translation> <translation id="1383876407941801731">חפש</translation> <translation id="1389974829397082527">אין כאן סימניות</translation> @@ -52,10 +52,11 @@ <translation id="1449835205994625556">הסתר סיסמה</translation> <translation id="145015347812617860"><ph name="COUNT" /> פריטים</translation> <translation id="1491277525950327607">יש ללחוץ פעמיים כדי להחליף את מצב ההגדרה</translation> +<translation id="1492417797159476138">שם המשתמש הזה כבר נשמר לאתר זה</translation> <translation id="1509486075633541495">כניסה לאתר</translation> <translation id="1509960214886564027">ייתכן שהתכונות של חלק גדול מהאתרים לא יפעלו כראוי</translation> <translation id="152234381334907219">פריטים שאף פעם לא נשמרו</translation> -<translation id="1523341279170789507">אפשר את כל קובצי ה-Cookie</translation> +<translation id="1523341279170789507">הפעלת כל קובצי ה-Cookie</translation> <translation id="1535268707340844072">ההגדרה הנוכחית עלולה לגרום לתקלות באתרים מסוימים. הסבר על ניהול קובצי ה-cookie עבור כל האתרים זמין במאמר <ph name="BEGIN_LINK" />הגדרות קובצי cookie<ph name="END_LINK" />.</translation> <translation id="1540800554400757039">כתובת, שורה 1</translation> <translation id="1545749641540134597">סריקת קוד QR</translation> @@ -246,7 +247,7 @@ <translation id="3588820906588687999">פתיחת התמונה בכרטיסייה חדשה</translation> <translation id="359441731697487922">אם Chrome יוגדר כאפליקציית הדפדפן בברירת מחדל, קישורים ייפתחו בו באופן אוטומטי. -עליך למלא אחר השלבים הבאים:</translation> +עליך לפעול לפי השלבים הבאים:</translation> <translation id="3603009562372709545">העתקת URL של קישור</translation> <translation id="3607167657931203000">נתוני מילוי אוטומטי</translation> <translation id="3609785682760573515">מסנכרן ...</translation> @@ -316,7 +317,7 @@ <translation id="4502566650163919158">לבדיקה עכשיו</translation> <translation id="4505980578794259603">בדיקה אחרונה: <ph name="TIME" />.</translation> <translation id="4508750114462689118">סגירת קידום הכניסה</translation> -<translation id="4526249700380860531">הצג ונהל סיסמאות שמורות ב-<ph name="BEGIN_LINK" />passwords.google.com<ph name="END_LINK" /></translation> +<translation id="4526249700380860531">הצגה וינוהל של סיסמאות שמורות ב-<ph name="BEGIN_LINK" />passwords.google.com<ph name="END_LINK" /></translation> <translation id="4536418791685807335">נסה להיכנס שוב.</translation> <translation id="457386861538956877">עוד...</translation> <translation id="4592368184551360546">מקלדת</translation> @@ -327,7 +328,7 @@ <translation id="4634124774493850572">שימוש בסיסמה</translation> <translation id="4636930964841734540">מידע</translation> <translation id="4659126640776004816">התכונה הזו מופעלת בעת הכניסה לחשבון Google.</translation> -<translation id="4659667755519643272">היכנס אל Tab Switcher</translation> +<translation id="4659667755519643272">כניסה אל Tab Switcher</translation> <translation id="46614316059270592">שמירת הסיסמה</translation> <translation id="4666531726415300315">החשבון המחובר: <ph name="EMAIL" />. @@ -445,7 +446,7 @@ <translation id="5964480694698977962">יצירת כרטיסייה חדשה של גלישה בסתר.</translation> <translation id="5965679971710331625">אתה מחובר</translation> <translation id="5979837087407522202">חיפוש בסיסמאות</translation> -<translation id="5982717868370722439">הוסף נתונים קיימים אל <ph name="USER_EMAIL" />.</translation> +<translation id="5982717868370722439">הוספת נתונים קיימים אל <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">ביקרת לאחרונה</translation> <translation id="5988851877894965432">פתיחת כתובות URL ב-Chrome</translation> <translation id="6012140227487808125">מצפין…</translation> @@ -455,7 +456,7 @@ <translation id="6042308850641462728">עוד</translation> <translation id="605721222689873409">YY</translation> <translation id="6059830886158432458">כאן אפשר לנהל את הסטוריז והפעילות שלך</translation> -<translation id="6066301408025741299">הקש כדי לבטל.</translation> +<translation id="6066301408025741299">יש להקיש כדי לבטל.</translation> <translation id="6108923351542677676">ההגדרה מתבצעת…</translation> <translation id="6119050551270742952">דף האינטרנט הנוכחי מוצג במצב אנונימי</translation> <translation id="6122191549521593678">מקוון</translation> @@ -465,7 +466,7 @@ <translation id="6144589619057374135">פתיחת ${urls} במצב אנונימי</translation> <translation id="616831107264507309">קרא אחר כך</translation> <translation id="6177442314419606057">חיפוש ב-Chrome</translation> -<translation id="6184086493125982861">הצג כרטיסיות</translation> +<translation id="6184086493125982861">הצגת כרטיסיות</translation> <translation id="6187302354554850004">סונכרן לאחרונה: <ph name="LAST_USED_TIME" /></translation> <translation id="6189413832092199491">פריטים שלא נקראו</translation> <translation id="6196207969502475924">חיפוש קולי</translation> @@ -487,7 +488,7 @@ <translation id="6363526231572697780">אין שם משתמש</translation> <translation id="6374469231428023295">נסה שוב</translation> <translation id="6377118281273296434">אבטחת האתר</translation> -<translation id="6380866119319257197">אם תשכח את ביטוי הסיסמה או תרצה לשנות את ההגדרה הזו, <ph name="BEGIN_LINK" />אפס את הסינכרון<ph name="END_LINK" /></translation> +<translation id="6380866119319257197">אם שוכחים את ביטוי הסיסמה או שרוצים לשנות את ההגדרה הזו, <ph name="BEGIN_LINK" />יש לאפס את הסנכרון<ph name="END_LINK" /></translation> <translation id="6389470377220713856">שם על הכרטיס</translation> <translation id="6406506848690869874">סנכרון</translation> <translation id="6410883413783534063">ניתן לפתוח כרטיסיות כדי להיכנס אל דפים שונים בו-זמנית</translation> @@ -533,7 +534,7 @@ <translation id="6785453220513215166">שולח דוח קריסה...</translation> <translation id="679325081238418596">קבל את הסימניות, ההיסטוריה, הסיסמאות והגדרות נוספות בכל המכשירים</translation> <translation id="6797885426782475225">חיפוש קולי</translation> -<translation id="6807889908376551050">הצג הכל...</translation> +<translation id="6807889908376551050">הצגת הכול...</translation> <translation id="681368974849482173">הפריט נוצר</translation> <translation id="6831043979455480757">תרגום</translation> <translation id="6841409746189899007">קישור לטקסט</translation> @@ -544,7 +545,7 @@ <translation id="6873263987691478642">מצב Split View</translation> <translation id="6888009575607455378">השינויים יימחקו. להמשיך?</translation> <translation id="6896758677409633944">העתק</translation> -<translation id="6903907808598579934">הפעל סנכרון</translation> +<translation id="6903907808598579934">הפעלת הסנכרון</translation> <translation id="6914583639806229067">חיפוש תמונה שהעתקת</translation> <translation id="6914783257214138813">כל מי שיוכל לגשת אל הקובץ המיוצא יוכל לראות את הסיסמאות שלך.</translation> <translation id="6930799952781667037">יש להקיש כדי לעבור לשפה הזו.</translation> @@ -627,7 +628,7 @@ <translation id="7856733331829174190">ההורדה נכשלה</translation> <translation id="7859704718976024901">היסטוריית הגלישה</translation> <translation id="7887198238286927132">כדי לשמור על הפרטיות שלך, מערכת Chrome לא ממלאת את השדה הזה באופן אוטומטי.</translation> -<translation id="7918293828610777738">אפשר לגשת לרשימת הקריאה במצב לא מקוון. כדי להוסיף דף לרשימת הקריאה צריך להקיש על <ph name="SHARE_OPENING_ICON" /> ועל <ph name="READ_LATER_TEXT" />.</translation> +<translation id="7918293828610777738">רשימת הקריאה זמינה אופליין. כדי להוסיף דף לרשימת הקריאה צריך להקיש על <ph name="SHARE_OPENING_ICON" /> ועל <ph name="READ_LATER_TEXT" />.</translation> <translation id="7938254975914653459">FaceTime</translation> <translation id="7939128259257418052">ייצוא סיסמאות...</translation> <translation id="7947953824732555851">קבל והיכנס</translation> @@ -657,7 +658,7 @@ <translation id="8114753159095730575">יש קובץ זמין להורדה. האפשרויות זמינות בחלק התחתון של המסך.</translation> <translation id="8131740175452115882">אישור</translation> <translation id="8197543752516192074">תרגום הדף</translation> -<translation id="8205564605687841303">בטל</translation> +<translation id="8205564605687841303">ביטול</translation> <translation id="8206354486702514201">הגדרה זו נאכפת על ידי מנהל המערכת שלך.</translation> <translation id="8225985093977202398">תמונות וקבצים במטמון</translation> <translation id="8261506727792406068">מחיקה</translation> @@ -733,7 +734,7 @@ <translation id="9137526406337347448">שירותי Google</translation> <translation id="9148126808321036104">היכנס שוב</translation> <translation id="9152539721251340337">יצירת קוד QR</translation> -<translation id="9157836665414082580">הסתר תיבות דו-שיח</translation> +<translation id="9157836665414082580">הסתרת תיבות דו-שיח</translation> <translation id="9188680907066685419">צא מהחשבון המנוהל</translation> <translation id="9203116392574189331">Handoff</translation> <translation id="9223358826628549784">דוח הקריסה נשלח.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ja.xtb b/ios/chrome/app/strings/resources/ios_strings_ja.xtb index ed180ff..58880663 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ja.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">パスワードを非表示にします</translation> <translation id="145015347812617860"><ph name="COUNT" />個のアイテム</translation> <translation id="1491277525950327607">設定を切り替えるにはダブルタップします</translation> +<translation id="1492417797159476138">このユーザー名はこのサイトですでに保存されています</translation> <translation id="1509486075633541495">ウェブサイトにログイン</translation> <translation id="1509960214886564027">多くサイトで機能を使用できなくなる可能性があります</translation> <translation id="152234381334907219">常に保存しない</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ka.xtb b/ios/chrome/app/strings/resources/ios_strings_ka.xtb index e6c092c..290f7b4 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ka.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">პაროლის დამალვა</translation> <translation id="145015347812617860"><ph name="COUNT" /> ელემენტი</translation> <translation id="1491277525950327607">პარამეტრის გადასართავად, შეეხეთ ორმაგად</translation> +<translation id="1492417797159476138">მომხმარებლის ეს სახელი ამ საიტისთვის უკვე შეინახეთ</translation> <translation id="1509486075633541495">ვებსაიტში შესვლა</translation> <translation id="1509960214886564027">მრავალი საიტის ფუნქციებმა შეიძლება არასათანადოდ იმუშაოს</translation> <translation id="152234381334907219">არასოდეს შენახულა</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kk.xtb b/ios/chrome/app/strings/resources/ios_strings_kk.xtb index 76400f9a..a778ace2 100644 --- a/ios/chrome/app/strings/resources/ios_strings_kk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Құпия сөзді жасыру</translation> <translation id="145015347812617860"><ph name="COUNT" /> элемент</translation> <translation id="1491277525950327607">Параметрді ауыстыру үшін екі рет түртіңіз</translation> +<translation id="1492417797159476138">Бұл сайт үшін осы пайдаланушы аты сақтап қойылған.</translation> <translation id="1509486075633541495">Веб-сайтқа кіру</translation> <translation id="1509960214886564027">Көптеген сайттағы функциялар дұрыс жұмыс істемеуі мүмкін.</translation> <translation id="152234381334907219">Ешқашан сақталмайды</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_km.xtb b/ios/chrome/app/strings/resources/ios_strings_km.xtb index 26a920c..862439d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_km.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_km.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">លាក់ពាក្យសម្ងាត់</translation> <translation id="145015347812617860">ធាតុ <ph name="COUNT" /></translation> <translation id="1491277525950327607">ចុចពីរដងដើម្បីបិទបើកការកំណត់</translation> +<translation id="1492417797159476138">អ្នកបានរក្សាទុកឈ្មោះអ្នកប្រើប្រាស់នេះសម្រាប់គេហទំព័រនេះរួចហើយ</translation> <translation id="1509486075633541495">ចូលទៅគេហទំព័រ</translation> <translation id="1509960214886564027">មុខងារនៅលើគេហទំព័រជាច្រើនអាចដំណើរការមិនត្រឹមត្រូវ</translation> <translation id="152234381334907219">កុំរក្សាទុក</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_strings_kn.xtb index cb24df2a..6c5953a 100644 --- a/ios/chrome/app/strings/resources/ios_strings_kn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">ಪಾಸ್ವರ್ಡ್ ಮರೆಮಾಡಿ</translation> <translation id="145015347812617860"><ph name="COUNT" /> ಐಟಂಗಳು</translation> <translation id="1491277525950327607">ಸೆಟ್ಟಿಂಗ್ ಟಾಗಲ್ ಮಾಡಲು ಡಬಲ್ ಟ್ಯಾಪ್ ಮಾಡಿ</translation> +<translation id="1492417797159476138">ಈ ಸೈಟ್ಗಾಗಿ ನೀವು ಈಗಾಗಲೇ ಈ ಬಳಕೆದಾರರ ಹೆಸರನ್ನು ಉಳಿಸಿದ್ದೀರಿ</translation> <translation id="1509486075633541495">ವೆಬ್ಸೈಟ್ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ</translation> <translation id="1509960214886564027">ಹಲವು ಸೈಟ್ಗಳಲ್ಲಿನ ಫೀಚರ್ಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸುವುದನ್ನು ನಿಲ್ಲಿಸಬಹುದು</translation> <translation id="152234381334907219">ಎಂದಿಗೂ ಉಳಿಸಿಲ್ಲ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_strings_ko.xtb index 20b0ffd..bbb7090 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ko.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">비밀번호 숨기기</translation> <translation id="145015347812617860">항목 <ph name="COUNT" />개</translation> <translation id="1491277525950327607">설정을 전환하려면 두 번 탭하세요.</translation> +<translation id="1492417797159476138">이미 사이트에 사용 중인 사용자 이름입니다.</translation> <translation id="1509486075633541495">웹사이트에 로그인</translation> <translation id="1509960214886564027">다수의 사이트에서 기능이 작동하지 않을 수 있음</translation> <translation id="152234381334907219">저장하지 않음</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ky.xtb b/ios/chrome/app/strings/resources/ios_strings_ky.xtb index 0e79dcb18..0d9ba91 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ky.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Сырсөздү жашыруу</translation> <translation id="145015347812617860"><ph name="COUNT" /> нерсе</translation> <translation id="1491277525950327607">Жөндөөнү которуштуруу үчүн, эки жолу таптаңыз</translation> +<translation id="1492417797159476138">Бул сайт үчүн ушул колдонуучунун атын сактап койгонсуз</translation> <translation id="1509486075633541495">Вебсайтка кирүү</translation> <translation id="1509960214886564027">Функциялар көпчүлүк сайттарда туура иштебеши мүмкүн.</translation> <translation id="152234381334907219">Эч качан сакталбайт</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lo.xtb b/ios/chrome/app/strings/resources/ios_strings_lo.xtb index fdef733c..936d748 100644 --- a/ios/chrome/app/strings/resources/ios_strings_lo.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">ເຊື່ອງລະຫັດຜ່ານ</translation> <translation id="145015347812617860"><ph name="COUNT" /> ລາຍການ</translation> <translation id="1491277525950327607">ແຕະສອງຄັ້ງເພື່ອສັບປ່ຽນການຕັ້ງຄ່າ</translation> +<translation id="1492417797159476138">ທ່ານໄດ້ບັນທຶກຊື່ຜູ້ໃຊ້ນີ້ສຳລັບເວັບໄຊນີ້ຢູ່ກ່ອນແລ້ວ</translation> <translation id="1509486075633541495">ເຂົ້າສູ່ລະບົບເວັບໄຊ</translation> <translation id="1509960214886564027">ຄຸນສົມບັດໃນຫຼາຍໆເວັບໄຊອາດຈະໃຊ້ບໍ່ໄດ້</translation> <translation id="152234381334907219">ຢ່າບັນທຶກ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb index efef1fc..95b9f7a 100644 --- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Slėpti slaptažodį</translation> <translation id="145015347812617860">Elementų: <ph name="COUNT" /></translation> <translation id="1491277525950327607">Dukart palieskite, kad perjungtumėte nustatymą</translation> +<translation id="1492417797159476138">Jau išsaugojote šį naudotojo vardą šioje svetainėje</translation> <translation id="1509486075633541495">Prisijungti prie svetainės</translation> <translation id="1509960214886564027">Funkcijos gali neveikti daugybėje svetainių.</translation> <translation id="152234381334907219">Niekada neišsaugota</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lv.xtb b/ios/chrome/app/strings/resources/ios_strings_lv.xtb index 4323992..a8029290 100644 --- a/ios/chrome/app/strings/resources/ios_strings_lv.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Slēpt paroli</translation> <translation id="145015347812617860"><ph name="COUNT" /> vienumi</translation> <translation id="1491277525950327607">Veiciet dubultskārienu, lai pārslēgtu iestatījumu.</translation> +<translation id="1492417797159476138">Jūs jau saglabājāt šo lietotājvārdu šai vietnei</translation> <translation id="1509486075633541495">Pierakstieties tīmekļa vietnē</translation> <translation id="1509960214886564027">Daudzās vietnēs funkcijas var nedarboties</translation> <translation id="152234381334907219">Jaunākie saglabātie</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mk.xtb b/ios/chrome/app/strings/resources/ios_strings_mk.xtb index cd7482b..17083dbc6 100644 --- a/ios/chrome/app/strings/resources/ios_strings_mk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Сокријте ја лозинката</translation> <translation id="145015347812617860"><ph name="COUNT" /> ставки</translation> <translation id="1491277525950327607">Допрете двапати за да ја измените поставката</translation> +<translation id="1492417797159476138">Веќе го зачувавте ова корисничко име за сајтов</translation> <translation id="1509486075633541495">Најавете се на веб-сајтот</translation> <translation id="1509960214886564027">Функциите на многу сајтови може да не функционираат</translation> <translation id="152234381334907219">Никогаш не зачувувај лозинки</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb index d72954a..9c877fa 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">പാസ്വേഡ് അദൃശ്യമാക്കുക</translation> <translation id="145015347812617860"><ph name="COUNT" /> ഇനങ്ങൾ</translation> <translation id="1491277525950327607">ക്രമീകരണം മാറ്റാൻ രണ്ടുതവണ ടാപ്പ് ചെയ്യുക</translation> +<translation id="1492417797159476138">ഈ സൈറ്റിനായി നിങ്ങൾ ഇതിനകം തന്നെ ഈ ഉപയോക്തൃനാമം സംരക്ഷിച്ചു</translation> <translation id="1509486075633541495">വെബ്സൈറ്റിലേക്ക് സൈൻ ഇൻ ചെയ്യുക</translation> <translation id="1509960214886564027">നിരവധി സൈറ്റുകളിലെ ഫീച്ചറുകൾക്ക് പ്രവർത്തനം നടത്താനായേക്കില്ല</translation> <translation id="152234381334907219">ഒരിക്കലും സംരക്ഷിച്ചില്ല</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mn.xtb b/ios/chrome/app/strings/resources/ios_strings_mn.xtb index 439bd0d..33b825b 100644 --- a/ios/chrome/app/strings/resources/ios_strings_mn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Нууц үгийг нуух</translation> <translation id="145015347812617860"><ph name="COUNT" /> зүйлс</translation> <translation id="1491277525950327607">Унтраах/асаах тохиргоог хийхийн тулд хоёр удаа товшино уу</translation> +<translation id="1492417797159476138">Та энэ сайтад аль хэдийн энэ хэрэглэгчийн нэрийг хадгалсан байна</translation> <translation id="1509486075633541495">Веб сайтад нэвтрэх</translation> <translation id="1509960214886564027">Олон сайтын онцлогууд ажиллахгүй байж болзошгүй</translation> <translation id="152234381334907219">Огт хадгалаагүй</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_strings_mr.xtb index db20c74f..1dd89a8 100644 --- a/ios/chrome/app/strings/resources/ios_strings_mr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">पासवर्ड लपवा</translation> <translation id="145015347812617860"><ph name="COUNT" /> आयटम</translation> <translation id="1491277525950327607">सेटिंग टॉगल करण्यासाठी दोनदा टॅप करा</translation> +<translation id="1492417797159476138">तुम्ही या साइटसाठी आधीच वापरकर्ता नाव सेव्ह केले आहे</translation> <translation id="1509486075633541495">वेबसाइटवर साइन इन करा</translation> <translation id="1509960214886564027">अनेक साइटवरील वैशिष्ट्यांमध्ये खंड पडू शकतो</translation> <translation id="152234381334907219">कधीही सेव्ह न केलेले</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_strings_ms.xtb index 52ed522..c3600afc 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ms.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Sembunyikan Kata Laluan</translation> <translation id="145015347812617860"><ph name="COUNT" /> item</translation> <translation id="1491277525950327607">Dwiketik untuk togol tetapan</translation> +<translation id="1492417797159476138">Anda telah pun menyimpan nama pengguna ini untuk tapak ini</translation> <translation id="1509486075633541495">Log masuk ke tapak web</translation> <translation id="1509960214886564027">Ciri pada banyak tapak mungkin rosak</translation> <translation id="152234381334907219">Tidak Pernah Disimpan</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_my.xtb b/ios/chrome/app/strings/resources/ios_strings_my.xtb index 878b3bb0..6cd925b 100644 --- a/ios/chrome/app/strings/resources/ios_strings_my.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_my.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">စကားဝှက် ဖျောက်ထားရန်</translation> <translation id="145015347812617860"><ph name="COUNT" /> အကြောင်းအရာများ</translation> <translation id="1491277525950327607">ဆက်တင်ကို ကစားကြည့်ရန် နှစ်ချက်တို့ပါ</translation> +<translation id="1492417797159476138">ယခုဝဘ်ဆိုက်အတွက် ဤအသုံးပြုသူအမည်ကို သိမ်းပြီးဖြစ်သည်</translation> <translation id="1509486075633541495">ဝဘ်ဆိုက်သို့ လက်မှတ်ထိုးဝင်ရန်</translation> <translation id="1509960214886564027">ဝဘ်ဆိုက်အတော်များများရှိ ဝန်ဆောင်မှုများ ရပ်သွားနိုင်သည်</translation> <translation id="152234381334907219">ဘယ်တော့မှ သိမ်းဆည်းခြင်းမပြုပါ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ne.xtb b/ios/chrome/app/strings/resources/ios_strings_ne.xtb index 7d68410..78aa05d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ne.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">पासवर्ड लुकाउनुहोस्</translation> <translation id="145015347812617860"><ph name="COUNT" /> वस्तुहरू</translation> <translation id="1491277525950327607">सेटिङ टगल गर्न डबल ट्याप गर्नुहोस्</translation> +<translation id="1492417797159476138">तपाईंले यो साइटका लागि यो युजरनेम सुरक्षित गरिसक्नुभएको छ</translation> <translation id="1509486075633541495">वेबसाइटमा साइन इन गर्नुहोस्</translation> <translation id="1509960214886564027">कयौँ साइटका सुविधाहरूले काम नगर्न सक्छन्</translation> <translation id="152234381334907219">कहिल्यै सुरक्षित गरिँदैन</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_strings_nl.xtb index e47c79b..35da57e 100644 --- a/ios/chrome/app/strings/resources/ios_strings_nl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Wachtwoord verbergen</translation> <translation id="145015347812617860"><ph name="COUNT" /> items</translation> <translation id="1491277525950327607">Dubbeltik om de instelling in of uit te schakelen</translation> +<translation id="1492417797159476138">Je hebt deze gebruikersnaam al opgeslagen voor deze site</translation> <translation id="1509486075633541495">Inloggen op website</translation> <translation id="1509960214886564027">Functies op veel sites werken mogelijk niet meer</translation> <translation id="152234381334907219">Nooit opgeslagen</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_no.xtb b/ios/chrome/app/strings/resources/ios_strings_no.xtb index 293b8c4..7b6234e 100644 --- a/ios/chrome/app/strings/resources/ios_strings_no.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_no.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Skjul passordet</translation> <translation id="145015347812617860"><ph name="COUNT" /> elementer</translation> <translation id="1491277525950327607">Dobbelttrykk for å slå innstillingen av/på</translation> +<translation id="1492417797159476138">Du har allerede lagret dette brukernavnet for dette nettstedet</translation> <translation id="1509486075633541495">Logg på nettstedet</translation> <translation id="1509960214886564027">Det kan hende at funksjoner på mange nettsteder slutter å fungere</translation> <translation id="152234381334907219">Aldri lagret</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_or.xtb b/ios/chrome/app/strings/resources/ios_strings_or.xtb index a47e28d..f140e46 100644 --- a/ios/chrome/app/strings/resources/ios_strings_or.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_or.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">ପାସୱାର୍ଡ ଲୁଚାନ୍ତୁ</translation> <translation id="145015347812617860"><ph name="COUNT" />ଟି ଆଇଟମ୍</translation> <translation id="1491277525950327607">ସେଟିଂକୁ ଟୋଗଲ୍ କରିବାକୁ ଦୁଇଥର ଟାପ୍ କରନ୍ତୁ</translation> +<translation id="1492417797159476138">ଆପଣ ଏହି ସାଇଟ୍ ପାଇଁ ଏହି ଉପଯୋଗକର୍ତ୍ତାନାମ ପୂର୍ବରୁ ସେଭ୍ କରିଛନ୍ତି</translation> <translation id="1509486075633541495">ୱେବ୍ସାଇଟ୍ରେ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ</translation> <translation id="1509960214886564027">କିଛି ସାଇଟରେ ଫିଚରଗୁଡ଼ିକ ଠିକ୍ ଭାବେ କାମ କରିନପାରେ</translation> <translation id="152234381334907219">ଆଦୌ ସେଭ୍ କରାଯାଇନାହିଁ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pa.xtb b/ios/chrome/app/strings/resources/ios_strings_pa.xtb index 80cfc57..13495c2 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pa.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">ਪਾਸਵਰਡ ਲੁਕਾਓ</translation> <translation id="145015347812617860"><ph name="COUNT" /> ਆਈਟਮਾਂ</translation> <translation id="1491277525950327607">ਸੈਟਿੰਗ ਨੂੰ ਟੌਗਲ ਕਰਨ ਲਈ ਡਬਲ ਟੈਪ ਕਰੋ</translation> +<translation id="1492417797159476138">ਤੁਸੀਂ ਪਹਿਲਾਂ ਹੀ ਇਸ ਸਾਈਟ ਲਈ ਇਹ ਵਰਤੋਂਕਾਰ ਨਾਮ ਰੱਖਿਅਤ ਕਰ ਚੁੱਕੇ ਹੋ</translation> <translation id="1509486075633541495">ਵੈੱਬਸਾਈਟ ਵਿੱਚ ਸਾਈਨ-ਇਨ ਕਰੋ</translation> <translation id="1509960214886564027">ਸ਼ਾਇਦ ਕਈ ਸਾਈਟਾਂ 'ਤੇ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਠੀਕ ਤਰੀਕੇ ਨਾਲ ਕੰਮ ਨਾ ਕਰਨ</translation> <translation id="152234381334907219">ਕਦੇ ਵੀ ਰੱਖਿਅਤ ਨਹੀਂ ਕੀਤੇ ਗਏ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_strings_pl.xtb index e8a114de..8ce53402 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Ukryj hasło</translation> <translation id="145015347812617860">Elementy: <ph name="COUNT" /></translation> <translation id="1491277525950327607">Kliknij dwukrotnie, by zmienić ustawienie</translation> +<translation id="1492417797159476138">Ta nazwa użytkownika została już zapisana w tej witrynie</translation> <translation id="1509486075633541495">Zaloguj się w witrynie</translation> <translation id="1509960214886564027">Funkcje wielu stron mogą nie działać prawidłowo</translation> <translation id="152234381334907219">Nigdy nie zapisane</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb index 4b75079..6cffa203 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Ocultar senha</translation> <translation id="145015347812617860"><ph name="COUNT" /> itens</translation> <translation id="1491277525950327607">Toque duas vezes para alternar a configuração</translation> +<translation id="1492417797159476138">Você já salvou este nome de usuário para este site</translation> <translation id="1509486075633541495">Fazer login no site</translation> <translation id="1509960214886564027">Os recursos de muitos sites podem apresentar falhas</translation> <translation id="152234381334907219">Nunca salvas</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb index 5060721..14b9108 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Ocultar a palavra-passe</translation> <translation id="145015347812617860"><ph name="COUNT" /> itens</translation> <translation id="1491277525950327607">Toque duas vezes para ativar ou desativar a definição</translation> +<translation id="1492417797159476138">Já guardou este nome de utilizador para este site.</translation> <translation id="1509486075633541495">Inicie sessão no Website</translation> <translation id="1509960214886564027">As funcionalidades em muitos sites podem falhar.</translation> <translation id="152234381334907219">Nunca guardado</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ro.xtb b/ios/chrome/app/strings/resources/ios_strings_ro.xtb index 9baa8291..a1bcf4a 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ro.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Ascunde parola</translation> <translation id="145015347812617860"><ph name="COUNT" /> elemente</translation> <translation id="1491277525950327607">Atinge de două ori ca să comuți setarea</translation> +<translation id="1492417797159476138">Ai salvat deja acest nume de utilizator pentru site</translation> <translation id="1509486075633541495">Conectează-te la site</translation> <translation id="1509960214886564027">Este posibil ca funcțiile de pe mai multe site-uri să fie întrerupte</translation> <translation id="152234381334907219">Nu se salvează niciodată</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ru.xtb b/ios/chrome/app/strings/resources/ios_strings_ru.xtb index 9c1a0d3..7dcfaaf2 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ru.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Скрыть пароль</translation> <translation id="145015347812617860">Закладок: <ph name="COUNT" /></translation> <translation id="1491277525950327607">Для переключения нажмите дважды</translation> +<translation id="1492417797159476138">Вы уже сохранили это имя пользователя для данного сайта.</translation> <translation id="1509486075633541495">Войдите в аккаунт</translation> <translation id="1509960214886564027">Многие функции на сайтах могут работать некорректно</translation> <translation id="152234381334907219">Сайты, пароли для которых не сохраняются</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_si.xtb b/ios/chrome/app/strings/resources/ios_strings_si.xtb index e13ecc61..2c8e0c6 100644 --- a/ios/chrome/app/strings/resources/ios_strings_si.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_si.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">මුරපදය සඟවන්න</translation> <translation id="145015347812617860">අයිතම <ph name="COUNT" /></translation> <translation id="1491277525950327607">සැකසීම ටොගල් කිරීමට දෙවරක් තට්ටු කරන්න</translation> +<translation id="1492417797159476138">ඔබ දැනටමත් මෙම පරිශීලක නම මෙම වෙබ් අඩවිය සඳහා සුරැක ඇත</translation> <translation id="1509486075633541495">වෙබ් අඩවියට පුරන්න</translation> <translation id="1509960214886564027">බොහෝ වෙබ් අඩවි මත විශේෂාංග කැඩී ගිය හැක</translation> <translation id="152234381334907219">කිසිදා නොසුරකින ලද</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sk.xtb b/ios/chrome/app/strings/resources/ios_strings_sk.xtb index 26d0f6d..bc8f9fa0 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Skryť heslo</translation> <translation id="145015347812617860">Počet položiek: <ph name="COUNT" /></translation> <translation id="1491277525950327607">Nastavenie môžete prepnúť dvojitým klepnutím</translation> +<translation id="1492417797159476138">Toto používateľské meno ste pre tento web už uložili</translation> <translation id="1509486075633541495">Prihláste sa na webe</translation> <translation id="1509960214886564027">Funkcie na mnohých weboch môžu zlyhávať</translation> <translation id="152234381334907219">Nikdy neukladať</translation> @@ -729,7 +730,7 @@ <translation id="9087108903408689779">Heslo navrhnuté Chromom:</translation> <translation id="9094033019050270033">Aktualizovať heslo</translation> <translation id="9100610230175265781">Vyžaduje sa prístupová fráza</translation> -<translation id="9107664647686727385">Kontrolujte, či neboli prelomené heslá</translation> +<translation id="9107664647686727385">Kontroluje, či neboli prelomené heslá</translation> <translation id="9137526406337347448">Služby Google</translation> <translation id="9148126808321036104">Znova sa prihlásiť</translation> <translation id="9152539721251340337">Vytvoriť QR kód</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_strings_sl.xtb index 41a01d6..53afb1c4 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Skrivanje gesla</translation> <translation id="145015347812617860">Št. elementov: <ph name="COUNT" /></translation> <translation id="1491277525950327607">Dvakrat se dotaknite, da preklopite nastavitev</translation> +<translation id="1492417797159476138">Za to spletno mesto ste že shranili to uporabniško ime.</translation> <translation id="1509486075633541495">Prijavite se na spletnem mestu</translation> <translation id="1509960214886564027">Funkcije na številnih spletnih mestih morda ne bodo delovale</translation> <translation id="152234381334907219">Nikoli shranjeno</translation> @@ -61,7 +62,7 @@ <translation id="1545749641540134597">Scan QR Code</translation> <translation id="1552525382687785070">Sinhronizacijo je onemogočil skrbnik</translation> <translation id="1554477036522844996">Novo okno</translation> -<translation id="1580715474678097352">Bodite zaščiteni pred nevarnimi spletnimi mesti.</translation> +<translation id="1580715474678097352">Bodite zaščiteni pred nevarnimi spletnimi mesti</translation> <translation id="1580783302095112590">Pošta je poslana.</translation> <translation id="1582732959743469162">S tem boste prekinili trenutni prenos.</translation> <translation id="1605405588277479165">Izklopljeno – ni priporočljivo</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sq.xtb b/ios/chrome/app/strings/resources/ios_strings_sq.xtb index 191f6f6..e7e8788 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sq.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sq.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Fshih fjalëkalimin</translation> <translation id="145015347812617860"><ph name="COUNT" /> artikuj</translation> <translation id="1491277525950327607">Trokit dy herë për të ndryshuar cilësimin</translation> +<translation id="1492417797159476138">E ke ruajtur tashmë këtë emër përdoruesi për këtë sajt</translation> <translation id="1509486075633541495">Identifikohu në sajtin e uebit</translation> <translation id="1509960214886564027">Veçoritë në shumë sajte mund të ndalojnë së funksionuari</translation> <translation id="152234381334907219">Nuk u ruajt asnjëherë</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb b/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb index 58ce17e..f49ce3f6 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Sakrijte lozinku</translation> <translation id="145015347812617860">Stavki: <ph name="COUNT" /></translation> <translation id="1491277525950327607">Dvaput dodirnite da biste uključili/isključili podešavanje</translation> +<translation id="1492417797159476138">Već ste sačuvali ovo korisničko ime za ovaj sajt</translation> <translation id="1509486075633541495">Prijavite se na veb-sajt</translation> <translation id="1509960214886564027">Funkcije na mnogim sajtovima mogu da prestanu sa radom</translation> <translation id="152234381334907219">Nikada se ne čuva</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_strings_sr.xtb index 24c17a5f..05563bb 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Сакријте лозинку</translation> <translation id="145015347812617860">Ставки: <ph name="COUNT" /></translation> <translation id="1491277525950327607">Двапут додирните да бисте укључили/искључили подешавање</translation> +<translation id="1492417797159476138">Већ сте сачували ово корисничко име за овај сајт</translation> <translation id="1509486075633541495">Пријавите се на веб-сајт</translation> <translation id="1509960214886564027">Функције на многим сајтовима могу да престану са радом</translation> <translation id="152234381334907219">Никада се не чува</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_strings_sv.xtb index 86f2748..7b7a5de 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sv.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Dölj lösenord</translation> <translation id="145015347812617860"><ph name="COUNT" /> objekt</translation> <translation id="1491277525950327607">Aktivera eller inaktivera inställningen genom att trycka snabbt två gånger</translation> +<translation id="1492417797159476138">Du har redan sparat användarnamnet för den här webbplatsen</translation> <translation id="1509486075633541495">Logga in på webbplats</translation> <translation id="1509960214886564027">Funktioner kan sluta att fungera på många webbplatser</translation> <translation id="152234381334907219">Aldrig sparat</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_strings_sw.xtb index 5cd33b9..69ce1c3d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sw.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Ficha Nenosiri</translation> <translation id="145015347812617860">Vipengee <ph name="COUNT" /></translation> <translation id="1491277525950327607">Gusa mara mbili ili ugeuze mipangilio</translation> +<translation id="1492417797159476138">Tayari umehifadhi jina hili la mtumiaji kwa ajili ya tovuti hii</translation> <translation id="1509486075633541495">Ingia katika akaunti ya tovuti</translation> <translation id="1509960214886564027">Huenda vipengele kwenye tovuti nyingi vikakosa kufanya kazi</translation> <translation id="152234381334907219">Hayatahifadhiwa Kamwe</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb index 4160aca3c..3669d45c 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">கடவுச்சொல்லை மறைக்கும்</translation> <translation id="145015347812617860"><ph name="COUNT" /> உருப்படிகள்</translation> <translation id="1491277525950327607">அமைப்பை நிலைமாற்ற, இருமுறை தட்டவும்</translation> +<translation id="1492417797159476138">இந்தத் தளத்தில் இந்தப் பயனர்பெயரை ஏற்கெனவே சேமித்துள்ளீர்கள்</translation> <translation id="1509486075633541495">இணையதளத்தில் உள்நுழையவும்</translation> <translation id="1509960214886564027">பெரும்பாலான தளங்களிலுள்ள அம்சங்கள் செயல்படாமல் போகக்கூடும்</translation> <translation id="152234381334907219">எப்போதும் சேமிக்காதவை</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_te.xtb b/ios/chrome/app/strings/resources/ios_strings_te.xtb index 7a2d84e..540c4859 100644 --- a/ios/chrome/app/strings/resources/ios_strings_te.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_te.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">పాస్వర్డ్ను దాచండి</translation> <translation id="145015347812617860"><ph name="COUNT" /> అంశాలు</translation> <translation id="1491277525950327607">సెట్టింగ్ను టోగుల్ చేయడానికి రెండుసార్లు నొక్కండి</translation> +<translation id="1492417797159476138">మీరు ఇప్పటికే ఈ సైట్ కోసం ఈ యూజర్నేమ్ను సేవ్ చేశారు</translation> <translation id="1509486075633541495">వెబ్సైట్కు సైన్ ఇన్ చేయండి</translation> <translation id="1509960214886564027">చాలా సైట్లలోని ఫీచర్లు పని చేయకుండాపోవచ్చు</translation> <translation id="152234381334907219">ఎప్పటికి సేవ్ చెయ్యబడవు</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_th.xtb b/ios/chrome/app/strings/resources/ios_strings_th.xtb index 1c3a980..94d54047 100644 --- a/ios/chrome/app/strings/resources/ios_strings_th.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_th.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">ซ่อนรหัสผ่าน</translation> <translation id="145015347812617860"><ph name="COUNT" /> รายการ</translation> <translation id="1491277525950327607">แตะ 2 ครั้งเพื่อสลับการตั้งค่า</translation> +<translation id="1492417797159476138">คุณบันทึกชื่อผู้ใช้นี้สำหรับเว็บไซต์นี้แล้ว</translation> <translation id="1509486075633541495">ลงชื่อเข้าใช้เว็บไซต์</translation> <translation id="1509960214886564027">ฟีเจอร์ในหลายเว็บไซต์อาจใช้งานไม่ได้</translation> <translation id="152234381334907219">ไม่เคยบันทึก</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_strings_tr.xtb index fed9aef4..7175d24 100644 --- a/ios/chrome/app/strings/resources/ios_strings_tr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Şifreyi Gizle</translation> <translation id="145015347812617860"><ph name="COUNT" /> öğe</translation> <translation id="1491277525950327607">Ayarı açıp kapatmak için iki kez dokunun</translation> +<translation id="1492417797159476138">Bu site için bu kullanıcı adını zaten kaydettiniz</translation> <translation id="1509486075633541495">Web sitesinde oturum açın</translation> <translation id="1509960214886564027">Birçok sitedeki özellikler bozulabilir</translation> <translation id="152234381334907219">Hiç Kaydedilmeyenler</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_strings_uk.xtb index 4650c4f..131f6ca 100644 --- a/ios/chrome/app/strings/resources/ios_strings_uk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Сховати пароль</translation> <translation id="145015347812617860">Закладок: <ph name="COUNT" /></translation> <translation id="1491277525950327607">Двічі торкніться, щоб змінити налаштування</translation> +<translation id="1492417797159476138">Ви вже зберегли це ім'я користувача для цього сайту</translation> <translation id="1509486075633541495">Увійдіть в обліковий запис на веб-сайті</translation> <translation id="1509960214886564027">Функції на багатьох сайтах можуть не працювати</translation> <translation id="152234381334907219">Ніколи не зберігалося</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ur.xtb b/ios/chrome/app/strings/resources/ios_strings_ur.xtb index 3ab645e9..814084b 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ur.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ur.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">پاس ورڈ چھپائیں</translation> <translation id="145015347812617860"><ph name="COUNT" /> آئٹمز</translation> <translation id="1491277525950327607">ترتیبات کو ٹوگل کرنے کیلئے دو بار تھپتھپائیں</translation> +<translation id="1492417797159476138">آپ نے پہلے ہی اس سائٹ کے لئے یہ صارف نام محفوظ کر لیا ہے</translation> <translation id="1509486075633541495">ویب سائٹ میں سائن ان کریں</translation> <translation id="1509960214886564027">بہت سی سائٹس پر خصوصیات میں خلل ہو سکتا ہے</translation> <translation id="152234381334907219">کبھی محفوظ نہیں ہوئے</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uz.xtb b/ios/chrome/app/strings/resources/ios_strings_uz.xtb index 80503659..297f8ac0 100644 --- a/ios/chrome/app/strings/resources/ios_strings_uz.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Parolni berkitish</translation> <translation id="145015347812617860"><ph name="COUNT" /> ta xatcho‘p</translation> <translation id="1491277525950327607">Almashtirish uchun ikki marta bosing</translation> +<translation id="1492417797159476138">Bu sayt uchun login allaqachon saqlangan</translation> <translation id="1509486075633541495">Saytga kirish</translation> <translation id="1509960214886564027">Aksariyat saytlardagi funksiyalar ishalamay qolishi mumkin</translation> <translation id="152234381334907219">Parollar saqlanmaydigan saytlar</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_strings_vi.xtb index 4fd3f25..88bd6c2 100644 --- a/ios/chrome/app/strings/resources/ios_strings_vi.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Ẩn mật khẩu</translation> <translation id="145015347812617860"><ph name="COUNT" /> mục</translation> <translation id="1491277525950327607">Nhấn đúp để chuyển đổi cài đặt</translation> +<translation id="1492417797159476138">Bạn đã lưu tên người dùng này cho trang web này</translation> <translation id="1509486075633541495">Đăng nhập vào trang web</translation> <translation id="1509960214886564027">Các tính năng trên nhiều trang web có thể hoạt động không đúng cách</translation> <translation id="152234381334907219">Không bao giờ lưu</translation> @@ -729,7 +730,7 @@ <translation id="9087108903408689779">Mật khẩu do Chrome đề xuất:</translation> <translation id="9094033019050270033">Cập nhật mật khẩu</translation> <translation id="9100610230175265781">Yêu cầu cụm mật khẩu</translation> -<translation id="9107664647686727385">Kiểm tra để phát hiện mật khẩu bị lộ</translation> +<translation id="9107664647686727385">Kiểm tra để tìm mật khẩu bị lộ</translation> <translation id="9137526406337347448">Dịch vụ của Google</translation> <translation id="9148126808321036104">Đăng nhập lại</translation> <translation id="9152539721251340337">Tạo mã QR</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb index 0af436d..fa593b9 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">隐藏密码</translation> <translation id="145015347812617860">有<ph name="COUNT" />个书签</translation> <translation id="1491277525950327607">点按两次即可切换设置</translation> +<translation id="1492417797159476138">您已为此网站保存该用户名</translation> <translation id="1509486075633541495">登录网站</translation> <translation id="1509960214886564027">很多网站上的功能可能会无法正常运作</translation> <translation id="152234381334907219">一律不保存</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb index 0c729a0d..f366902 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">隱藏密碼</translation> <translation id="145015347812617860"><ph name="COUNT" /> 個項目</translation> <translation id="1491277525950327607">連扲兩下可以切換設定</translation> +<translation id="1492417797159476138">您已為此網站儲存此使用者名稱</translation> <translation id="1509486075633541495">登入網站</translation> <translation id="1509960214886564027">很多網站的功能可能會無法正常運作</translation> <translation id="152234381334907219">永不儲存</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 eb54582..a4366be 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">隱藏密碼</translation> <translation id="145015347812617860"><ph name="COUNT" /> 個項目</translation> <translation id="1491277525950327607">輕觸兩下即可切換設定</translation> +<translation id="1492417797159476138">你已在這個網站上儲存此使用者名稱</translation> <translation id="1509486075633541495">登入網站</translation> <translation id="1509960214886564027">許多網站的功能可能無法正常運作</translation> <translation id="152234381334907219">永不儲存</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zu.xtb b/ios/chrome/app/strings/resources/ios_strings_zu.xtb index 1f00a47b..83ab811 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zu.xtb
@@ -52,6 +52,7 @@ <translation id="1449835205994625556">Fihla iphasiwedi</translation> <translation id="145015347812617860"><ph name="COUNT" /> izinto</translation> <translation id="1491277525950327607">Thepha kabili ukuze ushintshe isilungiselelo</translation> +<translation id="1492417797159476138">Ulondoloze leli gama lomsebenzisi kakade mayelana naleli sayithi</translation> <translation id="1509486075633541495">Ngena ngemvume kuwebhusayithi</translation> <translation id="1509960214886564027">Izici ezikumasayithi amaningi zingase zinqamuke</translation> <translation id="152234381334907219">Ayikaze yalondolozwa</translation>
diff --git a/ios/chrome/browser/find_in_page/BUILD.gn b/ios/chrome/browser/find_in_page/BUILD.gn index 9839b05..037e039 100644 --- a/ios/chrome/browser/find_in_page/BUILD.gn +++ b/ios/chrome/browser/find_in_page/BUILD.gn
@@ -14,36 +14,22 @@ "find_in_page_response_delegate.h", "find_tab_helper.h", "find_tab_helper.mm", - "js_findinpage_manager.h", - "js_findinpage_manager.mm", ] deps = [ - ":injected_js", "//base", "//components/ukm/ios:ukm_url_recorder", "//ios/chrome/browser/web", "//ios/web/public", - "//ios/web/public/deprecated", "//ios/web/public/find_in_page", "//services/metrics/public/cpp:ukm_builders", ] frameworks = [ "CoreGraphics.framework" ] } -# TODO(crbug.com/487804): use js_compile_checked instead once the errors have -# been fixed. -js_compile_unchecked("injected_js") { - sources = [ "resources/find_in_page.js" ] -} - source_set("unit_tests") { testonly = true configs += [ "//build/config/compiler:enable_arc" ] - sources = [ - "find_in_page_controller_unittest.mm", - "find_in_page_js_unittest.mm", - "js_findinpage_manager_unittest.mm", - ] + sources = [ "find_in_page_controller_unittest.mm" ] deps = [ ":find_in_page", "//base", @@ -53,9 +39,6 @@ "//ios/chrome/browser/browser_state:test_support", "//ios/chrome/browser/web:test_support", "//ios/chrome/browser/web:web_internal", - "//ios/web/public/deprecated", - "//ios/web/public/test", - "//ios/web/public/test/fakes", "//testing/gtest", ] }
diff --git a/ios/chrome/browser/find_in_page/find_in_page_controller.mm b/ios/chrome/browser/find_in_page/find_in_page_controller.mm index aabf5a3e..3f17e089 100644 --- a/ios/chrome/browser/find_in_page/find_in_page_controller.mm +++ b/ios/chrome/browser/find_in_page/find_in_page_controller.mm
@@ -15,9 +15,7 @@ #include "components/ukm/ios/ukm_url_recorder.h" #import "ios/chrome/browser/find_in_page/find_in_page_model.h" #import "ios/chrome/browser/find_in_page/find_in_page_response_delegate.h" -#import "ios/chrome/browser/find_in_page/js_findinpage_manager.h" #import "ios/chrome/browser/web/dom_altering_lock.h" -#import "ios/web/public/deprecated/crw_js_injection_receiver.h" #import "ios/web/public/find_in_page/find_in_page_manager.h" #import "ios/web/public/find_in_page/find_in_page_manager_delegate_bridge.h" #import "ios/web/public/ui/crw_web_view_proxy.h"
diff --git a/ios/chrome/browser/find_in_page/find_in_page_js_unittest.mm b/ios/chrome/browser/find_in_page/find_in_page_js_unittest.mm deleted file mode 100644 index 496eb57..0000000 --- a/ios/chrome/browser/find_in_page/find_in_page_js_unittest.mm +++ /dev/null
@@ -1,265 +0,0 @@ -// Copyright 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#import <UIKit/UIKit.h> - -#include "base/mac/foundation_util.h" -#include "base/strings/sys_string_conversions.h" -#import "ios/chrome/browser/find_in_page/find_in_page_model.h" -#import "ios/chrome/browser/find_in_page/js_findinpage_manager.h" -#import "ios/chrome/browser/web/chrome_web_test.h" -#import "ios/web/public/deprecated/crw_js_injection_receiver.h" -#import "ios/web/public/ui/crw_web_view_proxy.h" -#import "ios/web/public/web_state.h" -#include "testing/gtest/include/gtest/gtest.h" -#include "testing/gtest_mac.h" - -#if !defined(__has_feature) || !__has_feature(objc_arc) -#error "This file requires ARC support." -#endif - -// Unit tests for the find_in_page.js JavaScript file. - -namespace { - -// JavaScript invocation format string, with one NSString placeholder for the -// search target and timeout set to 1000ms. -NSString* kJavaScriptSearchCallFormat = - @"__gCrWeb.findInPage.highlightWord('%@', 1000)"; - -// Other JavaScript functions invoked by the tests. -NSString* kJavaScriptIncrementIndex = @"__gCrWeb.findInPage.incrementIndex()"; -NSString* kJavaScriptDecrementIndex = @"__gCrWeb.findInPage.decrementIndex()"; -NSString* kJavaScriptGoNext = @"__gCrWeb.findInPage.goNext()"; -NSString* kJavaScriptGoPrev = @"__gCrWeb.findInPage.goPrev()"; - -// JavaScript variables accessed by the tests. -NSString* kJavaScriptIndex = @"__gCrWeb.findInPage.selectedMatchIndex"; -NSString* kJavaScriptSpansLength = @"__gCrWeb.findInPage.matches.length"; - -// HTML that contains several occurrences of the string 'foo', some visible and -// some not visible (the first 'foo' is hidden, the next is visible, the next is -// hidden and so on until the final 'foo' which is hidden. -NSString* kHtmlWithFoos = @"<html><body>" - " <span style='display:none'>foo</span>" - " <span>foo</span>" - " <span style='display:none'>foo</span>" - " <span>foo</span>" - " <span style='display:none'>foo</span>" - " <span>foo</span>" - " <span style='display:none'>foo</span>" - "</body></html>"; - -// The number of times 'foo' occurs in |kHtmlWithFoos| (hidden and visible). -const int kNumberOfFoosInHtml = 7; - -// HTML that contains several occurrences of the string 'foo', none visible. -NSString* kHtmlWithNoVisibleFoos = @"<html><body>" - " <span style='display:none'>foo</span>" - " <span style='display:none'>foo</span>" - " <span style='display:none'>foo</span>" - " <span style='display:none'>foo</span>" - " <span style='display:none'>foo</span>" - " <span style='display:none'>foo</span>" - "</body></html>"; - -// Test fixture to test Find In Page JS. -class FindInPageJsTest : public ChromeWebTest { - public: - // Loads the given HTML, then loads the |findInPage| JavaScript. - void LoadHtml(NSString* html) { - ChromeWebTest::LoadHtml(html); - - // Inject and initialize the find in page javascript. - [findInPageJsManager_ inject]; - CGRect frame = [web_state()->GetWebViewProxy() bounds]; - [findInPageJsManager_ setWidth:frame.size.width height:frame.size.height]; - } - - // Runs the given JavaScript and asserts that the result matches the given - // |expected_value|. - void AssertJavaScriptValue(NSString* script, int expected_value) { - id result = ExecuteJavaScript(script); - EXPECT_TRUE(result) << " in script: " << base::SysNSStringToUTF8(script); - EXPECT_EQ(expected_value, [result intValue]) - << " in script: " << base::SysNSStringToUTF8(script); - } - - // Loads the test HTML containing 'foo' strings and invokes the JavaScript - // necessary to search for and highlight any matches. Note that the JavaScript - // sets the current index to the first visible occurrence of 'foo'. - void SearchForFoo() { - LoadHtml(kHtmlWithFoos); - - // Assert the index and span count contain their initialized values - AssertJavaScriptValue(kJavaScriptIndex, -1); - AssertJavaScriptValue(kJavaScriptSpansLength, 0); - - // Search for 'foo'. Performing the search sets the index to point to the - // first visible occurrence of 'foo'. - ExecuteJavaScript( - [NSString stringWithFormat:kJavaScriptSearchCallFormat, @"foo"]); - AssertJavaScriptValue(kJavaScriptIndex, 1); - AssertJavaScriptValue(kJavaScriptSpansLength, kNumberOfFoosInHtml); - } - - void SetUp() override { - ChromeWebTest::SetUp(); - findInPageModel_ = [[FindInPageModel alloc] init]; - findInPageJsManager_ = base::mac::ObjCCastStrict<JsFindinpageManager>( - [web_state()->GetJSInjectionReceiver() - instanceOfClass:[JsFindinpageManager class]]); - findInPageJsManager_.findInPageModel = findInPageModel_; - } - - FindInPageModel* findInPageModel_; - JsFindinpageManager* findInPageJsManager_; -}; - -// Performs a search, then calls |incrementIndex| to loop through the -// matches, ensuring that when the end is reached the index wraps back to zero. -TEST_F(FindInPageJsTest, IncrementIndex) { - SearchForFoo(); - - // Increment index until it hits the max index. - for (int i = 2; i < kNumberOfFoosInHtml; i++) { - ExecuteJavaScript(kJavaScriptIncrementIndex); - AssertJavaScriptValue(kJavaScriptIndex, i); - } - - // Increment index one more time and it should wrap back to zero. - ExecuteJavaScript(kJavaScriptIncrementIndex); - AssertJavaScriptValue(kJavaScriptIndex, 0); -} - -// Performs a search, then calls |decrementIndex| to loop through the -// matches, ensuring that when the beginning is reached the index wraps back to -// the end of the page. -TEST_F(FindInPageJsTest, DecrementIndex) { - SearchForFoo(); - - // Since the first visible 'foo' is at index 1, decrement once to get to zero. - ExecuteJavaScript(kJavaScriptDecrementIndex); - AssertJavaScriptValue(kJavaScriptIndex, 0); - - // Decrement index until it hits zero again. Note that the first time - // |decrementIndex| is called the index wraps from zero to the max index. - for (int i = kNumberOfFoosInHtml - 1; i >= 0; i--) { - ExecuteJavaScript(kJavaScriptDecrementIndex); - AssertJavaScriptValue(kJavaScriptIndex, i); - } -} - -// Performs a search, then calls |goNext| to loop through the visible matches, -// ensuring that hidden matches are skipped and that when the end is reached the -// index wraps back to the beginning of the page. -TEST_F(FindInPageJsTest, GoNext) { - SearchForFoo(); - - // Since the first visible 'foo' is at index 1, and every other 'foo' is - // hidden, after calling goNext the index should be at 3. - ExecuteJavaScript(kJavaScriptGoNext); - AssertJavaScriptValue(kJavaScriptIndex, 3); - - // The next visible 'foo' is at index 5. - ExecuteJavaScript(kJavaScriptGoNext); - AssertJavaScriptValue(kJavaScriptIndex, 5); - - // Calling |goNext| again wraps around to the first visible foo. - ExecuteJavaScript(kJavaScriptGoNext); - AssertJavaScriptValue(kJavaScriptIndex, 1); -} - -// Performs a search, then calls |goPrev| to loop through the visible matches, -// ensuring that hidden matches are skipped and that when the beginning is -// reached the index wraps back to the end of the page. -TEST_F(FindInPageJsTest, GoPrev) { - SearchForFoo(); - - // Calling |goPrev| will wrap around to the end of the page, and since the - // last 'foo' is hidden, we want |kNumberOfFoosInHtml| - 2. - ExecuteJavaScript(kJavaScriptGoPrev); - AssertJavaScriptValue(kJavaScriptIndex, 5); - - // Since every other 'foo' is hidden, the prior visible 'foo' is at index 3. - ExecuteJavaScript(kJavaScriptGoPrev); - AssertJavaScriptValue(kJavaScriptIndex, 3); -} - -TEST_F(FindInPageJsTest, NoneVisible) { - LoadHtml(kHtmlWithNoVisibleFoos); - - // Assert the index and span count contain their initialized values - AssertJavaScriptValue(kJavaScriptIndex, -1); - AssertJavaScriptValue(kJavaScriptSpansLength, 0); - - // Search for 'foo'. Performing the search sets the index to point to 0 since - // there are no visible occurrences of 'foo'. - ExecuteJavaScript( - [NSString stringWithFormat:kJavaScriptSearchCallFormat, @"foo"]); - AssertJavaScriptValue(kJavaScriptIndex, 0); - AssertJavaScriptValue(kJavaScriptSpansLength, 6); - - ExecuteJavaScript(kJavaScriptGoPrev); - AssertJavaScriptValue(kJavaScriptIndex, 0); - - ExecuteJavaScript(kJavaScriptGoNext); - AssertJavaScriptValue(kJavaScriptIndex, 0); -} - -TEST_F(FindInPageJsTest, SearchForNonAscii) { - NSString* const kNonAscii = @"á"; - NSString* const htmlFormat = @"<html>" - "<meta charset=\"UTF-8\">" - "<body>%@</body>" - "</html>"; - LoadHtml([NSString stringWithFormat:htmlFormat, kNonAscii]); - // Assert the index and span count contain their initialized values. - AssertJavaScriptValue(kJavaScriptIndex, -1); - AssertJavaScriptValue(kJavaScriptSpansLength, 0); - - // Search for the non-Ascii value. Performing the search sets the index to - // point to the first visible occurrence of the non-Ascii. - NSString* result = ExecuteJavaScript( - [NSString stringWithFormat:kJavaScriptSearchCallFormat, kNonAscii]); - ASSERT_TRUE(result); - AssertJavaScriptValue(kJavaScriptIndex, 0); - AssertJavaScriptValue(kJavaScriptSpansLength, 1); -} - -TEST_F(FindInPageJsTest, SearchForWhitespace) { - LoadHtml(@"<html><body> <div> </div> <h1> </h1><p> <span> </span> </p> " - @"</body></html>"); - // Assert the index and span count contain their initialized values. - AssertJavaScriptValue(kJavaScriptIndex, -1); - AssertJavaScriptValue(kJavaScriptSpansLength, 0); - - // Search for space. Performing the search sets the index to - // point to the first visible occurrence of the whitespace. - NSString* result = ExecuteJavaScript( - [NSString stringWithFormat:kJavaScriptSearchCallFormat, @" "]); - ASSERT_TRUE(result); - AssertJavaScriptValue(kJavaScriptIndex, 0); - AssertJavaScriptValue(kJavaScriptSpansLength, 8); -} - -// Tests that FindInPage works when match results cover mutiple HTML Nodes. -TEST_F(FindInPageJsTest, SearchOverMultipleNodes) { - LoadHtml(@"<html><body>" - @"<p>xx1<span>2</span>3<a>4512345xxx12</a>34<a>5xxx12345xx</p>" - @"</body></html>"); - // Assert the index and span count contain their initialized values. - AssertJavaScriptValue(kJavaScriptIndex, -1); - AssertJavaScriptValue(kJavaScriptSpansLength, 0); - - // Search for "12345". Performing the search sets the index to - // point to the first visible occurrence of "12345". - NSString* result = ExecuteJavaScript( - [NSString stringWithFormat:kJavaScriptSearchCallFormat, @"12345"]); - ASSERT_TRUE(result); - AssertJavaScriptValue(kJavaScriptIndex, 0); - AssertJavaScriptValue(kJavaScriptSpansLength, 4); -} - -} // namespace
diff --git a/ios/chrome/browser/find_in_page/js_findinpage_manager.h b/ios/chrome/browser/find_in_page/js_findinpage_manager.h deleted file mode 100644 index 2fa4170..0000000 --- a/ios/chrome/browser/find_in_page/js_findinpage_manager.h +++ /dev/null
@@ -1,63 +0,0 @@ -// Copyright 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef IOS_CHROME_BROWSER_FIND_IN_PAGE_JS_FINDINPAGE_MANAGER_H_ -#define IOS_CHROME_BROWSER_FIND_IN_PAGE_JS_FINDINPAGE_MANAGER_H_ - -#include <CoreGraphics/CGBase.h> -#include <CoreGraphics/CGGeometry.h> - -#include "base/ios/block_types.h" -#import "ios/web/public/deprecated/crw_js_injection_manager.h" - -// Data from find in page. -typedef struct FindInPageEntry { - CGPoint point; // Scroll offset required to center the highlighted item. - NSInteger index; // Currently higlighted search term. -} FindInPageEntry; - -// Constant for "not found". -extern FindInPageEntry FindInPageEntryZero; - -@class CRWJSInjectionReceiver; -@class FindInPageModel; - -// Manager for the injection of the Find In Page JavaScript. -@interface JsFindinpageManager : CRWJSInjectionManager - -// Find In Page model. -@property(nonatomic, readwrite, strong) FindInPageModel* findInPageModel; - -// Sets the width and height of the window. -- (void)setWidth:(CGFloat)width height:(CGFloat)height; - -// Runs injected JavaScript to find |query| string. Calls |completionHandler| -// with YES if the find operation completed, it is called with NO otherwise. -// If the find operation was successfiul the first match to scroll to is -// also called with. If the |completionHandler| is called with NO, another -// call to |pumpWithCompletionHandler:| is required. |completionHandler| cannot -// be nil. -- (void)findString:(NSString*)query - completionHandler:(void (^)(BOOL, CGPoint))completionHandler; - -// Searches for more matches. Calls |completionHandler| with a success BOOL and -// scroll position if pumping was successful. If the pumping was unsuccessful -// another pumping call maybe required. |completionHandler| cannot be nil. -- (void)pumpWithCompletionHandler:(void (^)(BOOL, CGPoint))completionHandler; - -// Moves to the next matched location and executes the completion handler with -// the new scroll position passed in. The |completionHandler| can be nil. -- (void)nextMatchWithCompletionHandler:(void (^)(CGPoint))completionHandler; - -// Moves to the previous matched location and executes the completion handle -// with the new scroll position passed in. The |completionHandler| can be nil. -- (void)previousMatchWithCompletionHandler:(void (^)(CGPoint))completionHandler; - -// Stops find in page and calls |completionHandler| once find in page is -// stopped. |completionHandler| cannot be nil. -- (void)disableWithCompletionHandler:(ProceduralBlock)completionHandler; - -@end - -#endif // IOS_CHROME_BROWSER_FIND_IN_PAGE_JS_FINDINPAGE_MANAGER_H_
diff --git a/ios/chrome/browser/find_in_page/js_findinpage_manager.mm b/ios/chrome/browser/find_in_page/js_findinpage_manager.mm deleted file mode 100644 index c2370af7..0000000 --- a/ios/chrome/browser/find_in_page/js_findinpage_manager.mm +++ /dev/null
@@ -1,258 +0,0 @@ -// Copyright 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#import "ios/chrome/browser/find_in_page/js_findinpage_manager.h" - -#include <memory> -#include <string> - -#include "base/check.h" -#include "base/json/json_reader.h" -#include "base/json/string_escape.h" -#include "base/mac/foundation_util.h" -#include "base/strings/sys_string_conversions.h" -#include "base/values.h" -#import "ios/chrome/browser/find_in_page/find_in_page_model.h" - -#if !defined(__has_feature) || !__has_feature(objc_arc) -#error "This file requires ARC support." -#endif - -namespace { - -// Initializes Find In Page JavaScript with the width and height of the window. -NSString* const kFindInPageInit = @"window.__gCrWeb.findInPage && " - "window.__gCrWeb.findInPage.init(%.f, %.f);"; - -// This will only do verbatim matches. -// The timeout of 100ms is hardcoded into this string so we don't have -// to spend any time at runtime to format this constant into another constant. -NSString* const kFindInPageVerbatim = - @"window.__gCrWeb.findInPage && " - "window.__gCrWeb.findInPage.highlightWord(%@, 100.0);"; - -// The timeout of 100ms is hardcoded into this string so we don't have -// to spend any time at runtime to format this constant into another constant. -NSString* const kFindInPagePump = - @"window.__gCrWeb.findInPage && " - "window.__gCrWeb.findInPage.pumpSearch(100.0);"; - -NSString* const kFindInPagePrev = @"window.__gCrWeb.findInPage && " - "window.__gCrWeb.findInPage.goPrev();"; - -NSString* const kFindInPageNext = @"window.__gCrWeb.findInPage && " - "window.__gCrWeb.findInPage.goNext();"; - -NSString* const kFindInPageDisable = @"window.__gCrWeb.findInPage && " - "window.__gCrWeb.findInPage.disable();"; - -NSString* const kFindInPagePending = @"[false]"; - -const FindInPageEntry kFindInPageEntryZero = {{0.0, 0.0}, 0}; - -} // namespace - -@interface JsFindinpageManager () -// Update find in page model with results, return true if fip completes or -// false if still pending and requires pumping. If |point| is not nil, it will -// contain the scroll position upon return. -- (BOOL)processFindInPageResult:(id)result scrollPosition:(CGPoint*)point; -// Updates find in page model with results. Calls |completionHandler| with the -// the result of the processing and the new scroll position if successful. If -// |completionHandler| is called with NO, further pumping is required. -// |completionHandler| cannot be nil. -- (void)processFindInPagePumpResult:(NSString*)result - completionHandler:(void (^)(BOOL, CGPoint))completionHandler; -// Helper functions to extract FindInPageEntry from JSON. -- (FindInPageEntry)findInPageEntryForJson:(NSString*)jsonStr; -- (FindInPageEntry)entryForListValue:(const base::Value&)position; -// Executes |script| which is a piece of JavaScript to move to the next or -// previous element in the page and executes |completionHandler| after moving -// with the new scroll position passed in. -- (void)moveHighlightByEvaluatingJavaScript:(NSString*)script - completionHandler: - (void (^)(CGPoint))completionHandler; -// Updates the current match index and its found position in the model. -- (void)updateIndex:(NSInteger)index atPoint:(CGPoint)point; -@end - -@implementation JsFindinpageManager -@synthesize findInPageModel = _findInPageModel; - -- (void)setWidth:(CGFloat)width height:(CGFloat)height { - NSString* javaScript = - [NSString stringWithFormat:kFindInPageInit, width, height]; - [self executeJavaScript:javaScript completionHandler:nil]; -} - -- (void)findString:(NSString*)query - completionHandler:(void (^)(BOOL, CGPoint))completionHandler { - DCHECK(completionHandler); - // Save the query in the model before searching. - [self.findInPageModel updateQuery:query matches:0]; - - // Escape |query| before passing to js. - std::string escapedJSON; - base::EscapeJSONString(base::SysNSStringToUTF16(query), true, &escapedJSON); - NSString* JSONQuery = - [NSString stringWithFormat:kFindInPageVerbatim, - base::SysUTF8ToNSString(escapedJSON.c_str())]; - __weak JsFindinpageManager* weakSelf = self; - [self executeJavaScript:JSONQuery - completionHandler:^(id result, NSError* error) { - // Conservative early return in case of error. - if (error) - return; - [weakSelf processFindInPagePumpResult:result - completionHandler:completionHandler]; - }]; -} - -- (void)pumpWithCompletionHandler:(void (^)(BOOL, CGPoint))completionHandler { - DCHECK(completionHandler); - __weak JsFindinpageManager* weakSelf = self; - [self executeJavaScript:kFindInPagePump - completionHandler:^(id result, NSError* error) { - // Conservative early return in case of error. - if (error) - return; - [weakSelf processFindInPagePumpResult:result - completionHandler:completionHandler]; - }]; -} - -- (void)nextMatchWithCompletionHandler:(void (^)(CGPoint))completionHandler { - [self moveHighlightByEvaluatingJavaScript:kFindInPageNext - completionHandler:completionHandler]; -} - -- (void)previousMatchWithCompletionHandler: - (void (^)(CGPoint))completionHandler { - [self moveHighlightByEvaluatingJavaScript:kFindInPagePrev - completionHandler:completionHandler]; -} - -- (void)moveHighlightByEvaluatingJavaScript:(NSString*)script - completionHandler: - (void (^)(CGPoint))completionHandler { - __weak JsFindinpageManager* weakSelf = self; - [self executeJavaScript:script - completionHandler:^(id result, NSError* error) { - JsFindinpageManager* strongSelf = weakSelf; - if (!strongSelf) - return; - // Conservative early return in case of error. - if (error) - return; - FindInPageEntry entry = kFindInPageEntryZero; - if (![result isEqual:kFindInPagePending]) { - NSString* stringResult = - base::mac::ObjCCastStrict<NSString>(result); - entry = [strongSelf findInPageEntryForJson:stringResult]; - } - CGPoint newPoint = entry.point; - [strongSelf updateIndex:entry.index atPoint:newPoint]; - if (completionHandler) - completionHandler(newPoint); - }]; -} - -- (void)disableWithCompletionHandler:(ProceduralBlock)completionHandler { - DCHECK(completionHandler); - [self executeJavaScript:kFindInPageDisable completionHandler:^(id, NSError*) { - completionHandler(); - }]; -} - -#pragma mark - -#pragma mark FindInPageEntry - -- (BOOL)processFindInPageResult:(id)result scrollPosition:(CGPoint*)point { - NSString* result_str = base::mac::ObjCCastStrict<NSString>(result); - if (!result_str) - return NO; - - // Parse JSONs. - std::string json = base::SysNSStringToUTF8(result_str); - base::Optional<base::Value> root = base::JSONReader::Read(json); - if (!root.has_value()) - return YES; - if (!root.value().is_list()) - return YES; - - base::Value::ConstListView listValues = root.value().GetList(); - if (listValues.size() == 2) { - if (listValues[0].is_int()) { - int numHighlighted = listValues[0].GetInt(); - if (numHighlighted > 0) { - if (listValues[1].is_list()) { - [self.findInPageModel updateQuery:nil matches:numHighlighted]; - // Scroll to first match. - FindInPageEntry entry = [self entryForListValue:listValues[1]]; - [self.findInPageModel updateIndex:entry.index atPoint:entry.point]; - if (point) - *point = entry.point; - } - } - } - } - return YES; -} - -- (void)processFindInPagePumpResult:(id)result - completionHandler:(void (^)(BOOL, CGPoint))completionHandler { - CGPoint point = CGPointZero; - if ([result isEqual:kFindInPagePending]) { - completionHandler(NO, point); - return; - } - BOOL processFIPResult = - [self processFindInPageResult:result scrollPosition:&point]; - completionHandler(processFIPResult, point); -} - -- (void)updateIndex:(NSInteger)index atPoint:(CGPoint)point { - [self.findInPageModel updateIndex:index atPoint:point]; -} - -- (FindInPageEntry)findInPageEntryForJson:(NSString*)jsonStr { - std::string json = base::SysNSStringToUTF8(jsonStr); - base::Optional<base::Value> root = base::JSONReader::Read(json); - if (!root.has_value()) - return kFindInPageEntryZero; - - if (!root.value().is_list()) - return kFindInPageEntryZero; - - return [self entryForListValue:root.value()]; -} - -- (FindInPageEntry)entryForListValue:(const base::Value&)position { - DCHECK(position.is_list()); - - // Position should always be of length 3, from [index,x,y]. - base::Value::ConstListView positionList = position.GetList(); - if (positionList.size() != 3) - return kFindInPageEntryZero; - - // The array position comes from the JSON string [index, x, y], which - // represents the index of the currently found string, and the x and y - // position necessary to center that string. Pull out that data into a - // FindInPageEntry struct. - - FindInPageEntry entry; - entry.index = positionList[0].is_int() ? positionList[0].GetInt() : 0; - entry.point.x = positionList[1].is_double() ? positionList[1].GetDouble() : 0; - entry.point.y = positionList[2].is_double() ? positionList[2].GetDouble() : 0; - return entry; -} - -#pragma mark - -#pragma mark ProtectedMethods - -- (NSString*)scriptPath { - return @"find_in_page"; -} - -@end
diff --git a/ios/chrome/browser/find_in_page/js_findinpage_manager_unittest.mm b/ios/chrome/browser/find_in_page/js_findinpage_manager_unittest.mm deleted file mode 100644 index f92f9a42..0000000 --- a/ios/chrome/browser/find_in_page/js_findinpage_manager_unittest.mm +++ /dev/null
@@ -1,84 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#import "ios/chrome/browser/find_in_page/js_findinpage_manager.h" - -#import <Foundation/Foundation.h> - -#import "base/test/ios/wait_util.h" -#import "ios/chrome/browser/web/chrome_web_test.h" -#import "ios/web/public/deprecated/crw_js_injection_receiver.h" -#import "ios/web/public/web_state.h" -#import "testing/gtest_mac.h" - -#if !defined(__has_feature) || !__has_feature(objc_arc) -#error "This file requires ARC support." -#endif - -// Test fixture to test Find In Page JS. -class JsFindinpageManagerTest : public ChromeWebTest { - protected: - // Loads the given HTML and initializes the findInPage JS scripts. - void LoadHtml(NSString* html) { - ChromeWebTest::LoadHtml(html); - manager_ = - static_cast<JsFindinpageManager*>([web_state()->GetJSInjectionReceiver() - instanceOfClass:[JsFindinpageManager class]]); - [manager_ inject]; - } - JsFindinpageManager* manager_; -}; - -// Tests that findString script reports a match when appropriate. -TEST_F(JsFindinpageManagerTest, FindInPageSucceeds) { - LoadHtml(@"<html><body><p>Target phrase</p></body></html>"); - __block BOOL completion_handler_block_was_called = NO; - id completion_handler_block = ^(BOOL success, CGPoint scrollPosition) { - ASSERT_TRUE(success); - // 'scrollPosition' is updated if the string is found. - EXPECT_NE(FLT_MAX, scrollPosition.x); - completion_handler_block_was_called = YES; - }; - [manager_ findString:@"Target phrase" - completionHandler:completion_handler_block]; - base::test::ios::WaitUntilCondition(^bool() { - return completion_handler_block_was_called; - }); -} - -// Tests that findString script does not report a match when appropriate. -TEST_F(JsFindinpageManagerTest, FindInPageFails) { - LoadHtml(@"<html><body><p>Target phrase</p></body></html>"); - __block BOOL completion_handler_block_was_called = NO; - id completion_handler_block = ^(BOOL success, CGPoint scrollPosition) { - // findString should return YES even if the target phrase is not found. - ASSERT_TRUE(success); - // 'point' is *not* updated if the string is not found. - EXPECT_TRUE(CGPointEqualToPoint(CGPointZero, scrollPosition)); - completion_handler_block_was_called = YES; - }; - [manager_ findString:@"Non-included phrase" - completionHandler:completion_handler_block]; - base::test::ios::WaitUntilCondition(^bool() { - return completion_handler_block_was_called; - }); -} - -// Attepting to break out of the script and inject new script fails. -TEST_F(JsFindinpageManagerTest, InjectionTest) { - LoadHtml(@"<html><body><p>Target phrase</p></body></html>"); - __block BOOL completion_handler_block_was_called = NO; - id completion_handler_block = ^(BOOL success, CGPoint scrollPosition) { - [manager_ executeJavaScript:@"token" - completionHandler:^(NSString* result, NSError*) { - EXPECT_NSNE(@YES, result); - completion_handler_block_was_called = YES; - }]; - }; - [manager_ findString:@"');token=true;('" - completionHandler:completion_handler_block]; - base::test::ios::WaitUntilCondition(^bool() { - return completion_handler_block_was_called; - }); -}
diff --git a/ios/chrome/browser/find_in_page/resources/find_in_page.js b/ios/chrome/browser/find_in_page/resources/find_in_page.js deleted file mode 100644 index 9a817564..0000000 --- a/ios/chrome/browser/find_in_page/resources/find_in_page.js +++ /dev/null
@@ -1,1001 +0,0 @@ -// Copyright 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -/** - * Based on code from the Google iOS app. - * - * @fileoverview A find in page tool. It can: - * 1. Search for given string in the DOM, and highlight them in yellow color; - * 2. Allow users to navigate through all match results, and highlight the - * selected one in orange color; - */ - -(function() { -/** - * Namespace for this file. - * This overrides the ios/web find in page implementation to ensure there are - * no unintended collisions. - */ -__gCrWeb.findInPage = {}; - -/** - * A string made by concatenating textContent.toLowerCase() of all TEXT nodes - * within current web page. - * @type {string} - */ -let allText_ = ''; - -/** - * A Section contains the info of one TEXT node in the |allText_|. The node's - * textContent is [begin, end) of |allText_|. - */ -class Section { - /** - * @param {number} begin Beginning index of |node|.textContent in |allText_|. - * @param {number} end Ending index of |node|.textContent in |allText_|. - * @param {Node} node The TEXT Node of this section. - */ - constructor(begin, end, node) { - this.begin = begin; - this.end = end; - this.node = node; - } -} - -/** - * All the sections_ in |allText_|. - * @type {Array<Section>} - */ -let sections_ = []; - -/** - * The index of the Section where the last PartialMatch is found. - */ -let sectionsIndex_ = 0; - -/** - * Do binary search in |sections_|[sectionsIndex_, ...) to find the first - * Section S which has S.end > |index|. - * @param {number} index The search target. This should be a valid index of - * |allText_|. - * @return {number} The index of the result in |sections_|. - */ -function findFirstSectionEndsAfter_(index) { - let left = sectionsIndex_; - let right = sections_.length; - while (left < right) { - let mid = Math.floor((left + right) / 2); - if (sections_[mid].end <= index) { - left = mid + 1; - } else { - right = mid; - } - } - return left; -} - -/** - * A Match represents a match result in the document. |this.nodes| stores all - * the <chrome_find> Nodes created for highlighting the matched text. If it - * contains only one Node, it means the match is found within one HTML TEXT - * Node, otherwise the match involves multiple HTML TEXT Nodes. - */ -class Match { - constructor() { - this.nodes = []; - } - - /** - * Returns if all <chrome_find> Nodes of this match are visible. - * @return {Boolean} If the Match is visible. - */ - visible() { - for (let i = 0; i < this.nodes.length; ++i) { - if (!isElementVisible_(this.nodes[i])) - return false; - } - return true; - } - - /** - * Adds orange color highlight for "selected match result", over the yellow - * color highlight for "normal match result". - * @return {undefined} - */ - addSelectHighlight() { - for (let i = 0; i < this.nodes.length; ++i) { - this.nodes[i].className = (this.nodes[i].className || '') + ' findysel'; - } - } - - /** - * Clears the orange color highlight. - * @return {undefined} - */ - removeSelectHighlight() { - for (let i = 0; i < this.nodes.length; ++i) { - this.nodes[i].className = - (this.nodes[i].className || '').replace(/\sfindysel/g, ''); - } - } -} - -/** - * The list of all the matches in current page. - * @type {Array<Match>} - */ -__gCrWeb.findInPage.matches = []; - -/** - * Index of the current highlighted choice. -1 means none. - * @type {number} - */ -__gCrWeb.findInPage.selectedMatchIndex = -1; - -/** - * The ID for the next Match found in |allText_|. This ID is used for - * identifying PartialMatches of the Match, so that when - * |processPartialMatchesInCurrentSection| is called, the <chrome_find> Nodes - * created for each PartialMatch can be recorded in the corresponding Match. - */ -let matchId_ = 0; - -/** - * A part of a Match, within a Section. A Match may cover multiple sections_ in - * |allText_|, so it must be split into multiple PartialMatches and then - * dispatched into the Sections they belong. The range of a PartialMatch in - * |allText_| is [begin, end). Exactly one <chrome_find> will be created for - * each PartialMatch. - */ -class PartialMatch { - /** - * @param {number} matchId ID of the Match to which this PartialMatch belongs. - * @param {number} begin Beginning index of partial match text in |allText_|. - * @param {number} end Ending index of partial match text in |allText_|. - */ - constructor(matchId, begin, end) { - this.matchId = matchId; - this.begin = begin; - this.end = end; - } -} - -/** - * A temporary array used for storing all PartialMatches inside current Section. - * @type {Array<PartialMatch>} - */ -let partialMatches_ = []; - -/** - * A Replacement represents a DOM operation that swaps |oldNode| with |newNodes| - * under the parent of |oldNode| to highlight the match result inside |oldNode|. - * |newNodes| may contain plain TEXT Nodes for unhighlighted parts and - * <chrome_find> nodes for highlighted parts. This operation will be executed - * reversely when clearing current highlights for next FindInPage action. - */ -class Replacement { - /** - * @param {Node} oldNode The HTML Node containing search result. - * @param {Array<Node>} newNodes New HTML Nodes created for substitution of - * |oldNode|. - */ - constructor(oldNode, newNodes) { - this.oldNode = oldNode; - this.newNodes = newNodes; - } - - /** - * Executes the replacement to highlight search result. - * @return {undefined} - */ - doSwap() { - let parentNode = this.oldNode.parentNode; - if (!parentNode) - return; - for (var i = 0; i < this.newNodes.length; ++i) { - parentNode.insertBefore(this.newNodes[i], this.oldNode); - } - parentNode.removeChild(this.oldNode); - } - - /** - * Executes the replacement reversely to clear the highlight. - * @return {undefined} - */ - undoSwap() { - let parentNode = this.newNodes[0].parentNode; - if (!parentNode) - return; - parentNode.insertBefore(this.oldNode, this.newNodes[0]); - for (var i = 0; i < this.newNodes.length; ++i) { - parentNode.removeChild(this.newNodes[i]); - } - } -} - -/** - * The replacements of current FindInPage action. - * @type {Array<Replacement>} - */ -let replacements_ = []; - -/** - * The index of the Replacement from which the highlight process continue when - * pumpSearch is called. - * @type {Number} - */ -let replacementsIndex_ = 0; - -/** - * Process all PartialMatches inside current Section. For current Section's - * node.textContent, all texts that are match results will be wrapped in - * <chrome_find>, and other texts will be put inside plain TEXT Nodes. All - * created Nodes will be stored in the Replacement of current Section, and all - * <chrome_find> Nodes will also be recorded in their belonging Matches. - * |partialMatches_| will be cleared when processing ends. - * @return {undefined} - */ -function processPartialMatchesInCurrentSection() { - if (partialMatches_.length == 0) - return; - let section = sections_[sectionsIndex_]; - let oldNode = section.node; - let newNodes = []; - let previousEnd = section.begin; - for (let i = 0; i < partialMatches_.length; ++i) { - let partialMatch = partialMatches_[i]; - // Create the TEXT node for leading non-matching string piece. Notice that - // substr must be taken from TEXT Node.textContent instead of |allText_| - // since it's in lower case. - if (partialMatch.begin > previousEnd) { - newNodes.push( - oldNode.ownerDocument.createTextNode(oldNode.textContent.substring( - previousEnd - section.begin, - partialMatch.begin - section.begin))); - } - // Create the <chrome_find> Node for matching text. - let newNode = oldNode.ownerDocument.createElement('chrome_find'); - newNode.setAttribute('class', CSS_CLASS_NAME); - newNode.innerHTML = escapeHTML_(oldNode.textContent.substring( - partialMatch.begin - section.begin, partialMatch.end - section.begin)); - newNodes.push(newNode); - previousEnd = partialMatch.end; - - // Record the <chrome_find> Node in corresponding Match. - __gCrWeb.findInPage.matches[partialMatch.matchId].nodes.push(newNode); - } - // Create the TEXT node for trailing non-matching string piece. - if (previousEnd != section.end) { - newNodes.push( - oldNode.ownerDocument.createTextNode(oldNode.textContent.substring( - previousEnd - section.begin, section.end - section.begin))); - } - - // Create the Replacement of current Section. - replacements_.push(new Replacement(oldNode, newNodes)); - - partialMatches_ = []; -} - -/** - * The list of frame documents. - * TODO(crbug.com/895529): x-domain frames won't work. - * @type {Array<Document>} - */ -let frameDocs_ = []; - -/** - * The style DOM element that we add. - * @type {Element} - */ -let styleElement_ = null; - -/** - * Width we expect the page to be. For example (320/480) for iphone, - * (1024/768) for ipad. - * @type {number} - */ -let pageWidth_ = 320; - -/** - * Height we expect the page to be. - * @type {number} - */ -let pageHeight_ = 480; - -/** - * Maximum number of visible elements to count - * @type {number} - */ -const MAX_VISIBLE_ELEMENTS = 100; - -/** - * A search is in progress. - * @type {boolean} - */ -let searchInProgress_ = false; - -/** - * Node names that are not going to be processed. - * @type {Object} - */ -const IGNORE_NODE_NAMES = - new Set(['SCRIPT', 'STYLE', 'EMBED', 'OBJECT', 'SELECT', 'TEXTAREA']); - -/** - * Class name of CSS element. - * @type {string} - */ -const CSS_CLASS_NAME = 'find_in_page'; - -/** - * ID of CSS style. - * @type {string} - */ -const CSS_STYLE_ID = '__gCrWeb.findInPageStyle'; - -/** - * Result passed back to app to indicate no results for the query. - * @type {string} - */ -const NO_RESULTS = '[0,[0,0,0]]'; - -/** - * Result passed back to app to indicate pumpSearch has reached timeout. - * @type {string} - */ -const TIMEOUT = '[false]'; - -/** - * Regex to escape regex special characters in a string. - * @type {RegExp} - */ -const REGEX_ESCAPER = /([.?*+^$[\]\\(){}|-])/g; - -/** - * @return {Match} The currently selected Match. - */ -function getCurrentSelectedMatch_() { - return __gCrWeb.findInPage.matches[__gCrWeb.findInPage.selectedMatchIndex]; -}; - -/** - * Creates the regex needed to find the text. - * @param {string} findText Phrase to look for. - * @return {RegExp} regex needed to find the text. - */ -function getRegex_(findText) { - let regexString = '(' + escapeRegex_(findText) + ')'; - return new RegExp(regexString, 'ig'); -}; - -/** - * A timer that checks timeout for long tasks. - */ -class Timer { - /** - * @param {Number} timeoutMs Timeout in milliseconds. - */ - constructor(timeoutMs) { - this.beginTime = Date.now(); - this.timeoutMs = timeoutMs; - } - - /** - * @return {Boolean} Whether this timer has been reached. - */ - overtime() { - return Date.now() - this.beginTime > this.timeoutMs; - } -} - -/** - * Looks for a phrase in the DOM. - * @param {string} findText Phrase to look for like "ben franklin". - * @param {number} timeout Maximum time to run. - * @return {string} How many results there are in the page in the form of - [highlightedWordsCount, [index, pageLocationX, pageLocationY]]. - */ -__gCrWeb.findInPage.highlightWord = function(findText, timeout) { - if (__gCrWeb.findInPage.matches && __gCrWeb.findInPage.matches.length) { - // Clean up a previous run. - cleanUp_(); - } - if (!findText) { - // No searching for emptyness. - return NO_RESULTS; - } - - // Holds what nodes we have not processed yet. - __gCrWeb.findInPage.stack = []; - - // Push frames into stack too. - for (let i = frameDocs_.length - 1; i >= 0; i--) { - let doc = frameDocs_[i]; - __gCrWeb.findInPage.stack.push(doc); - } - __gCrWeb.findInPage.stack.push(document.body); - - // Number of visible elements found. - __gCrWeb.findInPage.visibleFound = 0; - - // Index tracking variables so search can be broken up into multiple calls. - __gCrWeb.findInPage.visibleIndex = 0; - - __gCrWeb.findInPage.regex = getRegex_(findText); - - searchInProgress_ = true; - - return __gCrWeb.findInPage.pumpSearch(timeout); -}; - -/** - * Do following steps: - * 1. Do a DFS in the page, concatenate all TEXT Nodes' content into - * |allText_|, and create |sections_| to record which part of |allText_| - * belongs to which Node; - * 2. Do regex match in |allText_| to find all matches, create |replacements_| - * for highlighting all results and |__gCrWeb.findInPage.matches| for - * highlighting selected result; - * 3. Execute |replacements_| to highlight all results; - * 4. Check the visibility of each Match; - * 5. Call __gCrWeb.findInPage.goNext. - * - * If |timeout| has been reached, the function will return TIMEOUT, and the - * caller need to call this function again to continue searching. This prevents - * the Js thread from blocking the WebView's UI. - * - * @param {number} timeout Only run find in page until timeout. - * @return {string} string in the form of "[bool, int]", where bool indicates - whether the text was found and int idicates text position. - */ -__gCrWeb.findInPage.pumpSearch = function(timeout) { - // TODO(crbug.com/895531): It would be better if this DCHECKed. - if (searchInProgress_ == false) - return NO_RESULTS; - - let timer = new Timer(timeout); - - // Go through every node in DFS fashion. - while (__gCrWeb.findInPage.stack.length) { - let node = __gCrWeb.findInPage.stack.pop(); - let children = node.childNodes; - if (children && children.length) { - // add all (reasonable) children - for (let i = children.length - 1; i >= 0; --i) { - let child = children[i]; - if ((child.nodeType == 1 || child.nodeType == 3) && - !IGNORE_NODE_NAMES.has(child.nodeName)) { - __gCrWeb.findInPage.stack.push(children[i]); - } - } - } - - // Build up |allText_| and |sections_|. - if (node.nodeType == 3 && node.parentNode) { - sections_.push(new Section( - allText_.length, allText_.length + node.textContent.length, node)); - allText_ += node.textContent.toLowerCase(); - } - - if (timer.overtime()) - return TIMEOUT; - } - - // Do regex match in |allText_|, create |matches| and |replacements|. The - // regex is set on __gCrWeb, so its state is kept between continuous calls on - // pumpSearch. - let regex = __gCrWeb.findInPage.regex; - if (regex) { - for (let res; res = regex.exec(allText_);) { - // The range of current Match in |allText_| is [begin, end). - let begin = res.index; - let end = begin + res[0].length; - __gCrWeb.findInPage.matches.push(new Match()); - - // Find the Section where current Match starts. - let oldSectionIndex = sectionsIndex_; - let newSectionIndex = findFirstSectionEndsAfter_(begin); - // If current Match starts at a new Section, process current Section and - // move to the new Section. - if (newSectionIndex > oldSectionIndex) { - processPartialMatchesInCurrentSection(); - sectionsIndex_ = newSectionIndex; - } - - // Create all PartialMatches of current Match. - while (true) { - let section = sections_[sectionsIndex_]; - partialMatches_.push(new PartialMatch( - matchId_, Math.max(section.begin, begin), - Math.min(section.end, end))); - // If current Match.end exceeds current Section.end, process current - // Section and move to next Section. - if (section.end < end) { - processPartialMatchesInCurrentSection(); - ++sectionsIndex_; - } else { - // Current Match ends in current Section. - break; - } - } - ++matchId_; - - if (timer.overtime()) - return TIMEOUT; - } - // Process remaining PartialMatches. - processPartialMatchesInCurrentSection(); - __gCrWeb.findInPage.regex = undefined; - } - - // Execute replacements to highlight search results. - for (let i = replacementsIndex_; i < replacements_.length; ++i) { - if (timer.overtime()) { - replacementsIndex_ = i; - return TIMEOUT; - } - replacements_[i].doSwap(); - } - - // Count visible elements. - let max = __gCrWeb.findInPage.matches.length; - let maxVisible = MAX_VISIBLE_ELEMENTS; - for (let index = __gCrWeb.findInPage.visibleIndex; index < max; index++) { - let match = __gCrWeb.findInPage.matches[index]; - if (timer.overtime()) { - __gCrWeb.findInPage.visibleIndex = index; - return TIMEOUT; - } - - // Stop after |maxVisible| elements. - if (__gCrWeb.findInPage.visibleFound > maxVisible) { - match.visibleIndex = maxVisible; - continue; - } - - if (match.visible()) { - __gCrWeb.findInPage.visibleFound++; - match.visibleIndex = __gCrWeb.findInPage.visibleFound; - } - } - - searchInProgress_ = false; - - let pos = __gCrWeb.findInPage.goNext(); - if (pos) { - return '[' + __gCrWeb.findInPage.visibleFound + ',' + pos + ']'; - } else { - return NO_RESULTS; - } -}; - -/** - * Removes highlights of previous search and reset all global vars. - * @return {undefined} - */ -function cleanUp_() { - for (let i = 0; i < replacements_.length; ++i) { - replacements_[i].undoSwap(); - } - - allText_ = ''; - sections_ = []; - sectionsIndex_ = 0; - - __gCrWeb.findInPage.matches = []; - __gCrWeb.findInPage.selectedMatchIndex = -1; - matchId_ = 0; - partialMatches_ = []; - - replacements_ = []; - replacementsIndex_ = 0; -}; - -/** - * Increments the index of the current selected Match or, if the index is - * already at the end, sets it to the index of the first Match in the page. - */ -__gCrWeb.findInPage.incrementIndex = function() { - if (__gCrWeb.findInPage.selectedMatchIndex >= - __gCrWeb.findInPage.matches.length - 1) { - __gCrWeb.findInPage.selectedMatchIndex = 0; - } else { - __gCrWeb.findInPage.selectedMatchIndex++; - } -}; - -/** - * Switches to the next result, animating a little highlight in the process. - * @return {string} JSON encoded array of coordinates to scroll to, or blank if - * nothing happened. - */ -__gCrWeb.findInPage.goNext = function() { - if (!__gCrWeb.findInPage.matches || __gCrWeb.findInPage.matches.length == 0) { - return ''; - } - if (__gCrWeb.findInPage.selectedMatchIndex >= 0) { - // Remove previous highlight. - getCurrentSelectedMatch_().removeSelectHighlight(); - } - // Iterate through to the next index, but because they might not be visible, - // keep trying until you find one that is. Make sure we don't loop forever by - // stopping on what we are currently highlighting. - let oldIndex = __gCrWeb.findInPage.selectedMatchIndex; - __gCrWeb.findInPage.incrementIndex(); - while (!getCurrentSelectedMatch_().visible()) { - if (oldIndex === __gCrWeb.findInPage.selectedMatchIndex) { - // Checked all matches but didn't find anything else visible. - return ''; - } - __gCrWeb.findInPage.incrementIndex(); - if (0 === __gCrWeb.findInPage.selectedMatchIndex && oldIndex < 0) { - // Didn't find anything visible and haven't highlighted anything yet. - return ''; - } - } - // Return scroll dimensions. - return findScrollDimensions_(); -}; - -/** - * Decrements the index of the current selected Match or, if the index is - * already at the beginning, sets it to the index of the last Match in the page. - */ -__gCrWeb.findInPage.decrementIndex = function() { - if (__gCrWeb.findInPage.selectedMatchIndex <= 0) { - __gCrWeb.findInPage.selectedMatchIndex = - __gCrWeb.findInPage.matches.length - 1; - } else { - __gCrWeb.findInPage.selectedMatchIndex--; - } -}; - -/** - * Switches to the previous result, animating a little highlight in the process. - * @return {string} JSON encoded array of coordinates to scroll to, or blank if - * nothing happened. - */ -__gCrWeb.findInPage.goPrev = function() { - if (!__gCrWeb.findInPage.matches || __gCrWeb.findInPage.matches.length == 0) { - return ''; - } - if (__gCrWeb.findInPage.selectedMatchIndex >= 0) { - // Remove previous highlight. - getCurrentSelectedMatch_().removeSelectHighlight(); - } - // Iterate through to the next index, but because they might not be visible, - // keep trying until you find one that is. Make sure we don't loop forever by - // stopping on what we are currently highlighting. - let old = __gCrWeb.findInPage.selectedMatchIndex; - __gCrWeb.findInPage.decrementIndex(); - while (!getCurrentSelectedMatch_().visible()) { - __gCrWeb.findInPage.decrementIndex(); - if (old == __gCrWeb.findInPage.selectedMatchIndex) { - // Checked all matches but didn't find anything. - return ''; - } - } - - // Return scroll dimensions. - return findScrollDimensions_(); -}; - -/** - * Normalize coordinates according to the current document dimensions. Don't go - * too far off the screen in either direction. Try to center if possible. - * @param {Element} elem Element to find normalized coordinates for. - * @return {Array<number>} Normalized coordinates. - */ -function getNormalizedCoordinates_(elem) { - let pos = findAbsolutePosition_(elem); - let maxX = Math.max(getBodyWidth_(), pos[0] + elem.offsetWidth); - let maxY = Math.max(getBodyHeight_(), pos[1] + elem.offsetHeight); - // Don't go too far off the screen in either direction. Try to center if - // possible. - let xPos = Math.max( - 0, Math.min(maxX - window.innerWidth, pos[0] - (window.innerWidth / 2))); - let yPos = Math.max( - 0, - Math.min(maxY - window.innerHeight, pos[1] - (window.innerHeight / 2))); - return [xPos, yPos]; -}; - -/** - * Scale coordinates according to the width of the screen, in case the screen - * is zoomed out. - * @param {Array<number>} coordinates Coordinates to scale. - * @return {Array<number>} Scaled coordinates. - */ -function scaleCoordinates_(coordinates) { - let scaleFactor = pageWidth_ / window.innerWidth; - return [coordinates[0] * scaleFactor, coordinates[1] * scaleFactor]; -}; - -/** - * Finds the position of the result. - * @return {string} JSON encoded array of the scroll coordinates "[x, y]". - */ -function findScrollDimensions_() { - let match = getCurrentSelectedMatch_(); - if (!match) { - return ''; - } - let normalized = getNormalizedCoordinates_(match.nodes[0]); - let xPos = normalized[0]; - let yPos = normalized[1]; - - match.addSelectHighlight(); - let scaled = scaleCoordinates_(normalized); - let index = match.visibleIndex; - scaled.unshift(index); - return __gCrWeb.stringify(scaled); -}; - -/** - * Initialize the __gCrWeb.findInPage module. - * @param {number} width Width of page. - * @param {number} height Height of page. - - */ -__gCrWeb.findInPage.init = function(width, height) { - if (__gCrWeb.findInPage.hasInitialized) { - return; - } - pageWidth_ = width; - pageHeight_ = height; - frameDocs_ = getFrameDocuments_(); - enable_(); - __gCrWeb.findInPage.hasInitialized = true; -}; - -/** - * Enable the __gCrWeb.findInPage module. - * Mainly just adds the style for the classes. - */ -function enable_() { - if (styleElement_) { - // Already enabled. - return; - } - addStyle_(); -}; - -/** - * Gets the scale ratio between the application window and the web document. - * @return {number} Scale. - */ -function getPageScale_() { - return (pageWidth_ / getBodyWidth_()); -}; - -/** - * Adds the appropriate style element to the page. - */ -function addStyle_() { - addDocumentStyle_(document); - for (let i = frameDocs_.length - 1; i >= 0; i--) { - let doc = frameDocs_[i]; - addDocumentStyle_(doc); - } -}; - -function addDocumentStyle_(thisDocument) { - let styleContent = []; - function addCSSRule(name, style) { - styleContent.push(name, '{', style, '}'); - }; - let scale = getPageScale_(); - let zoom = (1.0 / scale); - let left = ((1 - scale) / 2 * 100); - addCSSRule( - '.' + CSS_CLASS_NAME, - 'background-color:#ffff00 !important;' + - 'padding:0px;margin:0px;' + - 'overflow:visible !important;'); - addCSSRule( - '.findysel', - 'background-color:#ff9632 !important;' + - 'padding:0px;margin:0px;' + - 'overflow:visible !important;'); - styleElement_ = thisDocument.createElement('style'); - styleElement_.id = CSS_STYLE_ID; - styleElement_.setAttribute('type', 'text/css'); - styleElement_.appendChild(thisDocument.createTextNode(styleContent.join(''))); - thisDocument.body.appendChild(styleElement_); -}; - -/** - * Removes the style element from the page. - */ -function removeStyle_() { - if (styleElement_) { - removeDocumentStyle_(document); - for (let i = frameDocs_.length - 1; i >= 0; i--) { - let doc = frameDocs_[i]; - removeDocumentStyle_(doc); - } - styleElement_ = null; - } -}; - -function removeDocumentStyle_(thisDocument) { - let style = thisDocument.getElementById(CSS_STYLE_ID); - thisDocument.body.removeChild(style); -}; - -/** - * Disables the __gCrWeb.findInPage module. - * Basically just removes the style and class names. - */ -__gCrWeb.findInPage.disable = function() { - if (styleElement_) { - removeStyle_(); - window.setTimeout(cleanUp_, 0); - } - __gCrWeb.findInPage.hasInitialized = false; -}; - -/** - * Returns the width of the document.body. Sometimes though the body lies to - * try to make the page not break rails, so attempt to find those as well. - * An example: wikipedia pages for the ipad. - * @return {number} Width of the document body. - */ -function getBodyWidth_() { - let body = document.body; - let documentElement = document.documentElement; - return Math.max( - body.scrollWidth, documentElement.scrollWidth, body.offsetWidth, - documentElement.offsetWidth, body.clientWidth, - documentElement.clientWidth); -}; - -/** - * Returns the height of the document.body. Sometimes though the body lies to - * try to make the page not break rails, so attempt to find those as well. - * An example: wikipedia pages for the ipad. - * @return {number} Height of the document body. - */ -function getBodyHeight_() { - let body = document.body; - let documentElement = document.documentElement; - return Math.max( - body.scrollHeight, documentElement.scrollHeight, body.offsetHeight, - documentElement.offsetHeight, body.clientHeight, - documentElement.clientHeight); -}; - -/** - * Helper function that determines if an element is visible. - * @param {Element} elem Element to check. - * @return {boolean} Whether elem is visible or not. - */ -function isElementVisible_(elem) { - if (!elem) { - return false; - } - let top = 0; - let left = 0; - let bottom = Infinity; - let right = Infinity; - - let originalElement = elem; - let nextOffsetParent = originalElement.offsetParent; - - // We are currently handling all scrolling through the app, which means we can - // only scroll the window, not any scrollable containers in the DOM itself. So - // for now this function returns false if the element is scrolled outside the - // viewable area of its ancestors. - // TODO(crbug.com/915357): handle scrolling within the DOM. - let bodyHeight = getBodyHeight_(); - let bodyWidth = getBodyWidth_(); - - while (elem && elem.nodeName.toUpperCase() != 'BODY') { - let computedStyle = - elem.ownerDocument.defaultView.getComputedStyle(elem, null); - - if (elem.style.display === 'none' || elem.style.visibility === 'hidden' || - elem.style.opacity === 0 || computedStyle.display === 'none' || - computedStyle.visibility === 'hidden' || computedStyle.opacity === 0) { - return false; - } - - // For the original element and all ancestor offsetParents, trim down the - // visible area of the original element. - if (elem.isSameNode(originalElement) || elem.isSameNode(nextOffsetParent)) { - let visible = elem.getBoundingClientRect(); - if (elem.style.overflow === 'hidden' && - (visible.width === 0 || visible.height === 0)) - return false; - - top = Math.max(top, visible.top + window.pageYOffset); - bottom = Math.min(bottom, visible.bottom + window.pageYOffset); - left = Math.max(left, visible.left + window.pageXOffset); - right = Math.min(right, visible.right + window.pageXOffset); - - // The element is not within the original viewport. - let notWithinViewport = top < 0 || left < 0; - - // The element is flowing off the boundary of the page. Note this is - // not comparing to the size of the window, but the calculated offset - // size of the document body. This can happen if the element is within - // a scrollable container in the page. - let offPage = right > bodyWidth || bottom > bodyHeight; - if (notWithinViewport || offPage) { - return false; - } - nextOffsetParent = elem.offsetParent; - } - - elem = elem.parentNode; - } - return true; -}; - -/** - * Helper function to find the absolute position of an element on the page. - * @param {Element} elem Element to check. - * @return {Array<number>} [x, y] positions. - */ -function findAbsolutePosition_(elem) { - let boundingRect = elem.getBoundingClientRect(); - return [ - boundingRect.left + window.pageXOffset, - boundingRect.top + window.pageYOffset - ]; -}; - -/** - * @param {string} text Text to escape. - * @return {string} escaped text. - */ -function escapeHTML_(text) { - let unusedDiv = document.createElement('div'); - unusedDiv.innerText = text; - return unusedDiv.innerHTML; -}; - -/** - * Escapes regexp special characters. - * @param {string} text Text to escape. - * @return {string} escaped text. - */ -function escapeRegex_(text) { - return text.replace(REGEX_ESCAPER, '\\$1'); -}; - -/** - * Gather all iframes in the main window. - * @return {Array<Document>} frames. - */ -function getFrameDocuments_() { - let windowsToSearch = [window]; - let documents = []; - while (windowsToSearch.length != 0) { - let win = windowsToSearch.pop(); - for (let i = win.frames.length - 1; i >= 0; i--) { - // The following try/catch catches a webkit error when searching a page - // with iframes. See crbug.com/702566 for details. - // To verify that this is still necessary: - // 1. Remove this try/catch. - // 2. Go to a page with iframes. - // 3. Search for anything. - // 4. Check if the webkit debugger spits out SecurityError (DOM Exception) - // and the search fails. If it doesn't, feel free to remove this. - try { - if (win.frames[i].document) { - documents.push(win.frames[i].document); - windowsToSearch.push(win.frames[i]); - } - } catch (e) { - // Do nothing. - } - } - } - return documents; -}; - -window.addEventListener('pagehide', __gCrWeb.findInPage.disable); -})();
diff --git a/ios/chrome/browser/metrics/BUILD.gn b/ios/chrome/browser/metrics/BUILD.gn index cfa7702d..744a649 100644 --- a/ios/chrome/browser/metrics/BUILD.gn +++ b/ios/chrome/browser/metrics/BUILD.gn
@@ -21,6 +21,8 @@ source_set("metrics") { configs += [ "//build/config/compiler:enable_arc" ] sources = [ + "incognito_usage_app_state_agent.h", + "incognito_usage_app_state_agent.mm", "incognito_web_state_observer.h", "incognito_web_state_observer.mm", "ios_chrome_default_browser_metrics_provider.h", @@ -70,6 +72,7 @@ "//components/variations", "//components/variations/service", "//components/version_info", + "//ios/chrome/app/application_delegate:app_state_header", "//ios/chrome/browser", "//ios/chrome/browser/browser_state", "//ios/chrome/browser/crash_report", @@ -82,6 +85,7 @@ "//ios/chrome/browser/sync", "//ios/chrome/browser/tabs", "//ios/chrome/browser/translate", + "//ios/chrome/browser/ui/main:scene_state_header", "//ios/chrome/browser/ui/overscroll_actions", "//ios/chrome/browser/ui/util:multiwindow_util", "//ios/chrome/browser/ui/whats_new:utils", @@ -102,6 +106,7 @@ testonly = true sources = [ "chrome_browser_state_client_unittest.mm", + "incognito_usage_app_state_agent_unittest.mm", "ios_chrome_default_browser_metrics_provider_unittest.mm", "ios_chrome_metrics_service_accessor_unittest.cc", "ios_chrome_metrics_service_client_unittest.mm", @@ -124,8 +129,10 @@ "//components/ukm", "//components/ukm:test_support", "//components/version_info", + "//ios/chrome/app/application_delegate:app_state_header", "//ios/chrome/browser", "//ios/chrome/browser/browser_state:test_support", + "//ios/chrome/browser/ui/main:scene_state_header", "//ios/chrome/browser/ui/whats_new:utils", "//ios/chrome/browser/web:test_support", "//ios/chrome/test:test_support", @@ -135,6 +142,7 @@ "//ios/web/public/test/fakes", "//net:test_support", "//testing/gtest", + "//third_party/ocmock", ] }
diff --git a/ios/chrome/browser/metrics/incognito_usage_app_state_agent.h b/ios/chrome/browser/metrics/incognito_usage_app_state_agent.h new file mode 100644 index 0000000..a7ee5ea --- /dev/null +++ b/ios/chrome/browser/metrics/incognito_usage_app_state_agent.h
@@ -0,0 +1,15 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_METRICS_INCOGNITO_USAGE_APP_STATE_AGENT_H_ +#define IOS_CHROME_BROWSER_METRICS_INCOGNITO_USAGE_APP_STATE_AGENT_H_ + +#import "ios/chrome/app/application_delegate/app_state_agent.h" + +// The agent that logs the length of continuous usage of incognito. +// Any normal/incognito transition lasting less than 10 seconds will be ignored. +@interface IncognitoUsageAppStateAgent : NSObject <AppStateAgent> +@end + +#endif // IOS_CHROME_BROWSER_METRICS_INCOGNITO_USAGE_APP_STATE_AGENT_H_
diff --git a/ios/chrome/browser/metrics/incognito_usage_app_state_agent.mm b/ios/chrome/browser/metrics/incognito_usage_app_state_agent.mm new file mode 100644 index 0000000..ae1cf28 --- /dev/null +++ b/ios/chrome/browser/metrics/incognito_usage_app_state_agent.mm
@@ -0,0 +1,153 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/chrome/browser/metrics/incognito_usage_app_state_agent.h" + +#include "base/metrics/histogram_functions.h" +#include "base/time/time.h" +#import "ios/chrome/app/application_delegate/app_state.h" +#import "ios/chrome/browser/ui/main/scene_state.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +namespace { +// Minimum amount of time for a normal/incognito transition to be considered. +const int kMinimumDelayInSeconds = 10; +} + +@interface IncognitoUsageAppStateAgent () <AppStateObserver, SceneStateObserver> + +// Observed app state. +@property(nonatomic, weak) AppState* appState; + +@property(nonatomic, assign) BOOL incognitoContentVisible; + +@property(nonatomic, assign) base::TimeTicks incognitoUsageStart; +@property(nonatomic, assign) base::TimeTicks incognitoUsageEnd; + +@end + +@implementation IncognitoUsageAppStateAgent + +- (instancetype)init { + self = [super init]; + if (self) { + [NSNotificationCenter.defaultCenter + addObserver:self + selector:@selector(applicationWillTerminate) + name:UIApplicationWillTerminateNotification + object:nil]; + } + return self; +} + +- (BOOL)checkIncognitoContentVisible { + for (SceneState* scene in self.appState.connectedScenes) { + if (scene.incognitoContentVisible && + scene.activationLevel >= SceneActivationLevelForegroundInactive) { + return YES; + } + } + return NO; +} + +- (void)reportIncognitoUsageTime { + DCHECK(!self.incognitoUsageStart.is_null()); + DCHECK(!self.incognitoUsageEnd.is_null()); + base::TimeDelta duration = self.incognitoUsageEnd - self.incognitoUsageStart; + if (duration.InSecondsF() < kMinimumDelayInSeconds) { + return; + } + base::UmaHistogramCustomTimes( + "IOS.Incognito.TimeSpent", duration, base::TimeDelta::FromSeconds(1), + base::TimeDelta::FromSeconds(86400 /* secs per day */), 50); + self.incognitoUsageStart = base::TimeTicks(); + self.incognitoUsageEnd = base::TimeTicks(); +} + +- (void)updateIncognitoContentVisible { + BOOL incognitoContentVisible = [self checkIncognitoContentVisible]; + if (self.incognitoContentVisible == incognitoContentVisible) { + return; + } + + self.incognitoContentVisible = incognitoContentVisible; + if (incognitoContentVisible) { + base::TimeTicks now = base::TimeTicks::Now(); + if (!self.incognitoUsageEnd.is_null() && + (now - self.incognitoUsageEnd).InSecondsF() < kMinimumDelayInSeconds) { + // The pausing of incognito is too short, resume session. + self.incognitoUsageEnd = base::TimeTicks(); + } else { + // Incognito has been paused for a long time. This is a new session. + if (!self.incognitoUsageEnd.is_null() && + !self.incognitoUsageStart.is_null() && + (self.incognitoUsageEnd - self.incognitoUsageStart).InSecondsF() >= + kMinimumDelayInSeconds) { + // There was a previous session to report. + [self reportIncognitoUsageTime]; + } + self.incognitoUsageStart = base::TimeTicks::Now(); + } + } else { + base::TimeTicks now = base::TimeTicks::Now(); + if (!self.incognitoUsageStart.is_null() && + (now - self.incognitoUsageStart).InSecondsF() >= + kMinimumDelayInSeconds) { + self.incognitoUsageEnd = now; + } else { + // This incognito session was too short. + self.incognitoUsageStart = base::TimeTicks(); + } + } +} + +- (void)applicationWillTerminate { + if (self.incognitoContentVisible) { + self.incognitoUsageEnd = base::TimeTicks::Now(); + } + if (!self.incognitoUsageEnd.is_null() && + !self.incognitoUsageStart.is_null() && + (self.incognitoUsageEnd - self.incognitoUsageStart).InSecondsF() >= + kMinimumDelayInSeconds) { + [self reportIncognitoUsageTime]; + } +} + +#pragma mark - AppStateAgent + +- (void)setAppState:(AppState*)appState { + // This should only be called once! + DCHECK(!_appState); + + _appState = appState; + [appState addObserver:self]; +} + +#pragma mark - AppStateObserver + +- (void)appState:(AppState*)appState sceneConnected:(SceneState*)sceneState { + [sceneState addObserver:self]; + [self updateIncognitoContentVisible]; +} + +#pragma mark - SceneStateObserver + +- (void)sceneState:(SceneState*)sceneState + transitionedToActivationLevel:(SceneActivationLevel)level { + if (sceneState.incognitoContentVisible) { + [self updateIncognitoContentVisible]; + } +} + +- (void)sceneState:(SceneState*)sceneState + isDisplayingIncognitoContent:(BOOL)level { + if (sceneState.activationLevel >= SceneActivationLevelForegroundInactive) { + [self updateIncognitoContentVisible]; + } +} + +@end
diff --git a/ios/chrome/browser/metrics/incognito_usage_app_state_agent_unittest.mm b/ios/chrome/browser/metrics/incognito_usage_app_state_agent_unittest.mm new file mode 100644 index 0000000..9d1985b --- /dev/null +++ b/ios/chrome/browser/metrics/incognito_usage_app_state_agent_unittest.mm
@@ -0,0 +1,296 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/chrome/browser/metrics/incognito_usage_app_state_agent.h" + +#include "base/test/metrics/histogram_tester.h" +#include "base/test/scoped_mock_clock_override.h" +#import "ios/chrome/app/application_delegate/app_state.h" +#import "ios/chrome/browser/ui/main/scene_state.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "testing/gtest_mac.h" +#include "testing/platform_test.h" +#import "third_party/ocmock/OCMock/OCMock.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +@interface IncognitoUsageAppStateAgent (Testing) <AppStateObserver, + SceneStateObserver> +- (void)applicationWillTerminate; +@property(nonatomic, assign) BOOL incognitoContentVisible; +@end + +class IncognitoUsageAppStateAgentTest : public PlatformTest { + public: + void AdvanceClock(const base::TimeDelta& delay) { + scoped_clock_.Advance(delay); + } + + void SetScene1ActivationLevel(SceneActivationLevel activation_level) { + scene1_activation_level_ = activation_level; + [incognito_agent_ sceneState:mock_scene_state1_ + transitionedToActivationLevel:activation_level]; + } + + void SetScene2ActivationLevel(SceneActivationLevel activation_level) { + scene2_activation_level_ = activation_level; + [incognito_agent_ sceneState:mock_scene_state2_ + transitionedToActivationLevel:activation_level]; + } + + void SetScene1DisplaysIncognito(BOOL displays_incognito) { + scene1_displays_incognito_ = displays_incognito; + [incognito_agent_ sceneState:mock_scene_state1_ + isDisplayingIncognitoContent:displays_incognito]; + } + void SetScene2DisplaysIncognito(BOOL displays_incognito) { + scene2_displays_incognito_ = displays_incognito; + [incognito_agent_ sceneState:mock_scene_state2_ + isDisplayingIncognitoContent:displays_incognito]; + } + + protected: + void SetUp() override { + PlatformTest::SetUp(); + incognito_agent_ = [[IncognitoUsageAppStateAgent alloc] init]; + mock_app_state_ = OCMClassMock([AppState class]); + mock_scene_state1_ = OCMClassMock([SceneState class]); + mock_scene_state2_ = OCMClassMock([SceneState class]); + + NSArray* connected_scenes = @[ mock_scene_state1_, mock_scene_state2_ ]; + OCMStub([mock_app_state_ connectedScenes]).andReturn(connected_scenes); + [incognito_agent_ setAppState:mock_app_state_]; + + OCMStub([mock_scene_state1_ incognitoContentVisible]) + .andDo(^(NSInvocation* invocation) { + [invocation setReturnValue:&scene1_displays_incognito_]; + }); + OCMStub([mock_scene_state2_ incognitoContentVisible]) + .andDo(^(NSInvocation* invocation) { + [invocation setReturnValue:&scene2_displays_incognito_]; + }); + OCMStub([mock_scene_state1_ activationLevel]) + .andDo(^(NSInvocation* invocation) { + [invocation setReturnValue:&scene1_activation_level_]; + }); + OCMStub([mock_scene_state2_ activationLevel]) + .andDo(^(NSInvocation* invocation) { + [invocation setReturnValue:&scene2_activation_level_]; + }); + [incognito_agent_ appState:mock_app_state_ + sceneConnected:mock_scene_state1_]; + [incognito_agent_ appState:mock_app_state_ + sceneConnected:mock_scene_state2_]; + } + + base::HistogramTester histogram_tester_; + base::ScopedMockClockOverride scoped_clock_; + IncognitoUsageAppStateAgent* incognito_agent_; + id mock_app_state_; + id mock_scene_state1_; + id mock_scene_state2_; + __block BOOL scene1_displays_incognito_ = NO; + __block BOOL scene2_displays_incognito_ = NO; + __block SceneActivationLevel scene1_activation_level_ = + SceneActivationLevelBackground; + __block SceneActivationLevel scene2_activation_level_ = + SceneActivationLevelBackground; +}; + +// Tests metrics that a session of 1 minute is recorded +TEST_F(IncognitoUsageAppStateAgentTest, NormalIncognitoSession) { + // One scene Foregrounded, no Incognito + SetScene1ActivationLevel(SceneActivationLevelForegroundActive); + + EXPECT_FALSE(incognito_agent_.incognitoContentVisible); + histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0); + + AdvanceClock(base::TimeDelta::FromMinutes(1)); + + // Display one incognito for 1 minute + SetScene1DisplaysIncognito(YES); + EXPECT_TRUE(incognito_agent_.incognitoContentVisible); + histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0); + AdvanceClock(base::TimeDelta::FromMinutes(1)); + + // Back to normal + SetScene1DisplaysIncognito(NO); + EXPECT_FALSE(incognito_agent_.incognitoContentVisible); + // Metrics is still not logged. + histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0); + + // Back to incognito + AdvanceClock(base::TimeDelta::FromMinutes(1)); + SetScene1DisplaysIncognito(YES); + EXPECT_TRUE(incognito_agent_.incognitoContentVisible); + // Metrics from previous time should be logged. + histogram_tester_.ExpectUniqueTimeSample("IOS.Incognito.TimeSpent", + base::TimeDelta::FromMinutes(1), 1); +} + +// Tests metrics that a session of 5 seconds is not recorded +TEST_F(IncognitoUsageAppStateAgentTest, ShortIncognitoSession) { + // One scene Foregrounded, no Incognito + SetScene1ActivationLevel(SceneActivationLevelForegroundActive); + + EXPECT_FALSE(incognito_agent_.incognitoContentVisible); + histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0); + + AdvanceClock(base::TimeDelta::FromMinutes(1)); + + // Display one incognito for 5 seconds + SetScene1DisplaysIncognito(YES); + EXPECT_TRUE(incognito_agent_.incognitoContentVisible); + histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0); + AdvanceClock(base::TimeDelta::FromSeconds(5)); + + // Back to normal + SetScene1DisplaysIncognito(NO); + EXPECT_FALSE(incognito_agent_.incognitoContentVisible); + // Metrics is still not logged. + histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0); + + // Back to incognito + AdvanceClock(base::TimeDelta::FromMinutes(1)); + SetScene1DisplaysIncognito(YES); + EXPECT_TRUE(incognito_agent_.incognitoContentVisible); + // Metrics from previous time should not be logged. + histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0); +} + +// Tests metrics that a short interruption of 5 seconds is not recorded. +TEST_F(IncognitoUsageAppStateAgentTest, ShortNormalSession) { + // One scene Foregrounded, no Incognito + SetScene1ActivationLevel(SceneActivationLevelForegroundActive); + + EXPECT_FALSE(incognito_agent_.incognitoContentVisible); + histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0); + + AdvanceClock(base::TimeDelta::FromMinutes(1)); + + // Display one incognito for 1 minute + SetScene1DisplaysIncognito(YES); + EXPECT_TRUE(incognito_agent_.incognitoContentVisible); + histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0); + AdvanceClock(base::TimeDelta::FromMinutes(1)); + + // Back to normal + SetScene1DisplaysIncognito(NO); + EXPECT_FALSE(incognito_agent_.incognitoContentVisible); + // Metrics is still not logged. + histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0); + + // Back to incognito + AdvanceClock(base::TimeDelta::FromSeconds(5)); + SetScene1DisplaysIncognito(YES); + EXPECT_TRUE(incognito_agent_.incognitoContentVisible); + // Nothing logged yet + histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0); + + AdvanceClock(base::TimeDelta::FromSeconds(55)); + SetScene1DisplaysIncognito(NO); + EXPECT_FALSE(incognito_agent_.incognitoContentVisible); + // Metrics is still not logged. + histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0); + + AdvanceClock(base::TimeDelta::FromMinutes(1)); + SetScene1DisplaysIncognito(YES); + EXPECT_TRUE(incognito_agent_.incognitoContentVisible); + // Metrics from previous time should be logged. + histogram_tester_.ExpectUniqueTimeSample("IOS.Incognito.TimeSpent", + base::TimeDelta::FromMinutes(2), 1); +} + +// Tests metrics that the current incognito life time is reported. +TEST_F(IncognitoUsageAppStateAgentTest, ApplicationTerminatesInIncognito) { + // One scene Foregrounded, no Incognito + SetScene1ActivationLevel(SceneActivationLevelForegroundActive); + + EXPECT_FALSE(incognito_agent_.incognitoContentVisible); + histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0); + + AdvanceClock(base::TimeDelta::FromMinutes(1)); + // Display one incognito for 1 minute + SetScene1DisplaysIncognito(YES); + EXPECT_TRUE(incognito_agent_.incognitoContentVisible); + histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0); + AdvanceClock(base::TimeDelta::FromMinutes(1)); + + [incognito_agent_ applicationWillTerminate]; + // Metrics from previous time should be logged. + histogram_tester_.ExpectUniqueTimeSample("IOS.Incognito.TimeSpent", + base::TimeDelta::FromMinutes(1), 1); +} + +// Tests metrics that the last incognito life time is reported. +TEST_F(IncognitoUsageAppStateAgentTest, ApplicationTerminatesInNormal) { + // One scene Foregrounded, no Incognito + SetScene1ActivationLevel(SceneActivationLevelForegroundActive); + + EXPECT_FALSE(incognito_agent_.incognitoContentVisible); + histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0); + + AdvanceClock(base::TimeDelta::FromMinutes(1)); + // Display one incognito for 1 minute + SetScene1DisplaysIncognito(YES); + EXPECT_TRUE(incognito_agent_.incognitoContentVisible); + histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0); + AdvanceClock(base::TimeDelta::FromMinutes(1)); + SetScene1DisplaysIncognito(NO); + EXPECT_FALSE(incognito_agent_.incognitoContentVisible); + histogram_tester_.ExpectTotalCount("IOS.Incognito.TimeSpent", 0); + + [incognito_agent_ applicationWillTerminate]; + // Metrics from previous time should be logged. + histogram_tester_.ExpectUniqueTimeSample("IOS.Incognito.TimeSpent", + base::TimeDelta::FromMinutes(1), 1); +} + +// Tests incognitoContentVisible in various scenarios. +TEST_F(IncognitoUsageAppStateAgentTest, IncognitoContentVisibleValue) { + // Two scenes background normal. + EXPECT_FALSE(incognito_agent_.incognitoContentVisible); + + // Incognito in background. + SetScene1DisplaysIncognito(YES); + EXPECT_FALSE(incognito_agent_.incognitoContentVisible); + + // Foreground incognito + SetScene1ActivationLevel(SceneActivationLevelForegroundActive); + EXPECT_TRUE(incognito_agent_.incognitoContentVisible); + + // Background it + SetScene1ActivationLevel(SceneActivationLevelBackground); + EXPECT_FALSE(incognito_agent_.incognitoContentVisible); + + // Foreground incognito + SetScene1ActivationLevel(SceneActivationLevelForegroundActive); + EXPECT_TRUE(incognito_agent_.incognitoContentVisible); + + // Switch to normal + SetScene1DisplaysIncognito(NO); + EXPECT_FALSE(incognito_agent_.incognitoContentVisible); + + // Foreground second scene + SetScene2ActivationLevel(SceneActivationLevelForegroundActive); + EXPECT_FALSE(incognito_agent_.incognitoContentVisible); + + // Incognito in foreground. + SetScene1DisplaysIncognito(YES); + EXPECT_TRUE(incognito_agent_.incognitoContentVisible); + + // Second Incognito in foreground. + SetScene2DisplaysIncognito(YES); + EXPECT_TRUE(incognito_agent_.incognitoContentVisible); + + // Background 1 + SetScene1ActivationLevel(SceneActivationLevelBackground); + EXPECT_TRUE(incognito_agent_.incognitoContentVisible); + + // Switch the other to normal. + SetScene2DisplaysIncognito(NO); + EXPECT_FALSE(incognito_agent_.incognitoContentVisible); +}
diff --git a/ios/chrome/browser/ui/main/scene_state.mm b/ios/chrome/browser/ui/main/scene_state.mm index 4b0b747..1963ba83 100644 --- a/ios/chrome/browser/ui/main/scene_state.mm +++ b/ios/chrome/browser/ui/main/scene_state.mm
@@ -156,6 +156,15 @@ } } +- (void)setIncognitoContentVisible:(BOOL)incognitoContentVisible { + if (incognitoContentVisible == _incognitoContentVisible) { + return; + } + _incognitoContentVisible = incognitoContentVisible; + [self.observers sceneState:self + isDisplayingIncognitoContent:incognitoContentVisible]; +} + - (void)setPendingUserActivity:(NSUserActivity*)pendingUserActivity { _pendingUserActivity = pendingUserActivity; [self.observers sceneState:self receivedUserActivity:pendingUserActivity];
diff --git a/ios/chrome/browser/ui/main/scene_state_observer.h b/ios/chrome/browser/ui/main/scene_state_observer.h index 9bb1621..c0f4d61 100644 --- a/ios/chrome/browser/ui/main/scene_state_observer.h +++ b/ios/chrome/browser/ui/main/scene_state_observer.h
@@ -35,6 +35,9 @@ // Notifies that a new activity request has been received. - (void)sceneState:(SceneState*)sceneState receivedUserActivity:(NSUserActivity*)userActivity; +// Notifies that the scene switched between incognito/normal mode. +- (void)sceneState:(SceneState*)sceneState + isDisplayingIncognitoContent:(BOOL)incognitoContentVisible; @end
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.arm64.zip.sha1 index ace80ff..572379b 100644 --- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.arm64.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@ -91301d11a6d81f036df6d1b027c01744c360c1f1 \ No newline at end of file +1f680fbbab50f44c76449e5022a77fba4961a132 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.x64.zip.sha1 index e592dcb..76694b1 100644 --- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.x64.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@ -ba284b3153a14b956803e2b69304b97511a38b93 \ No newline at end of file +dc5943fae05249fa492fec21eaeaec03561df72e \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.arm64.zip.sha1 index 9b68bee..59a33de1 100644 --- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.arm64.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@ -1135bb6207eeff61cbf271ddb2d9e11f5631266c \ No newline at end of file +80cc1896cd49975ad43a9a39665bd0e4cab7519a \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.arm64.zip.sha1 index df812cfa..94f17f8f6 100644 --- a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.arm64.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@ -5a8f6b5b2648392f80100ddae25640fd5a98a317 \ No newline at end of file +c2389a5d8d7c40af6f6ef959b764bc1877357e6e \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.x64.zip.sha1 index b2367681..613ae59d 100644 --- a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.x64.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@ -37aa7b84e8171ab2048c1ba94486ffe191fcf5af \ No newline at end of file +d7ffaa126dbbee2b0919a96cfa2efa681d18debf \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.arm64.zip.sha1 index 181e46c6..1c4e65a 100644 --- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.arm64.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@ -8fdd28d151bbdeb3a55a3a6fbe145730f24bfe00 \ No newline at end of file +b23a3ab268cd3f10309434686bef7f63b632347b \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.x64.zip.sha1 index dba55f15..ba1671bd 100644 --- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.x64.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@ -da2edfff60b7fe99c1d509f6151b49ce2858a354 \ No newline at end of file +aeda606a75ab04bb20400240cd0ee7fb235aa1cd \ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.arm64.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.arm64.zip.sha1 index 98fbfe33..52a6119 100644 --- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.arm64.zip.sha1 +++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.arm64.zip.sha1
@@ -1 +1 @@ -ac6420c768d0b886ea8a4703d6845cc32dab8861 \ No newline at end of file +4ad0f29682bdf92baad4670e55edd21329d03738 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.x64.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.x64.zip.sha1 index b87523dd..f62fa6bd 100644 --- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.x64.zip.sha1 +++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.x64.zip.sha1
@@ -1 +1 @@ -8a5244482c47dc1ba0079f7940202272a6876362 \ No newline at end of file +e9554655059365ffd69e9a168ddef5e5f4efef04 \ No newline at end of file
diff --git a/ios/web/public/ui/crw_web_view_proxy.h b/ios/web/public/ui/crw_web_view_proxy.h index f3ecaa1..3fa57b5 100644 --- a/ios/web/public/ui/crw_web_view_proxy.h +++ b/ios/web/public/ui/crw_web_view_proxy.h
@@ -63,10 +63,6 @@ // Wrapper around the addSubview method of the webview. - (void)addSubview:(UIView*)view; -// Returns YES if it makes sense to search for text right now. -// TODO(crbug.com/949651): Remove once JSFindInPageManager is removed. -- (BOOL)hasSearchableTextContent; - // Returns the currently visible keyboard accessory, or nil. - (UIView*)keyboardAccessory;
diff --git a/ios/web/web_state/ui/crw_web_view_proxy_impl.mm b/ios/web/web_state/ui/crw_web_view_proxy_impl.mm index 6eeb455..2813653 100644 --- a/ios/web/web_state/ui/crw_web_view_proxy_impl.mm +++ b/ios/web/web_state/ui/crw_web_view_proxy_impl.mm
@@ -175,10 +175,6 @@ return [_contentView addSubview:view]; } -- (BOOL)hasSearchableTextContent { - return _contentView != nil && [_webController contentIsHTML]; -} - - (UIView*)keyboardAccessory { if (!_contentView) return nil;
diff --git a/media/audio/audio_input_unittest.cc b/media/audio/audio_input_unittest.cc index f603729..ddaba1dd 100644 --- a/media/audio/audio_input_unittest.cc +++ b/media/audio/audio_input_unittest.cc
@@ -88,6 +88,10 @@ // FuchsiaAudioCapturerStream. It implements AudioCapturerStream interface // and runs in the renderer process. return false; +#elif defined(OS_MAC) && defined(ARCH_CPU_ARM64) + // TODO(crbug.com/1128458): macOS on ARM64 says it has devices, but won't + // let any of them be opened or listed. + return false; #else return AudioDeviceInfoAccessorForTests(audio_manager_.get()) .HasAudioInputDevices(); @@ -135,11 +139,12 @@ params, AudioDeviceDescription::kDefaultDeviceId, base::BindRepeating(&AudioInputTest::OnLogMessage, base::Unretained(this))); - EXPECT_TRUE(audio_input_stream_); + ASSERT_TRUE(audio_input_stream_); } void OpenAndClose() { DCHECK(audio_manager_->GetTaskRunner()->BelongsToCurrentThread()); + ASSERT_TRUE(audio_input_stream_); EXPECT_TRUE(audio_input_stream_->Open()); audio_input_stream_->Close(); audio_input_stream_ = nullptr; @@ -147,12 +152,14 @@ void OpenAndStart(AudioInputStream::AudioInputCallback* sink) { DCHECK(audio_manager_->GetTaskRunner()->BelongsToCurrentThread()); + ASSERT_TRUE(audio_input_stream_); EXPECT_TRUE(audio_input_stream_->Open()); audio_input_stream_->Start(sink); } void OpenStopAndClose() { DCHECK(audio_manager_->GetTaskRunner()->BelongsToCurrentThread()); + ASSERT_TRUE(audio_input_stream_); EXPECT_TRUE(audio_input_stream_->Open()); audio_input_stream_->Stop(); audio_input_stream_->Close(); @@ -161,6 +168,7 @@ void StopAndClose() { DCHECK(audio_manager_->GetTaskRunner()->BelongsToCurrentThread()); + ASSERT_TRUE(audio_input_stream_); audio_input_stream_->Stop(); audio_input_stream_->Close(); audio_input_stream_ = nullptr;
diff --git a/media/audio/audio_manager_unittest.cc b/media/audio/audio_manager_unittest.cc index 1dd8e736..979643b 100644 --- a/media/audio/audio_manager_unittest.cc +++ b/media/audio/audio_manager_unittest.cc
@@ -436,7 +436,13 @@ #endif // defined(USE_CRAS) && defined(OS_CHROMEOS) bool InputDevicesAvailable() { +#if defined(OS_MAC) && defined(ARCH_CPU_ARM64) + // TODO(crbug.com/1128458): macOS on ARM64 says it has devices, but won't + // let any of them be opened or listed. + return false; +#else return device_info_accessor_->HasAudioInputDevices(); +#endif } bool OutputDevicesAvailable() { return device_info_accessor_->HasAudioOutputDevices();
diff --git a/media/audio/mac/audio_low_latency_input_mac_unittest.cc b/media/audio/mac/audio_low_latency_input_mac_unittest.cc index a00c821..341111d 100644 --- a/media/audio/mac/audio_low_latency_input_mac_unittest.cc +++ b/media/audio/mac/audio_low_latency_input_mac_unittest.cc
@@ -14,6 +14,7 @@ #include "base/test/task_environment.h" #include "base/test/test_timeouts.h" #include "base/threading/platform_thread.h" +#include "build/build_config.h" #include "media/audio/audio_device_description.h" #include "media/audio/audio_device_info_accessor_for_tests.h" #include "media/audio/audio_io.h" @@ -124,8 +125,14 @@ ~MacAudioInputTest() override { audio_manager_->Shutdown(); } bool InputDevicesAvailable() { +#if defined(OS_MAC) && defined(ARCH_CPU_ARM64) + // TODO(crbug.com/1128458): macOS on ARM64 says it has devices, but won't + // let any of them be opened or listed. + return false; +#else return AudioDeviceInfoAccessorForTests(audio_manager_.get()) .HasAudioInputDevices(); +#endif } // Convenience method which creates a default AudioInputStream object using
diff --git a/mojo/public/js/bindings_lite.js b/mojo/public/js/bindings_lite.js index bfa31b0..1821540 100644 --- a/mojo/public/js/bindings_lite.js +++ b/mojo/public/js/bindings_lite.js
@@ -58,7 +58,7 @@ /** * @param {!DataView} dataView * @param {number} byteOffset - * @param {number} value + * @param {number|bigint} value */ mojo.internal.setInt64 = function(dataView, byteOffset, value) { if (mojo.internal.kHostLittleEndian) { @@ -66,11 +66,12 @@ byteOffset, Number(BigInt(value) & BigInt(0xffffffff)), mojo.internal.kHostLittleEndian); dataView.setInt32( - byteOffset + 4, Number(BigInt(value) >> BigInt(32)), + byteOffset + 4, + Number((BigInt(value) >> BigInt(32)) & BigInt(0xffffffff)), mojo.internal.kHostLittleEndian); } else { dataView.setInt32( - byteOffset, Number(BigInt(value) >> BigInt(32)), + byteOffset, Number((BigInt(value) >> BigInt(32)) & BigInt(0xffffffff)), mojo.internal.kHostLittleEndian); dataView.setUint32( byteOffset + 4, Number(BigInt(value) & BigInt(0xffffffff)), @@ -81,7 +82,7 @@ /** * @param {!DataView} dataView * @param {number} byteOffset - * @param {number} value + * @param {number|bigint} value */ mojo.internal.setUint64 = function(dataView, byteOffset, value) { if (mojo.internal.kHostLittleEndian) { @@ -89,11 +90,12 @@ byteOffset, Number(BigInt(value) & BigInt(0xffffffff)), mojo.internal.kHostLittleEndian); dataView.setUint32( - byteOffset + 4, Number(BigInt(value) >> BigInt(32)), + byteOffset + 4, + Number((BigInt(value) >> BigInt(32)) & BigInt(0xffffffff)), mojo.internal.kHostLittleEndian); } else { dataView.setUint32( - byteOffset, Number(BigInt(value) >> BigInt(32)), + byteOffset, Number((BigInt(value) >> BigInt(32)) & BigInt(0xffffffff)), mojo.internal.kHostLittleEndian); dataView.setUint32( byteOffset + 4, Number(BigInt(value) & BigInt(0xffffffff)), @@ -104,7 +106,7 @@ /** * @param {!DataView} dataView * @param {number} byteOffset - * @return {bigint|number} + * @return {bigint} */ mojo.internal.getInt64 = function(dataView, byteOffset) { let low, high; @@ -115,12 +117,24 @@ low = dataView.getUint32(byteOffset + 4, mojo.internal.kHostLittleEndian); high = dataView.getInt32(byteOffset, mojo.internal.kHostLittleEndian); } - const value = (BigInt(high) << BigInt(32)) | BigInt(low); - if (value <= BigInt(Number.MAX_SAFE_INTEGER) && - value >= BigInt(Number.MIN_SAFE_INTEGER)) { - return Number(value); + return (BigInt(high) << BigInt(32)) | BigInt(low); +}; + +/** + * @param {!DataView} dataView + * @param {number} byteOffset + * @return {bigint} + */ +mojo.internal.getUint64 = function(dataView, byteOffset) { + let low, high; + if (mojo.internal.kHostLittleEndian) { + low = dataView.getUint32(byteOffset, mojo.internal.kHostLittleEndian); + high = dataView.getUint32(byteOffset + 4, mojo.internal.kHostLittleEndian); + } else { + low = dataView.getUint32(byteOffset + 4, mojo.internal.kHostLittleEndian); + high = dataView.getUint32(byteOffset, mojo.internal.kHostLittleEndian); } - return value; + return (BigInt(high) << BigInt(32)) | BigInt(low); }; /** @@ -222,26 +236,6 @@ return totalSize; }; -/** - * @param {!DataView} dataView - * @param {number} byteOffset - * @return {bigint|number} - */ -mojo.internal.getUint64 = function(dataView, byteOffset) { - let low, high; - if (mojo.internal.kHostLittleEndian) { - low = dataView.getUint32(byteOffset, mojo.internal.kHostLittleEndian); - high = dataView.getUint32(byteOffset + 4, mojo.internal.kHostLittleEndian); - } else { - low = dataView.getUint32(byteOffset + 4, mojo.internal.kHostLittleEndian); - high = dataView.getUint32(byteOffset, mojo.internal.kHostLittleEndian); - } - const value = (BigInt(high) << BigInt(32)) | BigInt(low); - if (value <= BigInt(Number.MAX_SAFE_INTEGER)) - return Number(value); - return value; -}; - /** Owns an outgoing message buffer and facilitates serialization. */ mojo.internal.Message = class { /** @@ -656,7 +650,9 @@ const relativeOffset = this.decodeUint64(offset); if (relativeOffset == 0) return 0; - return this.data_.byteOffset + offset + relativeOffset; + if (relativeOffset > BigInt(Number.MAX_SAFE_INTEGER)) + throw new Error('Mesage offset too large'); + return this.data_.byteOffset + offset + Number(relativeOffset); } /**
diff --git a/mojo/public/tools/bindings/generators/js_templates/lite/interface_definition_for_module.tmpl b/mojo/public/tools/bindings/generators/js_templates/lite/interface_definition_for_module.tmpl index 141b3c3..bc000ba 100644 --- a/mojo/public/tools/bindings/generators/js_templates/lite/interface_definition_for_module.tmpl +++ b/mojo/public/tools/bindings/generators/js_templates/lite/interface_definition_for_module.tmpl
@@ -1,7 +1,7 @@ {% macro generateMethodAnnotation(method) %} /** {%- for param in method.parameters %} - * @param { {{param.kind|type_in_js_module_with_nullability}} } {{param.name|sanitize_identifier}} + * @param { {{param.kind|param_type_in_js_module}} } {{param.name|sanitize_identifier}} {%- endfor -%} {%- if method.response_parameters != None %} {%- if method.response_parameters|length == 0 %} @@ -9,7 +9,7 @@ {%- else %} * @return {!Promise<{ {%- for response_parameter in method.response_parameters %} - {{response_parameter.name}}: {{response_parameter.kind|type_in_js_module_with_nullability}}, + {{response_parameter.name}}: {{response_parameter.kind|param_type_in_js_module}}, {%- endfor %} * }>} {%- endif %}
diff --git a/mojo/public/tools/bindings/generators/js_templates/lite/module_definition.tmpl b/mojo/public/tools/bindings/generators/js_templates/lite/module_definition.tmpl index e8124d4..99422f42 100644 --- a/mojo/public/tools/bindings/generators/js_templates/lite/module_definition.tmpl +++ b/mojo/public/tools/bindings/generators/js_templates/lite/module_definition.tmpl
@@ -8,8 +8,7 @@ * @const { {{constant.kind|lite_closure_type_with_nullability}} } * @export */ -{{module.namespace}}.{{constant.name}} = - {{constant.value|expression_to_text_lite}}; +{{module.namespace}}.{{constant.name}} = {{constant|constant_value}}; {%- endfor %} {#--- Enums #}
diff --git a/mojo/public/tools/bindings/generators/js_templates/lite/mojom.m.js.tmpl b/mojo/public/tools/bindings/generators/js_templates/lite/mojom.m.js.tmpl index af5f191..6576073 100644 --- a/mojo/public/tools/bindings/generators/js_templates/lite/mojom.m.js.tmpl +++ b/mojo/public/tools/bindings/generators/js_templates/lite/mojom.m.js.tmpl
@@ -22,8 +22,7 @@ /** * @const { {{constant.kind|type_in_js_module_with_nullability}} } */ -export const {{constant.name}} = - {{constant.value|expression_to_text_lite}}; +export const {{constant.name}} = {{constant|constant_value_in_js_module}}; {% endfor -%}
diff --git a/mojo/public/tools/bindings/generators/js_templates/lite/struct_definition.tmpl b/mojo/public/tools/bindings/generators/js_templates/lite/struct_definition.tmpl index 8b3e45a..2e4eb95 100644 --- a/mojo/public/tools/bindings/generators/js_templates/lite/struct_definition.tmpl +++ b/mojo/public/tools/bindings/generators/js_templates/lite/struct_definition.tmpl
@@ -4,7 +4,7 @@ * @export */ {{module.namespace}}.{{struct.name}}_{{constant.name}} = - {{constant.value|expression_to_text_lite}}; + {{constant|constant_value}}; {% endfor %} {%- from "lite/enum_definition.tmpl" import enum_def with context %}
diff --git a/mojo/public/tools/bindings/generators/js_templates/lite/struct_definition_for_module.tmpl b/mojo/public/tools/bindings/generators/js_templates/lite/struct_definition_for_module.tmpl index f4cfe64..b6ef382 100644 --- a/mojo/public/tools/bindings/generators/js_templates/lite/struct_definition_for_module.tmpl +++ b/mojo/public/tools/bindings/generators/js_templates/lite/struct_definition_for_module.tmpl
@@ -3,7 +3,7 @@ * @const { {{constant.kind|type_in_js_module_with_nullability}} } */ export const {{struct.name}}_{{constant.name}} = - {{constant.value|expression_to_text_lite}}; + {{constant|constant_value_in_js_module}}; {% endfor %} {%- from "lite/enum_definition_for_module.tmpl" import enum_def with context %}
diff --git a/mojo/public/tools/bindings/generators/mojom_js_generator.py b/mojo/public/tools/bindings/generators/mojom_js_generator.py index f5a46d82..6c04680 100644 --- a/mojo/public/tools/bindings/generators/mojom_js_generator.py +++ b/mojo/public/tools/bindings/generators/mojom_js_generator.py
@@ -318,12 +318,13 @@ def GetFilters(self): js_filters = { "closure_type": self._ClosureType, + "constant_value": self._GetConstantValue, + "constant_value_in_js_module": self._GetConstantValueInJsModule, "decode_snippet": self._JavaScriptDecodeSnippet, "default_value": self._JavaScriptDefaultValue, "default_value_in_js_module": self._DefaultValueInJsModule, "encode_snippet": self._JavaScriptEncodeSnippet, "expression_to_text": self._ExpressionToText, - "expression_to_text_lite": self._ExpressionToTextLite, "field_offset": JavaScriptFieldOffset, "field_type_in_js_module": self._GetFieldTypeInJsModule, "get_relative_url": GetRelativeUrl, @@ -507,6 +508,10 @@ # Indicates whether a kind of suitable to stringify and use as an Object # property name. This is checked for map key types to allow most kinds of # mojom maps to be represented as either a Map or an Object. + if kind == mojom.INT64 or kind == mojom.UINT64: + # JS BigInts are not stringable and cannot be used as Object property + # names. + return False return (mojom.IsIntegralKind(kind) or mojom.IsFloatKind(kind) or mojom.IsDoubleKind(kind) or mojom.IsStringKind(kind) or mojom.IsEnumKind(kind)) @@ -521,6 +526,8 @@ for_module=for_module) def get_type_name(kind): + if kind == mojom.INT64 or kind == mojom.UINT64: + return "bigint" if kind in mojom.PRIMITIVES: return _kind_to_closure_type[kind] if mojom.IsArrayKind(kind): @@ -778,6 +785,8 @@ assert field.default == "default" return "null" return self._ExpressionToTextLite(field.default, for_module=for_module) + if field.kind == mojom.INT64 or field.kind == mojom.UINT64: + return "BigInt(0)" if field.kind in mojom.PRIMITIVES: return _kind_to_javascript_default_value[field.kind] if mojom.IsEnumKind(field.kind): @@ -979,6 +988,16 @@ return self._ExpressionToText(token) + def _GetConstantValue(self, constant, for_module=False): + assert isinstance(constant, mojom.Constant) + text = self._ExpressionToTextLite(constant.value, for_module=for_module) + if constant.kind == mojom.INT64 or constant.kind == mojom.UINT64: + return "BigInt('{}')".format(text) + return text + + def _GetConstantValueInJsModule(self, constant): + return self._GetConstantValue(constant, for_module=True) + def _GenerateHtmlImports(self): result = [] for full_import in self.module.imports:
diff --git a/mojo/public/tools/bindings/mojom.gni b/mojo/public/tools/bindings/mojom.gni index 83b91a22..7db2927 100644 --- a/mojo/public/tools/bindings/mojom.gni +++ b/mojo/public/tools/bindings/mojom.gni
@@ -77,7 +77,6 @@ "$_mojom_library_root/__init__.py", "$_mojom_library_root/error.py", "$_mojom_library_root/generate/__init__.py", - "$_mojom_library_root/generate/constant_resolver.py", "$_mojom_library_root/generate/generator.py", "$_mojom_library_root/generate/module.py", "$_mojom_library_root/generate/pack.py",
diff --git a/mojo/public/tools/mojom/mojom/BUILD.gn b/mojo/public/tools/mojom/mojom/BUILD.gn index 7416ef1..51facc0 100644 --- a/mojo/public/tools/mojom/mojom/BUILD.gn +++ b/mojo/public/tools/mojom/mojom/BUILD.gn
@@ -8,7 +8,6 @@ "error.py", "fileutil.py", "generate/__init__.py", - "generate/constant_resolver.py", "generate/generator.py", "generate/module.py", "generate/pack.py",
diff --git a/mojo/public/tools/mojom/mojom/generate/constant_resolver.py b/mojo/public/tools/mojom/mojom/generate/constant_resolver.py deleted file mode 100644 index 0dfd996..0000000 --- a/mojo/public/tools/mojom/mojom/generate/constant_resolver.py +++ /dev/null
@@ -1,93 +0,0 @@ -# Copyright 2015 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. -"""Resolves the values used for constants and enums.""" - -from itertools import ifilter - -from mojom.generate import module as mojom - - -def ResolveConstants(module, expression_to_text): - in_progress = set() - computed = set() - - def GetResolvedValue(named_value): - assert isinstance(named_value, (mojom.EnumValue, mojom.ConstantValue)) - if isinstance(named_value, mojom.EnumValue): - field = next( - ifilter(lambda field: field.name == named_value.name, - named_value.enum.fields), None) - if not field: - raise RuntimeError( - 'Unable to get computed value for field %s of enum %s' % - (named_value.name, named_value.enum.name)) - if field not in computed: - ResolveEnum(named_value.enum) - return field.resolved_value - else: - ResolveConstant(named_value.constant) - named_value.resolved_value = named_value.constant.resolved_value - return named_value.resolved_value - - def ResolveConstant(constant): - if constant in computed: - return - if constant in in_progress: - raise RuntimeError('Circular dependency for constant: %s' % constant.name) - in_progress.add(constant) - if isinstance(constant.value, (mojom.EnumValue, mojom.ConstantValue)): - resolved_value = GetResolvedValue(constant.value) - else: - resolved_value = expression_to_text(constant.value) - constant.resolved_value = resolved_value - in_progress.remove(constant) - computed.add(constant) - - def ResolveEnum(enum): - def ResolveEnumField(enum, field, default_value): - if field in computed: - return - if field in in_progress: - raise RuntimeError('Circular dependency for enum: %s' % enum.name) - in_progress.add(field) - if field.value: - if isinstance(field.value, mojom.EnumValue): - resolved_value = GetResolvedValue(field.value) - elif isinstance(field.value, str): - resolved_value = int(field.value, 0) - else: - raise RuntimeError('Unexpected value: %s' % field.value) - else: - resolved_value = default_value - field.resolved_value = resolved_value - in_progress.remove(field) - computed.add(field) - - current_value = 0 - for field in enum.fields: - ResolveEnumField(enum, field, current_value) - current_value = field.resolved_value + 1 - - for constant in module.constants: - ResolveConstant(constant) - - for enum in module.enums: - ResolveEnum(enum) - - for struct in module.structs: - for constant in struct.constants: - ResolveConstant(constant) - for enum in struct.enums: - ResolveEnum(enum) - for field in struct.fields: - if isinstance(field.default, (mojom.ConstantValue, mojom.EnumValue)): - field.default.resolved_value = GetResolvedValue(field.default) - - for interface in module.interfaces: - for constant in interface.constants: - ResolveConstant(constant) - for enum in interface.enums: - ResolveEnum(enum) - - return module
diff --git a/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store.cc b/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store.cc index c4fbb1e..d5a5dac 100644 --- a/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store.cc +++ b/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store.cc
@@ -15,10 +15,13 @@ #include "base/bind_helpers.h" #include "base/files/file_path.h" #include "base/files/file_util.h" +#include "base/json/json_reader.h" +#include "base/json/json_string_value_serializer.h" #include "base/metrics/histogram_macros.h" #include "base/sequenced_task_runner.h" #include "base/task/task_traits.h" #include "base/thread_annotations.h" +#include "net/base/network_isolation_key.h" #include "net/extras/sqlite/sqlite_persistent_store_backend_base.h" #include "net/reporting/reporting_endpoint.h" #include "sql/database.h" @@ -34,8 +37,13 @@ // // Version 1 adds tables for NEL policies, Reporting endpoints, and Reporting // endpoint groups. -const int kCurrentVersionNumber = 1; -const int kCompatibleVersionNumber = 1; +// +// Version 2 - 2020/10 - https://crrev.com/c/2485253 +// +// Version 2 adds NetworkIsolationKey fields to all entries. When migrating, +// existing entries get an empty NetworkIsolationKey value. +const int kCurrentVersionNumber = 2; +const int kCompatibleVersionNumber = 2; // Enums for histograms: // These values are persisted to logs. Entries should not be renumbered and @@ -76,6 +84,29 @@ return base::TaskPriority::USER_BLOCKING; } +// Converts a NetworkIsolationKey to a string for serializing to disk. Returns +// false on failure, which happens for transient keys that should not be +// serialized to disk. +bool WARN_UNUSED_RESULT +NetworkIsolationKeyToString(const NetworkIsolationKey& network_isolation_key, + std::string* out_string) { + base::Value value; + if (!network_isolation_key.ToValue(&value)) + return false; + return JSONStringValueSerializer(out_string).Serialize(value); +} + +// Attempts to convert a string returned by NetworkIsolationKeyToString() to +// a NetworkIsolationKey. Returns false on failure. +bool WARN_UNUSED_RESULT +NetworkIsolationKeyFromString(const std::string& string, + NetworkIsolationKey* out_network_isolation_key) { + base::Optional<base::Value> value = base::JSONReader::Read(string); + if (!value) + return false; + return NetworkIsolationKey::FromValue(*value, out_network_isolation_key); +} + class SQLitePersistentReportingAndNelStore::Backend : public SQLitePersistentStoreBackendBase { public: @@ -115,15 +146,48 @@ private: ~Backend() override { DCHECK(nel_policy_pending_ops_.empty()); + DCHECK(reporting_endpoint_pending_ops_.empty()); + DCHECK(reporting_endpoint_group_pending_ops_.empty()); DCHECK_EQ(0u, num_pending_); } + // Used to sort NEL policies. + // TODO(mmenke): Move this into NetworkErrorLoggingService, once that class + // supports NetworkIsolationKeys. + struct NelPolicyKey { + NelPolicyKey() = default; + + NelPolicyKey(const NelPolicyKey& other) = default; + + NelPolicyKey(const NetworkIsolationKey& network_isolation_key, + const url::Origin& origin) + : network_isolation_key(network_isolation_key), origin(origin) {} + + ~NelPolicyKey() = default; + + bool operator<(const NelPolicyKey& other) const { + return std::tie(network_isolation_key, origin) < + std::tie(other.network_isolation_key, other.origin); + } + + NetworkIsolationKey network_isolation_key; + url::Origin origin; + }; + // Represents a mutating operation to the database, specified by a type (add, // update access time, update data, or delete) and data representing the entry // in the database to be added/updated/deleted. template <typename DataType> class PendingOperation; + // Types of PendingOperation. Here to avoid templatizing the enum. + enum class PendingOperationType { + ADD, + UPDATE_ACCESS_TIME, + UPDATE_DETAILS, + DELETE + }; + // List of pending operations for a particular entry in the database. template <typename DataType> using PendingOperationsVector = @@ -237,7 +301,7 @@ size_t num_pending_ GUARDED_BY(lock_); // Queue of pending operations pertaining to NEL policies, keyed on origin. - QueueType<url::Origin, NelPolicyInfo> nel_policy_pending_ops_ + QueueType<NelPolicyKey, NelPolicyInfo> nel_policy_pending_ops_ GUARDED_BY(lock_); // Queue of pending operations pertaining to Reporting endpoints, keyed on // origin, group name, and url. @@ -258,33 +322,35 @@ namespace { -bool CreateV1NelPoliciesSchema(sql::Database* db) { +bool CreateV2NelPoliciesSchema(sql::Database* db) { DCHECK(!db->DoesTableExist("nel_policies")); std::string stmt = "CREATE TABLE nel_policies (" + " nik TEXT NOT NULL," " origin_scheme TEXT NOT NULL," " origin_host TEXT NOT NULL," " origin_port INTEGER NOT NULL," " received_ip_address TEXT NOT NULL," - " report_to TEXT NOT NULL," + " group_name TEXT NOT NULL," " expires_us_since_epoch INTEGER NOT NULL," " success_fraction REAL NOT NULL," " failure_fraction REAL NOT NULL," " is_include_subdomains INTEGER NOT NULL," " last_access_us_since_epoch INTEGER NOT NULL," - // Each origin specifies at most one NEL policy. - " UNIQUE (origin_scheme, origin_host, origin_port)" + // Each (origin, nik) specifies at most one NEL policy. + " UNIQUE (origin_scheme, origin_host, origin_port, nik)" ")"; return db->Execute(stmt.c_str()); } -bool CreateV1ReportingEndpointsSchema(sql::Database* db) { +bool CreateV2ReportingEndpointsSchema(sql::Database* db) { DCHECK(!db->DoesTableExist("reporting_endpoints")); std::string stmt = "CREATE TABLE reporting_endpoints (" + " nik TEXT NOT NULL," " origin_scheme TEXT NOT NULL," " origin_host TEXT NOT NULL," " origin_port INTEGER NOT NULL," @@ -292,18 +358,19 @@ " url TEXT NOT NULL," " priority INTEGER NOT NULL," " weight INTEGER NOT NULL," - // Each (origin, group, url) tuple specifies at most one endpoint. - " UNIQUE (origin_scheme, origin_host, origin_port, group_name, url)" + // Each (origin, group, url, nik) tuple specifies at most one endpoint. + " UNIQUE (origin_scheme, origin_host, origin_port, group_name, url, nik)" ")"; return db->Execute(stmt.c_str()); } -bool CreateV1ReportingEndpointGroupsSchema(sql::Database* db) { +bool CreateV2ReportingEndpointGroupsSchema(sql::Database* db) { DCHECK(!db->DoesTableExist("reporting_endpoint_groups")); std::string stmt = "CREATE TABLE reporting_endpoint_groups (" + " nik TEXT NOT NULL," " origin_scheme TEXT NOT NULL," " origin_host TEXT NOT NULL," " origin_port INTEGER NOT NULL," @@ -311,8 +378,8 @@ " is_include_subdomains INTEGER NOT NULL," " expires_us_since_epoch INTEGER NOT NULL," " last_access_us_since_epoch INTEGER NOT NULL," - // Each (origin, group) tuple specifies at most one endpoint group. - " UNIQUE (origin_scheme, origin_host, origin_port, group_name)" + // Each (origin, group, nik) tuple specifies at most one endpoint group. + " UNIQUE (origin_scheme, origin_host, origin_port, group_name, nik)" ")"; return db->Execute(stmt.c_str()); @@ -323,16 +390,14 @@ template <typename DataType> class SQLitePersistentReportingAndNelStore::Backend::PendingOperation { public: - enum class Type { ADD, UPDATE_ACCESS_TIME, UPDATE_DETAILS, DELETE }; - - PendingOperation(Type type, DataType data) + PendingOperation(PendingOperationType type, DataType data) : type_(type), data_(std::move(data)) {} - Type type() const { return type_; } + PendingOperationType type() const { return type_; } const DataType& data() const { return data_; } private: - const Type type_; + const PendingOperationType type_; const DataType data_; }; @@ -340,9 +405,11 @@ // form suitable for adding to the database. // TODO(chlily): Add NIK. struct SQLitePersistentReportingAndNelStore::Backend::NelPolicyInfo { - explicit NelPolicyInfo( - const NetworkErrorLoggingService::NelPolicy& nel_policy) - : origin_scheme(nel_policy.origin.scheme()), + // This should only be invoked through CreatePendingOperation(). + NelPolicyInfo(const NetworkErrorLoggingService::NelPolicy& nel_policy, + std::string network_isolation_key_string) + : network_isolation_key_string(std::move(network_isolation_key_string)), + origin_scheme(nel_policy.origin.scheme()), origin_host(nel_policy.origin.host()), origin_port(nel_policy.origin.port()), received_ip_address(nel_policy.received_ip_address.ToString()), @@ -355,10 +422,32 @@ last_access_us_since_epoch( nel_policy.last_used.ToDeltaSinceWindowsEpoch().InMicroseconds()) {} + // Creates the specified operation for the given policy. Returns nullptr for + // endpoints with transient NetworkIsolationKeys. + static std::unique_ptr<PendingOperation<NelPolicyInfo>> + CreatePendingOperation( + PendingOperationType type, + const NetworkErrorLoggingService::NelPolicy& nel_policy) { + std::string network_isolation_key_string; + if (!NetworkIsolationKeyToString(nel_policy.network_isolation_key, + &network_isolation_key_string)) { + return nullptr; + } + + return std::make_unique<PendingOperation<NelPolicyInfo>>( + type, + NelPolicyInfo(nel_policy, std::move(network_isolation_key_string))); + } + + // NetworkIsolationKey associated with the request that received the policy, + // converted to a string via NetworkIsolationKeyToString(). + std::string network_isolation_key_string; + // Origin the policy was received from. std::string origin_scheme; std::string origin_host; int origin_port = 0; + // IP address of the server that the policy was received from. std::string received_ip_address; // The Reporting group which the policy specifies. @@ -377,10 +466,12 @@ // Makes a copy of the relevant information about a ReportingEndpoint, stored in // a form suitable for adding to the database. -// TODO(chlily): Add NIK. struct SQLitePersistentReportingAndNelStore::Backend::ReportingEndpointInfo { - explicit ReportingEndpointInfo(const ReportingEndpoint& endpoint) - : origin_scheme(endpoint.group_key.origin.scheme()), + // This should only be invoked through CreatePendingOperation(). + ReportingEndpointInfo(const ReportingEndpoint& endpoint, + std::string network_isolation_key_string) + : network_isolation_key_string(std::move(network_isolation_key_string)), + origin_scheme(endpoint.group_key.origin.scheme()), origin_host(endpoint.group_key.origin.host()), origin_port(endpoint.group_key.origin.port()), group_name(endpoint.group_key.group_name), @@ -388,10 +479,31 @@ priority(endpoint.info.priority), weight(endpoint.info.weight) {} + // Creates the specified operation for the given endpoint. Returns nullptr for + // endpoints with transient NetworkIsolationKeys. + static std::unique_ptr<PendingOperation<ReportingEndpointInfo>> + CreatePendingOperation(PendingOperationType type, + const ReportingEndpoint& endpoint) { + std::string network_isolation_key_string; + if (!NetworkIsolationKeyToString(endpoint.group_key.network_isolation_key, + &network_isolation_key_string)) { + return nullptr; + } + + return std::make_unique<PendingOperation<ReportingEndpointInfo>>( + type, ReportingEndpointInfo(endpoint, + std::move(network_isolation_key_string))); + } + + // NetworkIsolationKey associated with the endpoint, converted to a string via + // NetworkIsolationKeyToString(). + std::string network_isolation_key_string; + // Origin the endpoint was received from. std::string origin_scheme; std::string origin_host; int origin_port = 0; + // Name of the group the endpoint belongs to. std::string group_name; // URL of the endpoint. @@ -402,11 +514,12 @@ int weight = ReportingEndpoint::EndpointInfo::kDefaultWeight; }; -// TODO(chlily): Add NIK. struct SQLitePersistentReportingAndNelStore::Backend:: ReportingEndpointGroupInfo { - explicit ReportingEndpointGroupInfo(const CachedReportingEndpointGroup& group) - : origin_scheme(group.group_key.origin.scheme()), + ReportingEndpointGroupInfo(const CachedReportingEndpointGroup& group, + std::string network_isolation_key_string) + : network_isolation_key_string(std::move(network_isolation_key_string)), + origin_scheme(group.group_key.origin.scheme()), origin_host(group.group_key.origin.host()), origin_port(group.group_key.origin.port()), group_name(group.group_key.group_name), @@ -417,10 +530,31 @@ last_access_us_since_epoch( group.last_used.ToDeltaSinceWindowsEpoch().InMicroseconds()) {} + // Creates the specified operation for the given endpoint reporting group. + // Returns nullptr for groups with transient NetworkIsolationKeys. + static std::unique_ptr<PendingOperation<ReportingEndpointGroupInfo>> + CreatePendingOperation(PendingOperationType type, + const CachedReportingEndpointGroup& group) { + std::string network_isolation_key_string; + if (!NetworkIsolationKeyToString(group.group_key.network_isolation_key, + &network_isolation_key_string)) { + return nullptr; + } + + return std::make_unique<PendingOperation<ReportingEndpointGroupInfo>>( + type, ReportingEndpointGroupInfo( + group, std::move(network_isolation_key_string))); + } + + // NetworkIsolationKey associated with the endpoint group, converted to a + // string via NetworkIsolationKeyToString(). + std::string network_isolation_key_string; + // Origin the endpoint group was received from. std::string origin_scheme; std::string origin_host; int origin_port = 0; + // Name of the group. std::string group_name; // Whether the group applies to subdomains of the origin. @@ -441,24 +575,32 @@ void SQLitePersistentReportingAndNelStore::Backend::AddNelPolicy( const NetworkErrorLoggingService::NelPolicy& policy) { - auto po = std::make_unique<PendingOperation<NelPolicyInfo>>( - PendingOperation<NelPolicyInfo>::Type::ADD, NelPolicyInfo(policy)); - BatchOperation(policy.origin, std::move(po), &nel_policy_pending_ops_); + auto po = + NelPolicyInfo::CreatePendingOperation(PendingOperationType::ADD, policy); + if (!po) + return; + BatchOperation(NelPolicyKey(policy.network_isolation_key, policy.origin), + std::move(po), &nel_policy_pending_ops_); } void SQLitePersistentReportingAndNelStore::Backend::UpdateNelPolicyAccessTime( const NetworkErrorLoggingService::NelPolicy& policy) { - auto po = std::make_unique<PendingOperation<NelPolicyInfo>>( - PendingOperation<NelPolicyInfo>::Type::UPDATE_ACCESS_TIME, - NelPolicyInfo(policy)); - BatchOperation(policy.origin, std::move(po), &nel_policy_pending_ops_); + auto po = NelPolicyInfo::CreatePendingOperation( + PendingOperationType::UPDATE_ACCESS_TIME, policy); + if (!po) + return; + BatchOperation(NelPolicyKey(policy.network_isolation_key, policy.origin), + std::move(po), &nel_policy_pending_ops_); } void SQLitePersistentReportingAndNelStore::Backend::DeleteNelPolicy( const NetworkErrorLoggingService::NelPolicy& policy) { - auto po = std::make_unique<PendingOperation<NelPolicyInfo>>( - PendingOperation<NelPolicyInfo>::Type::DELETE, NelPolicyInfo(policy)); - BatchOperation(policy.origin, std::move(po), &nel_policy_pending_ops_); + auto po = NelPolicyInfo::CreatePendingOperation(PendingOperationType::DELETE, + policy); + if (!po) + return; + BatchOperation(NelPolicyKey(policy.network_isolation_key, policy.origin), + std::move(po), &nel_policy_pending_ops_); } void SQLitePersistentReportingAndNelStore::Backend::LoadReportingClients( @@ -471,9 +613,10 @@ void SQLitePersistentReportingAndNelStore::Backend::AddReportingEndpoint( const ReportingEndpoint& endpoint) { - auto po = std::make_unique<PendingOperation<ReportingEndpointInfo>>( - PendingOperation<ReportingEndpointInfo>::Type::ADD, - ReportingEndpointInfo(endpoint)); + auto po = ReportingEndpointInfo::CreatePendingOperation( + PendingOperationType::ADD, endpoint); + if (!po) + return; ReportingEndpointKey key = std::make_pair(endpoint.group_key, endpoint.info.url); BatchOperation(std::move(key), std::move(po), @@ -482,9 +625,10 @@ void SQLitePersistentReportingAndNelStore::Backend::AddReportingEndpointGroup( const CachedReportingEndpointGroup& group) { - auto po = std::make_unique<PendingOperation<ReportingEndpointGroupInfo>>( - PendingOperation<ReportingEndpointGroupInfo>::Type::ADD, - ReportingEndpointGroupInfo(group)); + auto po = ReportingEndpointGroupInfo::CreatePendingOperation( + PendingOperationType::ADD, group); + if (!po) + return; BatchOperation(group.group_key, std::move(po), &reporting_endpoint_group_pending_ops_); } @@ -492,18 +636,20 @@ void SQLitePersistentReportingAndNelStore::Backend:: UpdateReportingEndpointGroupAccessTime( const CachedReportingEndpointGroup& group) { - auto po = std::make_unique<PendingOperation<ReportingEndpointGroupInfo>>( - PendingOperation<ReportingEndpointGroupInfo>::Type::UPDATE_ACCESS_TIME, - ReportingEndpointGroupInfo(group)); + auto po = ReportingEndpointGroupInfo::CreatePendingOperation( + PendingOperationType::UPDATE_ACCESS_TIME, group); + if (!po) + return; BatchOperation(group.group_key, std::move(po), &reporting_endpoint_group_pending_ops_); } void SQLitePersistentReportingAndNelStore::Backend:: UpdateReportingEndpointDetails(const ReportingEndpoint& endpoint) { - auto po = std::make_unique<PendingOperation<ReportingEndpointInfo>>( - PendingOperation<ReportingEndpointInfo>::Type::UPDATE_DETAILS, - ReportingEndpointInfo(endpoint)); + auto po = ReportingEndpointInfo::CreatePendingOperation( + PendingOperationType::UPDATE_DETAILS, endpoint); + if (!po) + return; ReportingEndpointKey key = std::make_pair(endpoint.group_key, endpoint.info.url); BatchOperation(std::move(key), std::move(po), @@ -513,18 +659,20 @@ void SQLitePersistentReportingAndNelStore::Backend:: UpdateReportingEndpointGroupDetails( const CachedReportingEndpointGroup& group) { - auto po = std::make_unique<PendingOperation<ReportingEndpointGroupInfo>>( - PendingOperation<ReportingEndpointGroupInfo>::Type::UPDATE_DETAILS, - ReportingEndpointGroupInfo(group)); + auto po = ReportingEndpointGroupInfo::CreatePendingOperation( + PendingOperationType::UPDATE_DETAILS, group); + if (!po) + return; BatchOperation(group.group_key, std::move(po), &reporting_endpoint_group_pending_ops_); } void SQLitePersistentReportingAndNelStore::Backend::DeleteReportingEndpoint( const ReportingEndpoint& endpoint) { - auto po = std::make_unique<PendingOperation<ReportingEndpointInfo>>( - PendingOperation<ReportingEndpointInfo>::Type::DELETE, - ReportingEndpointInfo(endpoint)); + auto po = ReportingEndpointInfo::CreatePendingOperation( + PendingOperationType::DELETE, endpoint); + if (!po) + return; ReportingEndpointKey key = std::make_pair(endpoint.group_key, endpoint.info.url); BatchOperation(std::move(key), std::move(po), @@ -533,9 +681,10 @@ void SQLitePersistentReportingAndNelStore::Backend:: DeleteReportingEndpointGroup(const CachedReportingEndpointGroup& group) { - auto po = std::make_unique<PendingOperation<ReportingEndpointGroupInfo>>( - PendingOperation<ReportingEndpointGroupInfo>::Type::DELETE, - ReportingEndpointGroupInfo(group)); + auto po = ReportingEndpointGroupInfo::CreatePendingOperation( + PendingOperationType::DELETE, group); + if (!po) + return; BatchOperation(group.group_key, std::move(po), &reporting_endpoint_group_pending_ops_); } @@ -560,17 +709,17 @@ bool SQLitePersistentReportingAndNelStore::Backend::CreateDatabaseSchema() { if (!db()->DoesTableExist("nel_policies") && - !CreateV1NelPoliciesSchema(db())) { + !CreateV2NelPoliciesSchema(db())) { return false; } if (!db()->DoesTableExist("reporting_endpoints") && - !CreateV1ReportingEndpointsSchema(db())) { + !CreateV2ReportingEndpointsSchema(db())) { return false; } if (!db()->DoesTableExist("reporting_endpoint_groups") && - !CreateV1ReportingEndpointGroupsSchema(db())) { + !CreateV2ReportingEndpointGroupsSchema(db())) { return false; } @@ -583,13 +732,103 @@ SQLitePersistentReportingAndNelStore::Backend::DoMigrateDatabaseSchema() { int cur_version = meta_table()->GetVersionNumber(); + // Migrate from version 1 to version 2. + // + // For migration purposes, the NetworkIsolationKey field of the stored + // policies will be populated with an empty list, which corresponds to an + // empty NIK. This matches the behavior when NIKs are disabled. This will + // result in effectively clearing all policies once NIKs are enabled, at + // which point the the migration code should just be switched to deleting + // the old tables instead. + if (cur_version == 1) { + sql::Transaction transaction(db()); + if (!transaction.Begin()) + return base::nullopt; + + // Migrate NEL policies table. + if (!db()->Execute("DROP TABLE IF EXISTS nel_policies_old; " + "ALTER TABLE nel_policies RENAME TO nel_policies_old")) { + return base::nullopt; + } + if (!CreateV2NelPoliciesSchema(db())) + return base::nullopt; + // clang-format off + // The "report_to" field is renamed to "group_name" for consistency with + // the other tables. + std::string nel_policies_migrate_stmt = + "INSERT INTO nel_policies (nik, origin_scheme, origin_host, " + " origin_port, group_name, received_ip_address, expires_us_since_epoch, " + " success_fraction, failure_fraction, is_include_subdomains, " + " last_access_us_since_epoch) " + "SELECT '[]', origin_scheme, origin_host, origin_port, " + " report_to, received_ip_address, expires_us_since_epoch, " + " success_fraction, failure_fraction, is_include_subdomains, " + " last_access_us_since_epoch " + "FROM nel_policies_old" ; + // clang-format on + if (!db()->Execute(nel_policies_migrate_stmt.c_str())) + return base::nullopt; + if (!db()->Execute("DROP TABLE nel_policies_old")) + return base::nullopt; + + // Migrate Reporting endpoints table. + if (!db()->Execute("DROP TABLE IF EXISTS reporting_endpoints_old; " + "ALTER TABLE reporting_endpoints RENAME TO " + "reporting_endpoints_old")) { + return base::nullopt; + } + if (!CreateV2ReportingEndpointsSchema(db())) + return base::nullopt; + // clang-format off + std::string reporting_endpoints_migrate_stmt = + "INSERT INTO reporting_endpoints (nik, origin_scheme, origin_host, " + " origin_port, group_name, url, priority, weight) " + "SELECT '[]', origin_scheme, origin_host, origin_port, group_name, " + " url, priority, weight " + "FROM reporting_endpoints_old" ; + // clang-format on + if (!db()->Execute(reporting_endpoints_migrate_stmt.c_str())) + return base::nullopt; + if (!db()->Execute("DROP TABLE reporting_endpoints_old")) + return base::nullopt; + + // Migrate Reporting endpoint groups table. + if (!db()->Execute("DROP TABLE IF EXISTS reporting_endpoint_groups_old; " + "ALTER TABLE reporting_endpoint_groups RENAME TO " + "reporting_endpoint_groups_old")) { + return base::nullopt; + } + if (!CreateV2ReportingEndpointGroupsSchema(db())) + return base::nullopt; + // clang-format off + std::string reporting_endpoint_groups_migrate_stmt = + "INSERT INTO reporting_endpoint_groups (nik, origin_scheme, " + " origin_host, origin_port, group_name, is_include_subdomains, " + " expires_us_since_epoch, last_access_us_since_epoch) " + "SELECT '[]', origin_scheme, origin_host, origin_port, " + " group_name, is_include_subdomains, expires_us_since_epoch, " + " last_access_us_since_epoch " + "FROM reporting_endpoint_groups_old" ; + // clang-format on + if (!db()->Execute(reporting_endpoint_groups_migrate_stmt.c_str())) + return base::nullopt; + if (!db()->Execute("DROP TABLE reporting_endpoint_groups_old")) + return base::nullopt; + + ++cur_version; + meta_table()->SetVersionNumber(cur_version); + meta_table()->SetCompatibleVersionNumber( + std::min(cur_version, kCompatibleVersionNumber)); + transaction.Commit(); + } + // Future database upgrade statements go here. return base::make_optional(cur_version); } void SQLitePersistentReportingAndNelStore::Backend::DoCommit() { - QueueType<url::Origin, NelPolicyInfo> nel_policy_ops; + QueueType<NelPolicyKey, NelPolicyInfo> nel_policy_ops; QueueType<ReportingEndpointKey, ReportingEndpointInfo> reporting_endpoint_ops; QueueType<ReportingEndpointGroupKey, ReportingEndpointGroupInfo> reporting_endpoint_group_ops; @@ -662,55 +901,58 @@ sql::Statement add_smt(db()->GetCachedStatement( SQL_FROM_HERE, - "INSERT INTO nel_policies (origin_scheme, origin_host, origin_port, " - "received_ip_address, report_to, expires_us_since_epoch, " + "INSERT INTO nel_policies (nik, origin_scheme, origin_host, origin_port, " + "received_ip_address, group_name, expires_us_since_epoch, " "success_fraction, failure_fraction, is_include_subdomains, " - "last_access_us_since_epoch) VALUES (?,?,?,?,?,?,?,?,?,?)")); + "last_access_us_since_epoch) VALUES (?,?,?,?,?,?,?,?,?,?,?)")); if (!add_smt.is_valid()) return false; sql::Statement update_access_smt(db()->GetCachedStatement( SQL_FROM_HERE, "UPDATE nel_policies SET last_access_us_since_epoch=? WHERE " - "origin_scheme=? AND origin_host=? AND origin_port=?")); + "nik=? AND origin_scheme=? AND origin_host=? AND origin_port=?")); if (!update_access_smt.is_valid()) return false; sql::Statement del_smt(db()->GetCachedStatement( SQL_FROM_HERE, "DELETE FROM nel_policies WHERE " - "origin_scheme=? AND origin_host=? AND origin_port=?")); + "nik=? AND origin_scheme=? AND origin_host=? AND origin_port=?")); if (!del_smt.is_valid()) return false; const NelPolicyInfo& nel_policy_info = op->data(); switch (op->type()) { - case PendingOperation<NelPolicyInfo>::Type::ADD: + case PendingOperationType::ADD: add_smt.Reset(true); - add_smt.BindString(0, nel_policy_info.origin_scheme); - add_smt.BindString(1, nel_policy_info.origin_host); - add_smt.BindInt(2, nel_policy_info.origin_port); - add_smt.BindString(3, nel_policy_info.received_ip_address); - add_smt.BindString(4, nel_policy_info.report_to); - add_smt.BindInt64(5, nel_policy_info.expires_us_since_epoch); - add_smt.BindDouble(6, nel_policy_info.success_fraction); - add_smt.BindDouble(7, nel_policy_info.failure_fraction); - add_smt.BindBool(8, nel_policy_info.is_include_subdomains); - add_smt.BindInt64(9, nel_policy_info.last_access_us_since_epoch); + add_smt.BindString(0, nel_policy_info.network_isolation_key_string); + add_smt.BindString(1, nel_policy_info.origin_scheme); + add_smt.BindString(2, nel_policy_info.origin_host); + add_smt.BindInt(3, nel_policy_info.origin_port); + add_smt.BindString(4, nel_policy_info.received_ip_address); + add_smt.BindString(5, nel_policy_info.report_to); + add_smt.BindInt64(6, nel_policy_info.expires_us_since_epoch); + add_smt.BindDouble(7, nel_policy_info.success_fraction); + add_smt.BindDouble(8, nel_policy_info.failure_fraction); + add_smt.BindBool(9, nel_policy_info.is_include_subdomains); + add_smt.BindInt64(10, nel_policy_info.last_access_us_since_epoch); if (!add_smt.Run()) { DLOG(WARNING) << "Could not add a NEL policy to the DB."; return false; } break; - case PendingOperation<NelPolicyInfo>::Type::UPDATE_ACCESS_TIME: + case PendingOperationType::UPDATE_ACCESS_TIME: update_access_smt.Reset(true); update_access_smt.BindInt64(0, nel_policy_info.last_access_us_since_epoch); - update_access_smt.BindString(1, nel_policy_info.origin_scheme); - update_access_smt.BindString(2, nel_policy_info.origin_host); - update_access_smt.BindInt(3, nel_policy_info.origin_port); + update_access_smt.BindString( + 1, nel_policy_info.network_isolation_key_string); + update_access_smt.BindString(2, nel_policy_info.origin_scheme); + update_access_smt.BindString(3, nel_policy_info.origin_host); + update_access_smt.BindInt(4, nel_policy_info.origin_port); if (!update_access_smt.Run()) { DLOG(WARNING) << "Could not update NEL policy last access time in the DB."; @@ -718,11 +960,12 @@ } break; - case PendingOperation<NelPolicyInfo>::Type::DELETE: + case PendingOperationType::DELETE: del_smt.Reset(true); - del_smt.BindString(0, nel_policy_info.origin_scheme); - del_smt.BindString(1, nel_policy_info.origin_host); - del_smt.BindInt(2, nel_policy_info.origin_port); + del_smt.BindString(0, nel_policy_info.network_isolation_key_string); + del_smt.BindString(1, nel_policy_info.origin_scheme); + del_smt.BindString(2, nel_policy_info.origin_host); + del_smt.BindInt(3, nel_policy_info.origin_port); if (!del_smt.Run()) { DLOG(WARNING) << "Could not delete a NEL policy from the DB."; return false; @@ -747,16 +990,16 @@ sql::Statement add_smt(db()->GetCachedStatement( SQL_FROM_HERE, - "INSERT INTO reporting_endpoints (origin_scheme, origin_host, " + "INSERT INTO reporting_endpoints (nik, origin_scheme, origin_host, " "origin_port, group_name, url, priority, weight) " - "VALUES (?,?,?,?,?,?,?)")); + "VALUES (?,?,?,?,?,?,?,?)")); if (!add_smt.is_valid()) return false; sql::Statement update_details_smt(db()->GetCachedStatement( SQL_FROM_HERE, "UPDATE reporting_endpoints SET priority=?, weight=? WHERE " - "origin_scheme=? AND origin_host=? AND origin_port=? " + "nik=? AND origin_scheme=? AND origin_host=? AND origin_port=? " "AND group_name=? AND url=?")); if (!update_details_smt.is_valid()) return false; @@ -764,7 +1007,7 @@ sql::Statement del_smt(db()->GetCachedStatement( SQL_FROM_HERE, "DELETE FROM reporting_endpoints WHERE " - "origin_scheme=? AND origin_host=? AND origin_port=? " + "nik=? AND origin_scheme=? AND origin_host=? AND origin_port=? " "AND group_name=? AND url=?")); if (!del_smt.is_valid()) return false; @@ -772,30 +1015,34 @@ const ReportingEndpointInfo& reporting_endpoint_info = op->data(); switch (op->type()) { - case PendingOperation<ReportingEndpointInfo>::Type::ADD: + case PendingOperationType::ADD: add_smt.Reset(true); - add_smt.BindString(0, reporting_endpoint_info.origin_scheme); - add_smt.BindString(1, reporting_endpoint_info.origin_host); - add_smt.BindInt(2, reporting_endpoint_info.origin_port); - add_smt.BindString(3, reporting_endpoint_info.group_name); - add_smt.BindString(4, reporting_endpoint_info.url); - add_smt.BindInt(5, reporting_endpoint_info.priority); - add_smt.BindInt(6, reporting_endpoint_info.weight); + add_smt.BindString(0, + reporting_endpoint_info.network_isolation_key_string); + add_smt.BindString(1, reporting_endpoint_info.origin_scheme); + add_smt.BindString(2, reporting_endpoint_info.origin_host); + add_smt.BindInt(3, reporting_endpoint_info.origin_port); + add_smt.BindString(4, reporting_endpoint_info.group_name); + add_smt.BindString(5, reporting_endpoint_info.url); + add_smt.BindInt(6, reporting_endpoint_info.priority); + add_smt.BindInt(7, reporting_endpoint_info.weight); if (!add_smt.Run()) { DLOG(WARNING) << "Could not add a Reporting endpoint to the DB."; return false; } break; - case PendingOperation<ReportingEndpointInfo>::Type::UPDATE_DETAILS: + case PendingOperationType::UPDATE_DETAILS: update_details_smt.Reset(true); update_details_smt.BindInt(0, reporting_endpoint_info.priority); update_details_smt.BindInt(1, reporting_endpoint_info.weight); - update_details_smt.BindString(2, reporting_endpoint_info.origin_scheme); - update_details_smt.BindString(3, reporting_endpoint_info.origin_host); - update_details_smt.BindInt(4, reporting_endpoint_info.origin_port); - update_details_smt.BindString(5, reporting_endpoint_info.group_name); - update_details_smt.BindString(6, reporting_endpoint_info.url); + update_details_smt.BindString( + 2, reporting_endpoint_info.network_isolation_key_string); + update_details_smt.BindString(3, reporting_endpoint_info.origin_scheme); + update_details_smt.BindString(4, reporting_endpoint_info.origin_host); + update_details_smt.BindInt(5, reporting_endpoint_info.origin_port); + update_details_smt.BindString(6, reporting_endpoint_info.group_name); + update_details_smt.BindString(7, reporting_endpoint_info.url); if (!update_details_smt.Run()) { DLOG(WARNING) << "Could not update Reporting endpoint details in the DB."; @@ -803,13 +1050,15 @@ } break; - case PendingOperation<ReportingEndpointInfo>::Type::DELETE: + case PendingOperationType::DELETE: del_smt.Reset(true); - del_smt.BindString(0, reporting_endpoint_info.origin_scheme); - del_smt.BindString(1, reporting_endpoint_info.origin_host); - del_smt.BindInt(2, reporting_endpoint_info.origin_port); - del_smt.BindString(3, reporting_endpoint_info.group_name); - del_smt.BindString(4, reporting_endpoint_info.url); + del_smt.BindString(0, + reporting_endpoint_info.network_isolation_key_string); + del_smt.BindString(1, reporting_endpoint_info.origin_scheme); + del_smt.BindString(2, reporting_endpoint_info.origin_host); + del_smt.BindInt(3, reporting_endpoint_info.origin_port); + del_smt.BindString(4, reporting_endpoint_info.group_name); + del_smt.BindString(5, reporting_endpoint_info.url); if (!del_smt.Run()) { DLOG(WARNING) << "Could not delete a Reporting endpoint from the DB."; return false; @@ -833,16 +1082,17 @@ sql::Statement add_smt(db()->GetCachedStatement( SQL_FROM_HERE, - "INSERT INTO reporting_endpoint_groups (origin_scheme, origin_host, " + "INSERT INTO reporting_endpoint_groups (nik, origin_scheme, origin_host, " "origin_port, group_name, is_include_subdomains, expires_us_since_epoch, " - "last_access_us_since_epoch) VALUES (?,?,?,?,?,?,?)")); + "last_access_us_since_epoch) VALUES (?,?,?,?,?,?,?,?)")); if (!add_smt.is_valid()) return false; sql::Statement update_access_smt(db()->GetCachedStatement( SQL_FROM_HERE, "UPDATE reporting_endpoint_groups SET last_access_us_since_epoch=? WHERE " - "origin_scheme=? AND origin_host=? AND origin_port=? AND group_name=?")); + "nik=? AND origin_scheme=? AND origin_host=? AND origin_port=? AND " + "group_name=?")); if (!update_access_smt.is_valid()) return false; @@ -850,47 +1100,53 @@ SQL_FROM_HERE, "UPDATE reporting_endpoint_groups SET is_include_subdomains=?, " "expires_us_since_epoch=?, last_access_us_since_epoch=? WHERE " - "origin_scheme=? AND origin_host=? AND origin_port=? AND group_name=?")); + "nik=? AND origin_scheme=? AND origin_host=? AND origin_port=? AND " + "group_name=?")); if (!update_details_smt.is_valid()) return false; - sql::Statement del_smt(db()->GetCachedStatement( - SQL_FROM_HERE, - "DELETE FROM reporting_endpoint_groups WHERE " - "origin_scheme=? AND origin_host=? AND origin_port=? AND group_name=?")); + sql::Statement del_smt( + db()->GetCachedStatement(SQL_FROM_HERE, + "DELETE FROM reporting_endpoint_groups WHERE " + "nik=? AND origin_scheme=? AND origin_host=? " + "AND origin_port=? AND group_name=?")); if (!del_smt.is_valid()) return false; const ReportingEndpointGroupInfo& reporting_endpoint_group_info = op->data(); switch (op->type()) { - case PendingOperation<ReportingEndpointGroupInfo>::Type::ADD: + case PendingOperationType::ADD: add_smt.Reset(true); - add_smt.BindString(0, reporting_endpoint_group_info.origin_scheme); - add_smt.BindString(1, reporting_endpoint_group_info.origin_host); - add_smt.BindInt(2, reporting_endpoint_group_info.origin_port); - add_smt.BindString(3, reporting_endpoint_group_info.group_name); - add_smt.BindBool(4, reporting_endpoint_group_info.is_include_subdomains); - add_smt.BindInt64(5, + add_smt.BindString( + 0, reporting_endpoint_group_info.network_isolation_key_string); + add_smt.BindString(1, reporting_endpoint_group_info.origin_scheme); + add_smt.BindString(2, reporting_endpoint_group_info.origin_host); + add_smt.BindInt(3, reporting_endpoint_group_info.origin_port); + add_smt.BindString(4, reporting_endpoint_group_info.group_name); + add_smt.BindBool(5, reporting_endpoint_group_info.is_include_subdomains); + add_smt.BindInt64(6, reporting_endpoint_group_info.expires_us_since_epoch); add_smt.BindInt64( - 6, reporting_endpoint_group_info.last_access_us_since_epoch); + 7, reporting_endpoint_group_info.last_access_us_since_epoch); if (!add_smt.Run()) { DLOG(WARNING) << "Could not add a Reporting endpoint group to the DB."; return false; } break; - case PendingOperation<ReportingEndpointGroupInfo>::Type::UPDATE_ACCESS_TIME: + case PendingOperationType::UPDATE_ACCESS_TIME: update_access_smt.Reset(true); update_access_smt.BindInt64( 0, reporting_endpoint_group_info.last_access_us_since_epoch); - update_access_smt.BindString(1, - reporting_endpoint_group_info.origin_scheme); + update_access_smt.BindString( + 1, reporting_endpoint_group_info.network_isolation_key_string); update_access_smt.BindString(2, + reporting_endpoint_group_info.origin_scheme); + update_access_smt.BindString(3, reporting_endpoint_group_info.origin_host); - update_access_smt.BindInt(3, reporting_endpoint_group_info.origin_port); - update_access_smt.BindString(4, reporting_endpoint_group_info.group_name); + update_access_smt.BindInt(4, reporting_endpoint_group_info.origin_port); + update_access_smt.BindString(5, reporting_endpoint_group_info.group_name); if (!update_access_smt.Run()) { DLOG(WARNING) << "Could not update Reporting endpoint group last access " @@ -899,7 +1155,7 @@ } break; - case PendingOperation<ReportingEndpointGroupInfo>::Type::UPDATE_DETAILS: + case PendingOperationType::UPDATE_DETAILS: update_details_smt.Reset(true); update_details_smt.BindBool( 0, reporting_endpoint_group_info.is_include_subdomains); @@ -908,11 +1164,13 @@ update_details_smt.BindInt64( 2, reporting_endpoint_group_info.last_access_us_since_epoch); update_details_smt.BindString( - 3, reporting_endpoint_group_info.origin_scheme); - update_details_smt.BindString(4, + 3, reporting_endpoint_group_info.network_isolation_key_string); + update_details_smt.BindString( + 4, reporting_endpoint_group_info.origin_scheme); + update_details_smt.BindString(5, reporting_endpoint_group_info.origin_host); - update_details_smt.BindInt(5, reporting_endpoint_group_info.origin_port); - update_details_smt.BindString(6, + update_details_smt.BindInt(6, reporting_endpoint_group_info.origin_port); + update_details_smt.BindString(7, reporting_endpoint_group_info.group_name); if (!update_details_smt.Run()) { DLOG(WARNING) @@ -921,12 +1179,14 @@ } break; - case PendingOperation<ReportingEndpointGroupInfo>::Type::DELETE: + case PendingOperationType::DELETE: del_smt.Reset(true); - del_smt.BindString(0, reporting_endpoint_group_info.origin_scheme); - del_smt.BindString(1, reporting_endpoint_group_info.origin_host); - del_smt.BindInt(2, reporting_endpoint_group_info.origin_port); - del_smt.BindString(3, reporting_endpoint_group_info.group_name); + del_smt.BindString( + 0, reporting_endpoint_group_info.network_isolation_key_string); + del_smt.BindString(1, reporting_endpoint_group_info.origin_scheme); + del_smt.BindString(2, reporting_endpoint_group_info.origin_host); + del_smt.BindInt(3, reporting_endpoint_group_info.origin_port); + del_smt.BindString(4, reporting_endpoint_group_info.group_name); if (!del_smt.Run()) { DLOG(WARNING) << "Could not delete a Reporting endpoint group from the DB."; @@ -975,35 +1235,35 @@ DCHECK(!ops_for_key->empty()); switch (new_op->type()) { - case PendingOperation<DataType>::Type::DELETE: + case PendingOperationType::DELETE: // A delete makes all previous operations irrelevant. ops_for_key->clear(); break; - case PendingOperation<DataType>::Type::UPDATE_ACCESS_TIME: + case PendingOperationType::UPDATE_ACCESS_TIME: if (ops_for_key->back()->type() == - PendingOperation<DataType>::Type::UPDATE_ACCESS_TIME) { + PendingOperationType::UPDATE_ACCESS_TIME) { // Updating the access time twice in a row is equivalent to just the // latter update. ops_for_key->pop_back(); } break; - case PendingOperation<DataType>::Type::UPDATE_DETAILS: + case PendingOperationType::UPDATE_DETAILS: while (!ops_for_key->empty() && // Updating the details twice in a row is equivalent to just the // latter update. (ops_for_key->back()->type() == - PendingOperation<DataType>::Type::UPDATE_DETAILS || + PendingOperationType::UPDATE_DETAILS || // UPDATE_DETAILS also updates the access time, so either type of // update operation can be discarded. ops_for_key->back()->type() == - PendingOperation<DataType>::Type::UPDATE_ACCESS_TIME)) { + PendingOperationType::UPDATE_ACCESS_TIME)) { ops_for_key->pop_back(); } break; - case PendingOperation<DataType>::Type::ADD: + case PendingOperationType::ADD: // Nothing special is done for an add operation. If it is overwriting an // existing entry, it will be preceded by at most one delete. DCHECK_LE(ops_for_key->size(), 1u); @@ -1050,8 +1310,9 @@ } sql::Statement smt(db()->GetUniqueStatement( - "SELECT origin_scheme, origin_host, origin_port, received_ip_address, " - "report_to, expires_us_since_epoch, success_fraction, failure_fraction, " + "SELECT nik, origin_scheme, origin_host, origin_port, " + "received_ip_address, " + "group_name, expires_us_since_epoch, success_fraction, failure_fraction, " "is_include_subdomains, last_access_us_since_epoch FROM nel_policies")); if (!smt.is_valid()) { Reset(); @@ -1064,22 +1325,28 @@ } while (smt.Step()) { - // Reconstitute a NEL policy from the fields stored in the database. + // Attempt to reconstitute a NEL policy from the fields stored in the + // database. + NetworkIsolationKey network_isolation_key; + if (!NetworkIsolationKeyFromString(smt.ColumnString(0), + &network_isolation_key)) + continue; NetworkErrorLoggingService::NelPolicy policy; + policy.network_isolation_key = network_isolation_key; policy.origin = url::Origin::CreateFromNormalizedTuple( - /* origin_scheme = */ smt.ColumnString(0), - /* origin_host = */ smt.ColumnString(1), - /* origin_port = */ smt.ColumnInt(2)); - if (!policy.received_ip_address.AssignFromIPLiteral(smt.ColumnString(3))) + /* origin_scheme = */ smt.ColumnString(1), + /* origin_host = */ smt.ColumnString(2), + /* origin_port = */ smt.ColumnInt(3)); + if (!policy.received_ip_address.AssignFromIPLiteral(smt.ColumnString(4))) policy.received_ip_address = IPAddress(); - policy.report_to = smt.ColumnString(4); + policy.report_to = smt.ColumnString(5); policy.expires = base::Time::FromDeltaSinceWindowsEpoch( - base::TimeDelta::FromMicroseconds(smt.ColumnInt64(5))); - policy.success_fraction = smt.ColumnDouble(6); - policy.failure_fraction = smt.ColumnDouble(7); - policy.include_subdomains = smt.ColumnBool(8); + base::TimeDelta::FromMicroseconds(smt.ColumnInt64(6))); + policy.success_fraction = smt.ColumnDouble(7); + policy.failure_fraction = smt.ColumnDouble(8); + policy.include_subdomains = smt.ColumnBool(9); policy.last_used = base::Time::FromDeltaSinceWindowsEpoch( - base::TimeDelta::FromMicroseconds(smt.ColumnInt64(9))); + base::TimeDelta::FromMicroseconds(smt.ColumnInt64(10))); loaded_policies.push_back(std::move(policy)); } @@ -1125,10 +1392,10 @@ } sql::Statement endpoints_smt(db()->GetUniqueStatement( - "SELECT origin_scheme, origin_host, origin_port, group_name, " + "SELECT nik, origin_scheme, origin_host, origin_port, group_name, " "url, priority, weight FROM reporting_endpoints")); sql::Statement endpoint_groups_smt(db()->GetUniqueStatement( - "SELECT origin_scheme, origin_host, origin_port, group_name, " + "SELECT nik, origin_scheme, origin_host, origin_port, group_name, " "is_include_subdomains, expires_us_since_epoch, " "last_access_us_since_epoch FROM reporting_endpoint_groups")); if (!endpoints_smt.is_valid() || !endpoint_groups_smt.is_valid()) { @@ -1143,42 +1410,51 @@ } while (endpoints_smt.Step()) { - // Reconstitute a ReportingEndpoint from the fields stored in the database. + // Attempt to reconstitute a ReportingEndpoint from the fields stored in the + // database. + NetworkIsolationKey network_isolation_key; + if (!NetworkIsolationKeyFromString(endpoints_smt.ColumnString(0), + &network_isolation_key)) + continue; ReportingEndpointGroupKey group_key( - /* network_isolation_key = */ NetworkIsolationKey::Todo(), + network_isolation_key, /* origin = */ url::Origin::CreateFromNormalizedTuple( - /* origin_scheme = */ endpoints_smt.ColumnString(0), - /* origin_host = */ endpoints_smt.ColumnString(1), - /* origin_port = */ endpoints_smt.ColumnInt(2)), - /* group_name = */ endpoints_smt.ColumnString(3)); + /* origin_scheme = */ endpoints_smt.ColumnString(1), + /* origin_host = */ endpoints_smt.ColumnString(2), + /* origin_port = */ endpoints_smt.ColumnInt(3)), + /* group_name = */ endpoints_smt.ColumnString(4)); ReportingEndpoint::EndpointInfo endpoint_info; - endpoint_info.url = GURL(endpoints_smt.ColumnString(4)); - endpoint_info.priority = endpoints_smt.ColumnInt(5); - endpoint_info.weight = endpoints_smt.ColumnInt(6); + endpoint_info.url = GURL(endpoints_smt.ColumnString(5)); + endpoint_info.priority = endpoints_smt.ColumnInt(6); + endpoint_info.weight = endpoints_smt.ColumnInt(7); loaded_endpoints.emplace_back(std::move(group_key), std::move(endpoint_info)); } while (endpoint_groups_smt.Step()) { - // Reconstitute a CachedReportingEndpointGroup from the fields stored in the - // database. + // Attempt to reconstitute a CachedReportingEndpointGroup from the fields + // stored in the database. + NetworkIsolationKey network_isolation_key; + if (!NetworkIsolationKeyFromString(endpoint_groups_smt.ColumnString(0), + &network_isolation_key)) + continue; ReportingEndpointGroupKey group_key( - /* network_isolation_key = */ NetworkIsolationKey::Todo(), + network_isolation_key, /* origin = */ url::Origin::CreateFromNormalizedTuple( - /* origin_scheme = */ endpoint_groups_smt.ColumnString(0), - /* origin_host = */ endpoint_groups_smt.ColumnString(1), - /* origin_port = */ endpoint_groups_smt.ColumnInt(2)), - /* group_name = */ endpoint_groups_smt.ColumnString(3)); - OriginSubdomains include_subdomains = endpoint_groups_smt.ColumnBool(4) + /* origin_scheme = */ endpoint_groups_smt.ColumnString(1), + /* origin_host = */ endpoint_groups_smt.ColumnString(2), + /* origin_port = */ endpoint_groups_smt.ColumnInt(3)), + /* group_name = */ endpoint_groups_smt.ColumnString(4)); + OriginSubdomains include_subdomains = endpoint_groups_smt.ColumnBool(5) ? OriginSubdomains::INCLUDE : OriginSubdomains::EXCLUDE; base::Time expires = base::Time::FromDeltaSinceWindowsEpoch( - base::TimeDelta::FromMicroseconds(endpoint_groups_smt.ColumnInt64(5))); - base::Time last_used = base::Time::FromDeltaSinceWindowsEpoch( base::TimeDelta::FromMicroseconds(endpoint_groups_smt.ColumnInt64(6))); + base::Time last_used = base::Time::FromDeltaSinceWindowsEpoch( + base::TimeDelta::FromMicroseconds(endpoint_groups_smt.ColumnInt64(7))); loaded_endpoint_groups.emplace_back(std::move(group_key), include_subdomains, expires, last_used);
diff --git a/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store_unittest.cc b/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store_unittest.cc index aed51b9a..000a737 100644 --- a/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store_unittest.cc +++ b/net/extras/sqlite/sqlite_persistent_reporting_and_nel_store_unittest.cc
@@ -20,6 +20,7 @@ #include "base/test/simple_test_clock.h" #include "base/threading/thread_restrictions.h" #include "base/threading/thread_task_runner_handle.h" +#include "net/base/network_isolation_key.h" #include "net/network_error_logging/network_error_logging_service.h" #include "net/reporting/reporting_test_util.h" #include "net/test/test_with_task_environment.h" @@ -177,9 +178,12 @@ void TearDown() override { DestroyStore(); } - NetworkErrorLoggingService::NelPolicy MakeNelPolicy(url::Origin origin, - base::Time last_used) { + NetworkErrorLoggingService::NelPolicy MakeNelPolicy( + const NetworkIsolationKey& network_isolation_key, + const url::Origin& origin, + base::Time last_used) { NetworkErrorLoggingService::NelPolicy policy; + policy.network_isolation_key = network_isolation_key; policy.origin = origin; policy.received_ip_address = IPAddress::IPv4Localhost(); policy.report_to = "group"; @@ -192,9 +196,10 @@ } ReportingEndpoint MakeReportingEndpoint( - url::Origin origin, - std::string group_name, - GURL url, + const NetworkIsolationKey& network_isolation_key, + const url::Origin& origin, + const std::string& group_name, + const GURL& url, int priority = ReportingEndpoint::EndpointInfo::kDefaultPriority, int weight = ReportingEndpoint::EndpointInfo::kDefaultWeight) { ReportingEndpoint::EndpointInfo info; @@ -202,23 +207,34 @@ info.priority = priority; info.weight = weight; ReportingEndpoint endpoint( - ReportingEndpointGroupKey(NetworkIsolationKey(), origin, group_name), + ReportingEndpointGroupKey(network_isolation_key, origin, group_name), std::move(info)); return endpoint; } CachedReportingEndpointGroup MakeReportingEndpointGroup( - url::Origin origin, - std::string group_name, + const NetworkIsolationKey& network_isolation_key, + const url::Origin& origin, + const std::string& group_name, base::Time last_used, OriginSubdomains include_subdomains = OriginSubdomains::DEFAULT, base::Time expires = kExpires) { return CachedReportingEndpointGroup( - ReportingEndpointGroupKey(NetworkIsolationKey(), origin, group_name), + ReportingEndpointGroupKey(network_isolation_key, origin, group_name), include_subdomains, expires, last_used); } protected: + // Use origins distinct from those used in origin fields of keys, to avoid any + // risk of tests passing due to comparing origins that are the same but come + // from different sources. + const NetworkIsolationKey kNik1_ = NetworkIsolationKey( + url::Origin::Create(GURL("https://top-frame-origin-nik1.test")), + url::Origin::Create(GURL("https://frame-origin-nik1.test"))); + const NetworkIsolationKey kNik2_ = NetworkIsolationKey( + url::Origin::Create(GURL("https://top-frame-origin-nik2.test")), + url::Origin::Create(GURL("https://frame-origin-nik2.test"))); + base::ScopedTempDir temp_dir_; std::unique_ptr<SQLitePersistentReportingAndNelStore> store_; const scoped_refptr<base::SequencedTaskRunner> client_task_runner_ = @@ -242,8 +258,8 @@ CreateStore(); InitializeStore(); base::Time now = base::Time::Now(); - NetworkErrorLoggingService::NelPolicy policy1 = - MakeNelPolicy(url::Origin::Create(GURL("https://www.foo.test")), now); + NetworkErrorLoggingService::NelPolicy policy1 = MakeNelPolicy( + kNik1_, url::Origin::Create(GURL("https://www.foo.test")), now); store_->AddNelPolicy(policy1); // Close and reopen the database. @@ -254,6 +270,7 @@ std::vector<NetworkErrorLoggingService::NelPolicy> policies; LoadNelPolicies(&policies); ASSERT_EQ(1u, policies.size()); + EXPECT_EQ(policy1.network_isolation_key, policies[0].network_isolation_key); EXPECT_EQ(policy1.origin, policies[0].origin); EXPECT_EQ(policy1.received_ip_address, policies[0].received_ip_address); EXPECT_EQ(policy1.report_to, policies[0].report_to); @@ -286,14 +303,15 @@ hist_tester.ExpectUniqueSample("ReportingAndNEL.CorruptMetaTable", 1, 1); // Verify that, after, recovery, the database persists properly. - NetworkErrorLoggingService::NelPolicy policy2 = - MakeNelPolicy(url::Origin::Create(GURL("https://www.bar.test")), now); + NetworkErrorLoggingService::NelPolicy policy2 = MakeNelPolicy( + kNik2_, url::Origin::Create(GURL("https://www.bar.test")), now); store_->AddNelPolicy(policy2); DestroyStore(); CreateStore(); LoadNelPolicies(&policies); ASSERT_EQ(1u, policies.size()); + EXPECT_EQ(policy2.network_isolation_key, policies[0].network_isolation_key); EXPECT_EQ(policy2.origin, policies[0].origin); EXPECT_EQ(policy2.received_ip_address, policies[0].received_ip_address); EXPECT_EQ(policy2.report_to, policies[0].report_to); @@ -308,8 +326,8 @@ CreateStore(); InitializeStore(); base::Time now = base::Time::Now(); - NetworkErrorLoggingService::NelPolicy policy = - MakeNelPolicy(url::Origin::Create(GURL("https://www.foo.test")), now); + NetworkErrorLoggingService::NelPolicy policy = MakeNelPolicy( + kNik1_, url::Origin::Create(GURL("https://www.foo.test")), now); store_->AddNelPolicy(policy); // Close and reopen the database. @@ -320,6 +338,7 @@ std::vector<NetworkErrorLoggingService::NelPolicy> policies; LoadNelPolicies(&policies); ASSERT_EQ(1u, policies.size()); + EXPECT_EQ(policy.network_isolation_key, policies[0].network_isolation_key); EXPECT_EQ(policy.origin, policies[0].origin); EXPECT_EQ(policy.received_ip_address, policies[0].received_ip_address); EXPECT_EQ(policy.report_to, policies[0].report_to); @@ -349,8 +368,8 @@ CreateStore(); InitializeStore(); base::Time now = base::Time::Now(); - NetworkErrorLoggingService::NelPolicy policy = - MakeNelPolicy(url::Origin::Create(GURL("https://www.foo.test")), now); + NetworkErrorLoggingService::NelPolicy policy = MakeNelPolicy( + kNik1_, url::Origin::Create(GURL("https://www.foo.test")), now); store_->AddNelPolicy(policy); policy.last_used = now + base::TimeDelta::FromDays(1); @@ -364,6 +383,7 @@ std::vector<NetworkErrorLoggingService::NelPolicy> policies; LoadNelPolicies(&policies); ASSERT_EQ(1u, policies.size()); + EXPECT_EQ(policy.network_isolation_key, policies[0].network_isolation_key); EXPECT_EQ(policy.origin, policies[0].origin); EXPECT_TRUE(WithinOneMicrosecond(policy.last_used, policies[0].last_used)); } @@ -372,10 +392,10 @@ CreateStore(); InitializeStore(); base::Time now = base::Time::Now(); - NetworkErrorLoggingService::NelPolicy policy1 = - MakeNelPolicy(url::Origin::Create(GURL("https://www.foo.test")), now); - NetworkErrorLoggingService::NelPolicy policy2 = - MakeNelPolicy(url::Origin::Create(GURL("https://www.bar.test")), now); + NetworkErrorLoggingService::NelPolicy policy1 = MakeNelPolicy( + kNik1_, url::Origin::Create(GURL("https://www.foo.test")), now); + NetworkErrorLoggingService::NelPolicy policy2 = MakeNelPolicy( + kNik2_, url::Origin::Create(GURL("https://www.bar.test")), now); store_->AddNelPolicy(policy1); store_->AddNelPolicy(policy2); @@ -404,20 +424,40 @@ TEST_F(SQLitePersistentReportingAndNelStoreTest, NelPolicyUniquenessConstraint) { - const url::Origin kOrigin = url::Origin::Create(GURL("https://www.foo.test")); + const url::Origin kOrigin1 = + url::Origin::Create(GURL("https://www.bar.test")); + const url::Origin kOrigin2 = + url::Origin::Create(GURL("https://www.foo.test")); CreateStore(); InitializeStore(); base::Time now = base::Time::Now(); - NetworkErrorLoggingService::NelPolicy policy1 = MakeNelPolicy(kOrigin, now); - // Different NEL policy (different last_used) with the same origin. - NetworkErrorLoggingService::NelPolicy policy2 = - MakeNelPolicy(kOrigin, now + base::TimeDelta::FromDays(1)); + base::Time later = now + base::TimeDelta::FromDays(1); + // Add 3 entries, 2 identical except for NIK, 2 identical except for origin. + // Entries should not conflict with each other. These are added in lexical + // order. + NetworkErrorLoggingService::NelPolicy policy1 = + MakeNelPolicy(kNik1_, kOrigin1, now); + NetworkErrorLoggingService::NelPolicy policy2 = + MakeNelPolicy(kNik1_, kOrigin2, now); + NetworkErrorLoggingService::NelPolicy policy3 = + MakeNelPolicy(kNik2_, kOrigin1, now); store_->AddNelPolicy(policy1); - // Adding a policy with the same origin should trigger a warning and fail to - // execute. store_->AddNelPolicy(policy2); + store_->AddNelPolicy(policy3); + + // Add policies that are identical except for expiration time. These should + // trigger a warning an fail to execute. + NetworkErrorLoggingService::NelPolicy policy4 = + MakeNelPolicy(kNik1_, kOrigin1, later); + NetworkErrorLoggingService::NelPolicy policy5 = + MakeNelPolicy(kNik1_, kOrigin2, later); + NetworkErrorLoggingService::NelPolicy policy6 = + MakeNelPolicy(kNik2_, kOrigin1, later); + store_->AddNelPolicy(policy4); + store_->AddNelPolicy(policy5); + store_->AddNelPolicy(policy6); // Close and reopen the database. DestroyStore(); @@ -425,15 +465,28 @@ std::vector<NetworkErrorLoggingService::NelPolicy> policies; LoadNelPolicies(&policies); - // Only the first policy we added should be in the store. - ASSERT_EQ(1u, policies.size()); + + // Only the first 3 policies should be in the store. + + ASSERT_EQ(3u, policies.size()); + + EXPECT_EQ(policy1.network_isolation_key, policies[0].network_isolation_key); EXPECT_EQ(policy1.origin, policies[0].origin); EXPECT_TRUE(WithinOneMicrosecond(policy1.last_used, policies[0].last_used)); + + EXPECT_EQ(policy2.network_isolation_key, policies[1].network_isolation_key); + EXPECT_EQ(policy2.origin, policies[1].origin); + EXPECT_TRUE(WithinOneMicrosecond(policy2.last_used, policies[1].last_used)); + + EXPECT_EQ(policy3.network_isolation_key, policies[2].network_isolation_key); + EXPECT_EQ(policy3.origin, policies[2].origin); + EXPECT_TRUE(WithinOneMicrosecond(policy3.last_used, policies[2].last_used)); } TEST_F(SQLitePersistentReportingAndNelStoreTest, CoalesceNelPolicyOperations) { - NetworkErrorLoggingService::NelPolicy policy = MakeNelPolicy( - url::Origin::Create(GURL("https://www.foo.test")), base::Time::Now()); + NetworkErrorLoggingService::NelPolicy policy = + MakeNelPolicy(kNik1_, url::Origin::Create(GURL("https://www.foo.test")), + base::Time::Now()); base::WaitableEvent event(base::WaitableEvent::ResetPolicy::AUTOMATIC, base::WaitableEvent::InitialState::NOT_SIGNALED); @@ -489,10 +542,14 @@ InitializeStore(); base::Time now = base::Time::Now(); - NetworkErrorLoggingService::NelPolicy policy1 = - MakeNelPolicy(url::Origin::Create(GURL("https://www.foo.test")), now); - NetworkErrorLoggingService::NelPolicy policy2 = - MakeNelPolicy(url::Origin::Create(GURL("https://www.bar.test")), now); + NetworkErrorLoggingService::NelPolicy policy1 = MakeNelPolicy( + kNik1_, url::Origin::Create(GURL("https://www.foo.test")), now); + // Only has different host. + NetworkErrorLoggingService::NelPolicy policy2 = MakeNelPolicy( + kNik1_, url::Origin::Create(GURL("https://www.bar.test")), now); + // Only has different NetworkIsolationKey. + NetworkErrorLoggingService::NelPolicy policy3 = MakeNelPolicy( + kNik2_, url::Origin::Create(GURL("https://www.foo.test")), now); base::WaitableEvent event(base::WaitableEvent::ResetPolicy::AUTOMATIC, base::WaitableEvent::InitialState::NOT_SIGNALED); @@ -504,15 +561,56 @@ base::BindOnce(&SQLitePersistentReportingAndNelStoreTest::WaitOnEvent, base::Unretained(this), &event)); - // Delete on |policy2| should not cancel addition of unrelated |policy1|. + // Delete on |policy2| and |policy3| should not cancel addition of unrelated + // |policy1|. store_->AddNelPolicy(policy1); store_->DeleteNelPolicy(policy2); - EXPECT_EQ(2u, store_->GetQueueLengthForTesting()); + store_->DeleteNelPolicy(policy3); + EXPECT_EQ(3u, store_->GetQueueLengthForTesting()); event.Signal(); RunUntilIdle(); } +TEST_F(SQLitePersistentReportingAndNelStoreTest, + DontPersistNelPoliciesWithTransientNetworkIsolationKeys) { + CreateStore(); + InitializeStore(); + + base::Time now = base::Time::Now(); + NetworkErrorLoggingService::NelPolicy policy = + MakeNelPolicy(NetworkIsolationKey::CreateTransient(), + url::Origin::Create(GURL("https://www.foo.test")), now); + + base::WaitableEvent event(base::WaitableEvent::ResetPolicy::AUTOMATIC, + base::WaitableEvent::InitialState::NOT_SIGNALED); + + // Wedge the background thread to make sure it doesn't start consuming the + // queue. + background_task_runner_->PostTask( + FROM_HERE, + base::BindOnce(&SQLitePersistentReportingAndNelStoreTest::WaitOnEvent, + base::Unretained(this), &event)); + + store_->AddNelPolicy(policy); + EXPECT_EQ(0u, store_->GetQueueLengthForTesting()); + store_->UpdateNelPolicyAccessTime(policy); + EXPECT_EQ(0u, store_->GetQueueLengthForTesting()); + store_->DeleteNelPolicy(policy); + EXPECT_EQ(0u, store_->GetQueueLengthForTesting()); + + event.Signal(); + RunUntilIdle(); + + // Close and reopen the database. + DestroyStore(); + CreateStore(); + + std::vector<NetworkErrorLoggingService::NelPolicy> policies; + LoadNelPolicies(&policies); + EXPECT_EQ(0u, policies.size()); +} + // These tests test that a SQLitePersistentReportingAndNelStore // can be used by a NetworkErrorLoggingService to persist NEL policies. class SQLitePersistNelTest : public SQLitePersistentReportingAndNelStoreTest { @@ -661,7 +759,8 @@ SimulateRestart(); // Check that the policy's access time has been updated. base::Time now = clock_.Now(); - NetworkErrorLoggingService::NelPolicy policy = MakeNelPolicy(kOrigin, now); + NetworkErrorLoggingService::NelPolicy policy = + MakeNelPolicy(kNik1_, kOrigin, now); std::vector<NetworkErrorLoggingService::NelPolicy> policies; LoadNelPolicies(&policies); ASSERT_EQ(1u, policies.size()); @@ -751,14 +850,16 @@ TEST_F(SQLitePersistentReportingAndNelStoreTest, PersistReportingClients) { const url::Origin kOrigin = url::Origin::Create(GURL("https://www.foo.test")); + url::Origin foo; CreateStore(); InitializeStore(); base::Time now = base::Time::Now(); ReportingEndpoint endpoint = MakeReportingEndpoint( - kOrigin, kGroupName1, GURL("https://endpoint.test/1")); + kNik1_, kOrigin, kGroupName1, GURL("https://endpoint.test/1")); CachedReportingEndpointGroup group = - MakeReportingEndpointGroup(kOrigin, kGroupName1, now); + MakeReportingEndpointGroup(kNik1_, kOrigin, kGroupName1, now); + foo = *(kNik1_.GetTopFrameSite()); store_->AddReportingEndpoint(endpoint); store_->AddReportingEndpointGroup(group); @@ -772,12 +873,16 @@ std::vector<CachedReportingEndpointGroup> groups; LoadReportingClients(&endpoints, &groups); ASSERT_EQ(1u, endpoints.size()); + EXPECT_EQ(endpoint.group_key.network_isolation_key, + endpoints[0].group_key.network_isolation_key); EXPECT_EQ(endpoint.group_key.origin, endpoints[0].group_key.origin); EXPECT_EQ(endpoint.group_key.group_name, endpoints[0].group_key.group_name); EXPECT_EQ(endpoint.info.url, endpoints[0].info.url); EXPECT_EQ(endpoint.info.priority, endpoints[0].info.priority); EXPECT_EQ(endpoint.info.weight, endpoints[0].info.weight); ASSERT_EQ(1u, groups.size()); + EXPECT_EQ(group.group_key.network_isolation_key, + groups[0].group_key.network_isolation_key); EXPECT_EQ(group.group_key.origin, groups[0].group_key.origin); EXPECT_EQ(group.group_key.group_name, groups[0].group_key.group_name); EXPECT_EQ(group.include_subdomains, groups[0].include_subdomains); @@ -791,7 +896,8 @@ InitializeStore(); base::Time now = base::Time::Now(); CachedReportingEndpointGroup group = MakeReportingEndpointGroup( - url::Origin::Create(GURL("https://www.foo.test")), kGroupName1, now); + kNik1_, url::Origin::Create(GURL("https://www.foo.test")), kGroupName1, + now); store_->AddReportingEndpointGroup(group); @@ -806,6 +912,8 @@ std::vector<CachedReportingEndpointGroup> groups; LoadReportingClients(&endpoints, &groups); ASSERT_EQ(1u, groups.size()); + EXPECT_EQ(group.group_key.network_isolation_key, + groups[0].group_key.network_isolation_key); EXPECT_EQ(group.group_key.origin, groups[0].group_key.origin); EXPECT_EQ(group.group_key.group_name, groups[0].group_key.group_name); EXPECT_TRUE(WithinOneMicrosecond(group.last_used, groups[0].last_used)); @@ -815,9 +923,9 @@ UpdateReportingEndpointDetails) { CreateStore(); InitializeStore(); - ReportingEndpoint endpoint = - MakeReportingEndpoint(url::Origin::Create(GURL("https://www.foo.test")), - kGroupName1, GURL("https://endpoint.test/1")); + ReportingEndpoint endpoint = MakeReportingEndpoint( + kNik1_, url::Origin::Create(GURL("https://www.foo.test")), kGroupName1, + GURL("https://endpoint.test/1")); store_->AddReportingEndpoint(endpoint); @@ -833,6 +941,8 @@ std::vector<CachedReportingEndpointGroup> groups; LoadReportingClients(&endpoints, &groups); ASSERT_EQ(1u, endpoints.size()); + EXPECT_EQ(endpoint.group_key.network_isolation_key, + endpoints[0].group_key.network_isolation_key); EXPECT_EQ(endpoint.group_key.origin, endpoints[0].group_key.origin); EXPECT_EQ(endpoint.group_key.group_name, endpoints[0].group_key.group_name); EXPECT_EQ(endpoint.info.url, endpoints[0].info.url); @@ -846,8 +956,8 @@ InitializeStore(); base::Time now = base::Time::Now(); CachedReportingEndpointGroup group = MakeReportingEndpointGroup( - url::Origin::Create(GURL("https://www.foo.test")), kGroupName1, now, - OriginSubdomains::EXCLUDE, kExpires); + kNik1_, url::Origin::Create(GURL("https://www.foo.test")), kGroupName1, + now, OriginSubdomains::EXCLUDE, kExpires); store_->AddReportingEndpointGroup(group); @@ -864,6 +974,8 @@ std::vector<CachedReportingEndpointGroup> groups; LoadReportingClients(&endpoints, &groups); ASSERT_EQ(1u, groups.size()); + EXPECT_EQ(group.group_key.network_isolation_key, + groups[0].group_key.network_isolation_key); EXPECT_EQ(group.group_key.origin, groups[0].group_key.origin); EXPECT_EQ(group.group_key.group_name, groups[0].group_key.group_name); EXPECT_EQ(group.include_subdomains, groups[0].include_subdomains); @@ -874,12 +986,12 @@ TEST_F(SQLitePersistentReportingAndNelStoreTest, DeleteReportingEndpoint) { CreateStore(); InitializeStore(); - ReportingEndpoint endpoint1 = - MakeReportingEndpoint(url::Origin::Create(GURL("https://www.foo.test")), - kGroupName1, GURL("https://endpoint.test/1")); - ReportingEndpoint endpoint2 = - MakeReportingEndpoint(url::Origin::Create(GURL("https://www.bar.test")), - kGroupName2, GURL("https://endpoint.test/2")); + ReportingEndpoint endpoint1 = MakeReportingEndpoint( + kNik1_, url::Origin::Create(GURL("https://www.foo.test")), kGroupName1, + GURL("https://endpoint.test/1")); + ReportingEndpoint endpoint2 = MakeReportingEndpoint( + kNik2_, url::Origin::Create(GURL("https://www.bar.test")), kGroupName2, + GURL("https://endpoint.test/2")); store_->AddReportingEndpoint(endpoint1); store_->AddReportingEndpoint(endpoint2); @@ -910,9 +1022,11 @@ InitializeStore(); base::Time now = base::Time::Now(); CachedReportingEndpointGroup group1 = MakeReportingEndpointGroup( - url::Origin::Create(GURL("https://www.foo.test")), kGroupName1, now); + kNik1_, url::Origin::Create(GURL("https://www.foo.test")), kGroupName1, + now); CachedReportingEndpointGroup group2 = MakeReportingEndpointGroup( - url::Origin::Create(GURL("https://www.bar.test")), kGroupName2, now); + kNik2_, url::Origin::Create(GURL("https://www.bar.test")), kGroupName2, + now); store_->AddReportingEndpointGroup(group1); store_->AddReportingEndpointGroup(group2); @@ -940,20 +1054,45 @@ TEST_F(SQLitePersistentReportingAndNelStoreTest, ReportingEndpointUniquenessConstraint) { - const url::Origin kOrigin = url::Origin::Create(GURL("https://www.foo.test")); + const url::Origin kOrigin1 = + url::Origin::Create(GURL("https://www.bar.test")); + const url::Origin kOrigin2 = + url::Origin::Create(GURL("https://www.foo.test")); const GURL kEndpoint("https://endpoint.test/1"); CreateStore(); InitializeStore(); - ReportingEndpoint endpoint1 = MakeReportingEndpoint( - kOrigin, kGroupName1, kEndpoint, 1 /* priority */, 1 /* weight */); - ReportingEndpoint endpoint2 = MakeReportingEndpoint( - kOrigin, kGroupName1, kEndpoint, 2 /* priority */, 2 /* weight */); + // Add 3 entries, 2 identical except for NIK, 2 identical except for origin. + // Entries should not conflict with each other. These are added in lexical + // order. + ReportingEndpoint endpoint1 = + MakeReportingEndpoint(kNik1_, kOrigin1, kGroupName1, kEndpoint, + 1 /* priority */, 1 /* weight */); + ReportingEndpoint endpoint2 = + MakeReportingEndpoint(kNik1_, kOrigin2, kGroupName1, kEndpoint, + 2 /* priority */, 2 /* weight */); + ReportingEndpoint endpoint3 = + MakeReportingEndpoint(kNik2_, kOrigin2, kGroupName1, kEndpoint, + 3 /* priority */, 3 /* weight */); store_->AddReportingEndpoint(endpoint1); - // Adding an endpoint with the same origin, group name, and url should trigger - // a warning and fail to execute. store_->AddReportingEndpoint(endpoint2); + store_->AddReportingEndpoint(endpoint3); + + // Add entries that are identical except for expiration time. These should + // trigger a warning an fail to execute. + ReportingEndpoint endpoint4 = + MakeReportingEndpoint(kNik1_, kOrigin1, kGroupName1, kEndpoint, + 4 /* priority */, 4 /* weight */); + ReportingEndpoint endpoint5 = + MakeReportingEndpoint(kNik1_, kOrigin2, kGroupName1, kEndpoint, + 5 /* priority */, 5 /* weight */); + ReportingEndpoint endpoint6 = + MakeReportingEndpoint(kNik2_, kOrigin2, kGroupName1, kEndpoint, + 6 /* priority */, 6 /* weight */); + store_->AddReportingEndpoint(endpoint4); + store_->AddReportingEndpoint(endpoint5); + store_->AddReportingEndpoint(endpoint6); DestroyStore(); CreateStore(); @@ -961,33 +1100,64 @@ std::vector<ReportingEndpoint> endpoints; std::vector<CachedReportingEndpointGroup> groups; LoadReportingClients(&endpoints, &groups); - // Only the first endpoint we added should be in the store. - ASSERT_EQ(1u, endpoints.size()); - EXPECT_EQ(endpoint1.group_key.origin, endpoints[0].group_key.origin); - EXPECT_EQ(endpoint1.group_key.group_name, endpoints[0].group_key.group_name); + + // Only the first 3 endpoints should be in the store. + + ASSERT_EQ(3u, endpoints.size()); + + EXPECT_EQ(endpoint1.group_key, endpoints[0].group_key); EXPECT_EQ(endpoint1.info.url, endpoints[0].info.url); EXPECT_EQ(endpoint1.info.priority, endpoints[0].info.priority); EXPECT_EQ(endpoint1.info.weight, endpoints[0].info.weight); + + EXPECT_EQ(endpoint2.group_key, endpoints[1].group_key); + EXPECT_EQ(endpoint2.info.url, endpoints[1].info.url); + EXPECT_EQ(endpoint2.info.priority, endpoints[1].info.priority); + EXPECT_EQ(endpoint2.info.weight, endpoints[1].info.weight); + + EXPECT_EQ(endpoint3.group_key, endpoints[2].group_key); + EXPECT_EQ(endpoint3.info.url, endpoints[2].info.url); + EXPECT_EQ(endpoint3.info.priority, endpoints[2].info.priority); + EXPECT_EQ(endpoint3.info.weight, endpoints[2].info.weight); } TEST_F(SQLitePersistentReportingAndNelStoreTest, ReportingEndpointGroupUniquenessConstraint) { - const url::Origin kOrigin = url::Origin::Create(GURL("https://www.foo.test")); + const url::Origin kOrigin1 = + url::Origin::Create(GURL("https://www.bar.test")); + const url::Origin kOrigin2 = + url::Origin::Create(GURL("https://www.foo.test")); CreateStore(); InitializeStore(); - base::Time now = base::Time::Now(); - CachedReportingEndpointGroup group1 = - MakeReportingEndpointGroup(kOrigin, kGroupName1, now); - base::Time time2 = now + base::TimeDelta::FromDays(7); - CachedReportingEndpointGroup group2 = - MakeReportingEndpointGroup(kOrigin, kGroupName1, time2); - LOG(INFO) << "foo"; + base::Time now = base::Time::Now(); + base::Time later = now + base::TimeDelta::FromDays(7); + + // Add 3 entries, 2 identical except for NIK, 2 identical except for origin. + // Entries should not conflict with each other. These are added in lexical + // order. + CachedReportingEndpointGroup group1 = + MakeReportingEndpointGroup(kNik1_, kOrigin1, kGroupName1, now); + CachedReportingEndpointGroup group2 = + MakeReportingEndpointGroup(kNik1_, kOrigin2, kGroupName1, now); + CachedReportingEndpointGroup group3 = + MakeReportingEndpointGroup(kNik2_, kOrigin1, kGroupName1, now); store_->AddReportingEndpointGroup(group1); - // Adding an endpoint group with the same origin and group name should trigger - // a warning and fail to execute. store_->AddReportingEndpointGroup(group2); + store_->AddReportingEndpointGroup(group3); + + // Add entries that are identical except for expiration time. These should + // trigger a warning an fail to execute. + CachedReportingEndpointGroup group4 = + MakeReportingEndpointGroup(kNik1_, kOrigin1, kGroupName1, later); + CachedReportingEndpointGroup group5 = + MakeReportingEndpointGroup(kNik1_, kOrigin2, kGroupName1, later); + CachedReportingEndpointGroup group6 = + MakeReportingEndpointGroup(kNik2_, kOrigin1, kGroupName1, later); + store_->AddReportingEndpointGroup(group4); + store_->AddReportingEndpointGroup(group5); + store_->AddReportingEndpointGroup(group6); DestroyStore(); CreateStore(); @@ -995,20 +1165,32 @@ std::vector<ReportingEndpoint> endpoints; std::vector<CachedReportingEndpointGroup> groups; LoadReportingClients(&endpoints, &groups); - // Only the first group we added should be in the store. - ASSERT_EQ(1u, groups.size()); - EXPECT_EQ(group1.group_key.origin, groups[0].group_key.origin); - EXPECT_EQ(group1.group_key.group_name, groups[0].group_key.group_name); + + // Only the first 3 endpoints should be in the store. + + ASSERT_EQ(3u, groups.size()); + + EXPECT_EQ(group1.group_key, groups[0].group_key); EXPECT_EQ(group1.include_subdomains, groups[0].include_subdomains); EXPECT_TRUE(WithinOneMicrosecond(group1.expires, groups[0].expires)); EXPECT_TRUE(WithinOneMicrosecond(group1.last_used, groups[0].last_used)); + + EXPECT_EQ(group2.group_key, groups[1].group_key); + EXPECT_EQ(group2.include_subdomains, groups[1].include_subdomains); + EXPECT_TRUE(WithinOneMicrosecond(group2.expires, groups[1].expires)); + EXPECT_TRUE(WithinOneMicrosecond(group2.last_used, groups[1].last_used)); + + EXPECT_EQ(group3.group_key, groups[2].group_key); + EXPECT_EQ(group3.include_subdomains, groups[2].include_subdomains); + EXPECT_TRUE(WithinOneMicrosecond(group3.expires, groups[2].expires)); + EXPECT_TRUE(WithinOneMicrosecond(group3.last_used, groups[2].last_used)); } TEST_F(SQLitePersistentReportingAndNelStoreTest, CoalesceReportingEndpointOperations) { - ReportingEndpoint endpoint = - MakeReportingEndpoint(url::Origin::Create(GURL("https://www.foo.test")), - kGroupName1, GURL("https://endpoint.test/1")); + ReportingEndpoint endpoint = MakeReportingEndpoint( + kNik1_, url::Origin::Create(GURL("https://www.foo.test")), kGroupName1, + GURL("https://endpoint.test/1")); base::WaitableEvent event(base::WaitableEvent::ResetPolicy::AUTOMATIC, base::WaitableEvent::InitialState::NOT_SIGNALED); @@ -1064,12 +1246,17 @@ CreateStore(); InitializeStore(); - ReportingEndpoint endpoint1 = - MakeReportingEndpoint(url::Origin::Create(GURL("https://www.foo.test")), - kGroupName1, GURL("https://endpoint.test/1")); - ReportingEndpoint endpoint2 = - MakeReportingEndpoint(url::Origin::Create(GURL("https://www.bar.test")), - kGroupName2, GURL("https://endpoint.test/2")); + ReportingEndpoint endpoint1 = MakeReportingEndpoint( + kNik1_, url::Origin::Create(GURL("https://www.foo.test")), kGroupName1, + GURL("https://endpoint.test/1")); + // Only has different host. + ReportingEndpoint endpoint2 = MakeReportingEndpoint( + kNik1_, url::Origin::Create(GURL("https://www.bar.test")), kGroupName1, + GURL("https://endpoint.test/2")); + // Only has different NetworkIsolationKey. + ReportingEndpoint endpoint3 = MakeReportingEndpoint( + kNik2_, url::Origin::Create(GURL("https://www.foo.test")), kGroupName1, + GURL("https://endpoint.test/3")); base::WaitableEvent event(base::WaitableEvent::ResetPolicy::AUTOMATIC, base::WaitableEvent::InitialState::NOT_SIGNALED); @@ -1081,10 +1268,12 @@ base::BindOnce(&SQLitePersistentReportingAndNelStoreTest::WaitOnEvent, base::Unretained(this), &event)); - // Delete on |endpoint2| should not cancel addition of unrelated |endpoint1|. + // Delete on |endpoint2| and |endpoint3| should not cancel addition of + // unrelated |endpoint1|. store_->AddReportingEndpoint(endpoint1); store_->DeleteReportingEndpoint(endpoint2); - EXPECT_EQ(2u, store_->GetQueueLengthForTesting()); + store_->DeleteReportingEndpoint(endpoint3); + EXPECT_EQ(3u, store_->GetQueueLengthForTesting()); event.Signal(); RunUntilIdle(); @@ -1094,7 +1283,8 @@ CoalesceReportingEndpointGroupOperations) { base::Time now = base::Time::Now(); CachedReportingEndpointGroup group = MakeReportingEndpointGroup( - url::Origin::Create(GURL("https://www.foo.test")), kGroupName1, now); + kNik1_, url::Origin::Create(GURL("https://www.foo.test")), kGroupName1, + now); base::WaitableEvent event(base::WaitableEvent::ResetPolicy::AUTOMATIC, base::WaitableEvent::InitialState::NOT_SIGNALED); @@ -1194,9 +1384,16 @@ base::Time now = base::Time::Now(); CachedReportingEndpointGroup group1 = MakeReportingEndpointGroup( - url::Origin::Create(GURL("https://www.foo.test")), kGroupName1, now); + kNik1_, url::Origin::Create(GURL("https://www.foo.test")), kGroupName1, + now); + // Only has different host. CachedReportingEndpointGroup group2 = MakeReportingEndpointGroup( - url::Origin::Create(GURL("https://www.bar.test")), kGroupName2, now); + kNik1_, url::Origin::Create(GURL("https://www.bar.test")), kGroupName1, + now); + // Only has different NetworkIsolationKey. + CachedReportingEndpointGroup group3 = MakeReportingEndpointGroup( + kNik2_, url::Origin::Create(GURL("https://www.foo.test")), kGroupName1, + now); base::WaitableEvent event(base::WaitableEvent::ResetPolicy::AUTOMATIC, base::WaitableEvent::InitialState::NOT_SIGNALED); @@ -1208,13 +1405,97 @@ base::BindOnce(&SQLitePersistentReportingAndNelStoreTest::WaitOnEvent, base::Unretained(this), &event)); - // Delete on |group2| should not cancel addition of unrelated |group2|. + // Delete on |group2| and |group3| should not cancel addition of unrelated + // |group1|. store_->AddReportingEndpointGroup(group1); store_->DeleteReportingEndpointGroup(group2); - EXPECT_EQ(2u, store_->GetQueueLengthForTesting()); + store_->DeleteReportingEndpointGroup(group3); + EXPECT_EQ(3u, store_->GetQueueLengthForTesting()); event.Signal(); RunUntilIdle(); } +TEST_F(SQLitePersistentReportingAndNelStoreTest, + DontPersistReportingEndpointsWithTransientNetworkIsolationKeys) { + CreateStore(); + InitializeStore(); + + ReportingEndpoint endpoint = + MakeReportingEndpoint(NetworkIsolationKey::CreateTransient(), + url::Origin::Create(GURL("https://www.foo.test")), + kGroupName1, GURL("https://endpoint.test/1")); + + base::WaitableEvent event(base::WaitableEvent::ResetPolicy::AUTOMATIC, + base::WaitableEvent::InitialState::NOT_SIGNALED); + + // Wedge the background thread to make sure it doesn't start consuming the + // queue. + background_task_runner_->PostTask( + FROM_HERE, + base::BindOnce(&SQLitePersistentReportingAndNelStoreTest::WaitOnEvent, + base::Unretained(this), &event)); + + store_->AddReportingEndpoint(endpoint); + EXPECT_EQ(0u, store_->GetQueueLengthForTesting()); + store_->UpdateReportingEndpointDetails(endpoint); + EXPECT_EQ(0u, store_->GetQueueLengthForTesting()); + store_->DeleteReportingEndpoint(endpoint); + EXPECT_EQ(0u, store_->GetQueueLengthForTesting()); + + event.Signal(); + RunUntilIdle(); + + // Close and reopen the database. + DestroyStore(); + CreateStore(); + + std::vector<ReportingEndpoint> endpoints; + std::vector<CachedReportingEndpointGroup> groups; + LoadReportingClients(&endpoints, &groups); + ASSERT_EQ(0u, endpoints.size()); +} + +TEST_F(SQLitePersistentReportingAndNelStoreTest, + DontPersistReportingEndpointGroupsWithTransientNetworkIsolationKeys) { + CreateStore(); + InitializeStore(); + + base::Time now = base::Time::Now(); + CachedReportingEndpointGroup group = MakeReportingEndpointGroup( + NetworkIsolationKey::CreateTransient(), + url::Origin::Create(GURL("https://www.foo.test")), kGroupName1, now); + + base::WaitableEvent event(base::WaitableEvent::ResetPolicy::AUTOMATIC, + base::WaitableEvent::InitialState::NOT_SIGNALED); + + // Wedge the background thread to make sure it doesn't start consuming the + // queue. + background_task_runner_->PostTask( + FROM_HERE, + base::BindOnce(&SQLitePersistentReportingAndNelStoreTest::WaitOnEvent, + base::Unretained(this), &event)); + + store_->AddReportingEndpointGroup(group); + EXPECT_EQ(0u, store_->GetQueueLengthForTesting()); + store_->UpdateReportingEndpointGroupAccessTime(group); + EXPECT_EQ(0u, store_->GetQueueLengthForTesting()); + store_->UpdateReportingEndpointGroupDetails(group); + EXPECT_EQ(0u, store_->GetQueueLengthForTesting()); + store_->DeleteReportingEndpointGroup(group); + EXPECT_EQ(0u, store_->GetQueueLengthForTesting()); + + event.Signal(); + RunUntilIdle(); + + // Close and reopen the database. + DestroyStore(); + CreateStore(); + + std::vector<ReportingEndpoint> endpoints; + std::vector<CachedReportingEndpointGroup> groups; + LoadReportingClients(&endpoints, &groups); + ASSERT_EQ(0u, groups.size()); +} + } // namespace net
diff --git a/net/network_error_logging/network_error_logging_service.h b/net/network_error_logging/network_error_logging_service.h index 514d61c..c741afe 100644 --- a/net/network_error_logging/network_error_logging_service.h +++ b/net/network_error_logging/network_error_logging_service.h
@@ -18,6 +18,7 @@ #include "net/base/ip_address.h" #include "net/base/net_errors.h" #include "net/base/net_export.h" +#include "net/base/network_isolation_key.h" #include "url/gurl.h" #include "url/origin.h" @@ -49,6 +50,10 @@ NelPolicy(const NelPolicy& other); ~NelPolicy(); + // TODO(mmenke): Actually populate this field. Currently only used by the + // persistence layer. + NetworkIsolationKey network_isolation_key = NetworkIsolationKey::Todo(); + url::Origin origin; IPAddress received_ip_address = IPAddress();
diff --git a/net/quic/mock_decrypter.cc b/net/quic/mock_decrypter.cc index fe96ad2..51350fd 100644 --- a/net/quic/mock_decrypter.cc +++ b/net/quic/mock_decrypter.cc
@@ -4,6 +4,8 @@ #include "net/quic/mock_decrypter.h" +#include <limits> + #include "net/third_party/quiche/src/quic/core/quic_utils.h" #include "net/third_party/quiche/src/quic/platform/api/quic_bug_tracker.h" @@ -25,15 +27,6 @@ return key.empty(); } -bool MockDecrypter::SetHeaderProtectionKey(absl::string_view key) { - return key.empty(); -} - -std::string MockDecrypter::GenerateHeaderProtectionMask( - quic::QuicDataReader* sample_reader) { - return std::string(5, 0); -} - bool MockDecrypter::SetNoncePrefix(absl::string_view nonce_prefix) { return nonce_prefix.empty(); } @@ -42,6 +35,22 @@ return iv.empty(); } +bool MockDecrypter::SetHeaderProtectionKey(absl::string_view key) { + return key.empty(); +} + +size_t MockDecrypter::GetKeySize() const { + return 0; +} + +size_t MockDecrypter::GetIVSize() const { + return 0; +} + +size_t MockDecrypter::GetNoncePrefixSize() const { + return 0; +} + bool MockDecrypter::SetPreliminaryKey(absl::string_view key) { QUIC_BUG << "Should not be called"; return false; @@ -71,16 +80,17 @@ return true; } -size_t MockDecrypter::GetKeySize() const { +std::string MockDecrypter::GenerateHeaderProtectionMask( + quic::QuicDataReader* sample_reader) { + return std::string(5, 0); +} + +uint32_t MockDecrypter::cipher_id() const { return 0; } -size_t MockDecrypter::GetNoncePrefixSize() const { - return 0; -} - -size_t MockDecrypter::GetIVSize() const { - return 0; +quic::QuicPacketCount MockDecrypter::GetIntegrityLimit() const { + return std::numeric_limits<quic::QuicPacketCount>::max(); } absl::string_view MockDecrypter::GetKey() const { @@ -91,8 +101,4 @@ return absl::string_view(); } -uint32_t MockDecrypter::cipher_id() const { - return 0; -} - } // namespace net
diff --git a/net/quic/mock_decrypter.h b/net/quic/mock_decrypter.h index 908d105..7e8cec1 100644 --- a/net/quic/mock_decrypter.h +++ b/net/quic/mock_decrypter.h
@@ -26,11 +26,16 @@ explicit MockDecrypter(quic::Perspective perspective); ~MockDecrypter() override {} - // QuicDecrypter implementation + // QuicCrypter implementation bool SetKey(absl::string_view key) override; bool SetNoncePrefix(absl::string_view nonce_prefix) override; - bool SetHeaderProtectionKey(absl::string_view key) override; bool SetIV(absl::string_view iv) override; + bool SetHeaderProtectionKey(absl::string_view key) override; + size_t GetKeySize() const override; + size_t GetIVSize() const override; + size_t GetNoncePrefixSize() const override; + + // QuicDecrypter implementation bool SetPreliminaryKey(absl::string_view key) override; bool SetDiversificationNonce( const quic::DiversificationNonce& nonce) override; @@ -40,15 +45,12 @@ char* output, size_t* output_length, size_t max_output_length) override; - size_t GetKeySize() const override; - size_t GetNoncePrefixSize() const override; - size_t GetIVSize() const override; - absl::string_view GetKey() const override; - absl::string_view GetNoncePrefix() const override; std::string GenerateHeaderProtectionMask( quic::QuicDataReader* sample_reader) override; - uint32_t cipher_id() const override; + quic::QuicPacketCount GetIntegrityLimit() const override; + absl::string_view GetKey() const override; + absl::string_view GetNoncePrefix() const override; private: DISALLOW_COPY_AND_ASSIGN(MockDecrypter);
diff --git a/net/quic/quic_flags_list.h b/net/quic/quic_flags_list.h index ec374c9..4dacd6c 100644 --- a/net/quic/quic_flags_list.h +++ b/net/quic/quic_flags_list.h
@@ -140,10 +140,6 @@ FLAGS_quic_reloadable_flag_quic_allow_client_enabled_bbr_v2, false) -// If true, QuicFramer::WriteClientVersionNegotiationProbePacket uses -// length-prefixed connection IDs. -QUIC_FLAG(bool, FLAGS_quic_prober_uses_length_prefixed_connection_ids, false) - // The maximum amount of CRYPTO frame data that can be buffered. QUIC_FLAG(int32_t, FLAGS_quic_max_buffered_crypto_bytes, 16 * 1024) @@ -467,7 +463,7 @@ // If true, address is validated by successfully processing a HANDSHAKE or 1-RTT // packet. -QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_fix_address_validation, false) +QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_fix_address_validation, true) // If true, QuicStream will explicitly specify which RST_STREAM, STOP_SENDING // frame to send.
diff --git a/net/quic/quic_test_packet_printer.cc b/net/quic/quic_test_packet_printer.cc index 043f04c9..b3ad7dc 100644 --- a/net/quic/quic_test_packet_printer.cc +++ b/net/quic/quic_test_packet_printer.cc
@@ -164,7 +164,9 @@ *output_ << "OnStreamsBlockedFrame: " << frame; return true; } - void OnKeyUpdate() override { *output_ << "OnKeyUpdate\n"; } + void OnKeyUpdate(KeyUpdateReason reason) override { + *output_ << "OnKeyUpdate: " << reason << "\n"; + } void OnDecryptedFirstPacketInKeyPhase() override { *output_ << "OnDecryptedFirstPacketInKeyPhase\n"; }
diff --git a/remoting/resources/remoting_strings_iw.xtb b/remoting/resources/remoting_strings_iw.xtb index b91fcb58..cc6776f 100644 --- a/remoting/resources/remoting_strings_iw.xtb +++ b/remoting/resources/remoting_strings_iw.xtb
@@ -26,7 +26,7 @@ <translation id="2320166752086256636">הסתר מקלדת</translation> <translation id="2359808026110333948">המשך</translation> <translation id="2366718077645204424">לא ניתן להשיג את המארח. הסיבה לכך יכולה להיות תצורת הרשת שבה אתה משתמש.</translation> -<translation id="2370754117186920852">המארח <ph name="OPTIONAL_OFFLINE_REASON" /> נראה לאחרונה במצב מקוון <ph name="RELATIVE_TIMESTAMP" />.</translation> +<translation id="2370754117186920852">המארח <ph name="OPTIONAL_OFFLINE_REASON" /> נראה לאחרונה אונליין <ph name="RELATIVE_TIMESTAMP" />.</translation> <translation id="2504109125669302160">מתן הרשאת 'נגישות' ל-<ph name="PRODUCT_NAME" /></translation> <translation id="2509394361235492552">בוצעה התחברות אל <ph name="HOSTNAME" /></translation> <translation id="2540992418118313681">האם ברצונך לשתף מחשב זה כך שמשתמש אחר יראה אותו וישלוט בו?</translation> @@ -36,9 +36,9 @@ <translation id="2676780859508944670">עובד…</translation> <translation id="2699970397166997657">Chromoting</translation> <translation id="2758123043070977469">אירעה בעיה באימות. יש להתחבר שוב.</translation> -<translation id="2803375539583399270">הזן PIN</translation> -<translation id="2919669478609886916">אתה משתף כעת את המחשב הזה עם משתמש אחר. האם ברצונך להמשיך את השיתוף?</translation> -<translation id="2939145106548231838">אמת מול המארח</translation> +<translation id="2803375539583399270">הזנת קוד אימות</translation> +<translation id="2919669478609886916">שיתפת את המחשב הזה עם משתמש אחר. האם ברצונך להמשיך את השיתוף?</translation> +<translation id="2939145106548231838">יש לאמת מול המארח</translation> <translation id="3027681561976217984">מצב מסך מגע</translation> <translation id="3106379468611574572">המחשב המרוחק אינו מגיב לבקשות החיבור. ודא שהוא מחובר לאינטרנט ונסה שוב.</translation> <translation id="3150823315463303127">המארח לא הצליח לקרוא את המדיניות.</translation> @@ -59,7 +59,7 @@ <translation id="3905196214175737742">דומיין לא חוקי של בעל המארח.</translation> <translation id="3931191050278863510">המארח הופסק.</translation> <translation id="3950820424414687140">כניסה</translation> -<translation id="405887016757208221">המחשב המרוחק לא הצליח לאתחל את ההפעלה. אם הבעיה נמשכת, נסה להגדיר שוב את המארח.</translation> +<translation id="405887016757208221">המחשב המרוחק לא הצליח לאתחל את ההפעלה. אם הבעיה נמשכת, יש לנסות להגדיר שוב את המארח.</translation> <translation id="4060747889721220580">הורדת קובץ</translation> <translation id="4126409073460786861">כשתהליך ההגדרה יסתיים, צריך יהיה לרענן את הדף ואז אפשר יהיה לבחור את המכשיר שלך ולהזין את ה-PIN כדי לגשת למחשב</translation> <translation id="4145029455188493639">התחברת באמצעות חשבון <ph name="EMAIL_ADDRESS" />.</translation> @@ -120,7 +120,7 @@ <translation id="6654753848497929428">שיתוף</translation> <translation id="6681800064886881394">Copyright © 2013 Google Inc.. כל הזכויות שמורות.</translation> <translation id="677755392401385740">המארח הופעל עבור המשתמש: <ph name="HOST_USERNAME" />.</translation> -<translation id="6939719207673461467">הצג/הסתר מקלדת.</translation> +<translation id="6939719207673461467">הצגה/הסתרה של המקלדת.</translation> <translation id="6963936880795878952">החיבורים למחשב המרוחק חסומים באופן זמני משום שמישהו ניסה להתחבר אליו עם PIN לא חוקי. נסה שוב מאוחר יותר.</translation> <translation id="6965382102122355670">אישור</translation> <translation id="6985691951107243942">האם אתה בטוח שברצונך להשבית את החיבורים המרוחקים אל <ph name="HOSTNAME" />? אם תשנה את דעתך, יהיה עליך להיכנס למחשב זה כדי להפעיל מחדש את החיבורים.</translation> @@ -128,7 +128,7 @@ <translation id="701976023053394610">סיוע מרחוק</translation> <translation id="7026930240735156896">יש להגדיר את המחשב לגישה מרחוק בהתאם להוראות</translation> <translation id="7067321367069083429">המסך פועל כמסך מגע</translation> -<translation id="7116737094673640201">ברוכים הבאים אל Chrome Remote Desktop</translation> +<translation id="7116737094673640201">ברוך בואך אל Chrome Remote Desktop</translation> <translation id="7144878232160441200">נסה שוב</translation> <translation id="7312846573060934304">המארח אינו מקוון.</translation> <translation id="7319983568955948908">הפסק את השיתוף</translation> @@ -143,7 +143,7 @@ <translation id="7678209621226490279">עגינה לשמאל</translation> <translation id="7693372326588366043">רענן את רשימת המארחים</translation> <translation id="7714222945760997814">דיווח על הבעיה</translation> -<translation id="7868137160098754906">הזן את מספר ה-PIN עבור המחשב המרוחק.</translation> +<translation id="7868137160098754906">יש להזין את קוד האימות עבור המחשב המרוחק.</translation> <translation id="7895403300744144251">מדיניות האבטחה במחשב המרוחק אינה מתירה חיבורים מהחשבון שלך.</translation> <translation id="7936528439960309876">עגינה לימין</translation> <translation id="7970576581263377361">האימות נכשל. היכנס שוב ל-Chromium.</translation>
diff --git a/sandbox/win/src/sync_policy.cc b/sandbox/win/src/sync_policy.cc index cdc34dd..fb1777cc 100644 --- a/sandbox/win/src/sync_policy.cc +++ b/sandbox/win/src/sync_policy.cc
@@ -64,21 +64,26 @@ return status; UNICODE_STRING target_path = {}; - unsigned long target_length = 0; + unsigned long target_bytes = 0; status = - NtQuerySymbolicLinkObject(symbolic_link, &target_path, &target_length); + NtQuerySymbolicLinkObject(symbolic_link, &target_path, &target_bytes); if (status != STATUS_BUFFER_TOO_SMALL) { CHECK(NT_SUCCESS(NtClose(symbolic_link))); return status; } + // NtQuerySymbolicLinkObject length and UNICODE_STRING lengths are bytes + // not characters. + size_t target_wchars = target_bytes / sizeof(wchar_t); target_path.Length = 0; - target_path.MaximumLength = static_cast<USHORT>(target_length); - target_path.Buffer = new wchar_t[target_path.MaximumLength + 1]; + target_path.MaximumLength = static_cast<USHORT>(target_bytes); + target_path.Buffer = new wchar_t[target_wchars + 1]; status = - NtQuerySymbolicLinkObject(symbolic_link, &target_path, &target_length); - if (NT_SUCCESS(status)) - target->assign(target_path.Buffer, target_length); + NtQuerySymbolicLinkObject(symbolic_link, &target_path, &target_bytes); + if (NT_SUCCESS(status)) { + DCHECK_EQ(target_bytes, sizeof(wchar_t) * target_wchars); + target->assign(target_path.Buffer, target_wchars); + } CHECK(NT_SUCCESS(NtClose(symbolic_link))); delete[] target_path.Buffer;
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java index d29cb05..409090f 100644 --- a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java +++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java
@@ -89,13 +89,17 @@ faceArray[i] = new FaceDetectionResult(); final Face face = faces.valueAt(i); + final PointF corner = face.getPosition(); + faceArray[i].boundingBox = new RectF(); + faceArray[i].boundingBox.x = corner.x; + faceArray[i].boundingBox.y = corner.y; + faceArray[i].boundingBox.width = face.getWidth(); + faceArray[i].boundingBox.height = face.getHeight(); + final List<Landmark> landmarks = face.getLandmarks(); ArrayList<org.chromium.shape_detection.mojom.Landmark> mojoLandmarks = new ArrayList<org.chromium.shape_detection.mojom.Landmark>(landmarks.size()); - int leftEyeIndex = -1; - int rightEyeIndex = -1; - int bottomMouthIndex = -1; for (int j = 0; j < landmarks.size(); j++) { final Landmark landmark = landmarks.get(j); final int landmarkType = landmark.getType(); @@ -114,13 +118,10 @@ if (landmarkType == Landmark.LEFT_EYE) { mojoLandmark.type = LandmarkType.EYE; - leftEyeIndex = j; } else if (landmarkType == Landmark.RIGHT_EYE) { mojoLandmark.type = LandmarkType.EYE; - rightEyeIndex = j; } else if (landmarkType == Landmark.BOTTOM_MOUTH) { mojoLandmark.type = LandmarkType.MOUTH; - bottomMouthIndex = j; } else { assert landmarkType == Landmark.NOSE_BASE; mojoLandmark.type = LandmarkType.NOSE; @@ -129,33 +130,6 @@ } faceArray[i].landmarks = mojoLandmarks.toArray( new org.chromium.shape_detection.mojom.Landmark[mojoLandmarks.size()]); - - final PointF corner = face.getPosition(); - faceArray[i].boundingBox = new RectF(); - if (leftEyeIndex != -1 && rightEyeIndex != -1 - && Math.abs(face.getEulerZ()) < MAX_EULER_Z) { - // Tighter calculation of the bounding box because the GMScore - // and Android Face APIs give different results. - final PointF leftEyePoint = landmarks.get(leftEyeIndex).getPosition(); - final PointF rightEyePoint = landmarks.get(rightEyeIndex).getPosition(); - final float eyesDistance = leftEyePoint.x - rightEyePoint.x; - final float eyeMouthDistance = bottomMouthIndex != -1 - ? landmarks.get(bottomMouthIndex).getPosition().y - leftEyePoint.y - : -1; - final PointF midEyePoint = - new PointF(corner.x + face.getWidth() / 2, leftEyePoint.y); - faceArray[i].boundingBox.x = 2 * rightEyePoint.x - midEyePoint.x; - faceArray[i].boundingBox.y = midEyePoint.y - eyesDistance; - faceArray[i].boundingBox.width = 2 * eyesDistance; - faceArray[i].boundingBox.height = eyeMouthDistance > eyesDistance - ? eyeMouthDistance + eyesDistance - : 2 * eyesDistance; - } else { - faceArray[i].boundingBox.x = corner.x; - faceArray[i].boundingBox.y = corner.y; - faceArray[i].boundingBox.width = face.getWidth(); - faceArray[i].boundingBox.height = face.getHeight(); - } } callback.call(faceArray); }
diff --git a/services/shape_detection/android/javatests/src/org/chromium/shape_detection/FaceDetectionImplTest.java b/services/shape_detection/android/javatests/src/org/chromium/shape_detection/FaceDetectionImplTest.java index ca26cabe4..8c00055 100644 --- a/services/shape_detection/android/javatests/src/org/chromium/shape_detection/FaceDetectionImplTest.java +++ b/services/shape_detection/android/javatests/src/org/chromium/shape_detection/FaceDetectionImplTest.java
@@ -81,9 +81,9 @@ Assert.assertEquals(1, results.length); Assert.assertEquals( api == DetectionProviderType.GMS_CORE ? 4 : 0, results[0].landmarks.length); - Assert.assertEquals(40.0, results[0].boundingBox.width, BOUNDING_BOX_SIZE_ERROR); - Assert.assertEquals(40.0, results[0].boundingBox.height, BOUNDING_BOX_SIZE_ERROR); - Assert.assertEquals(24.0, results[0].boundingBox.x, BOUNDING_BOX_POSITION_ERROR); + Assert.assertEquals(36.0, results[0].boundingBox.width, BOUNDING_BOX_SIZE_ERROR); + Assert.assertEquals(38.0, results[0].boundingBox.height, BOUNDING_BOX_SIZE_ERROR); + Assert.assertEquals(26.0, results[0].boundingBox.x, BOUNDING_BOX_POSITION_ERROR); Assert.assertEquals(20.0, results[0].boundingBox.y, BOUNDING_BOX_POSITION_ERROR); } @@ -117,9 +117,9 @@ FaceDetectionResult[] results = detect(mojoBitmap, true, DetectionProviderType.ANDROID); Assert.assertEquals(1, results.length); - Assert.assertEquals(40.0, results[0].boundingBox.width, BOUNDING_BOX_SIZE_ERROR); - Assert.assertEquals(40.0, results[0].boundingBox.height, BOUNDING_BOX_SIZE_ERROR); - Assert.assertEquals(24.0, results[0].boundingBox.x, BOUNDING_BOX_POSITION_ERROR); + Assert.assertEquals(36.0, results[0].boundingBox.width, BOUNDING_BOX_SIZE_ERROR); + Assert.assertEquals(38.0, results[0].boundingBox.height, BOUNDING_BOX_SIZE_ERROR); + Assert.assertEquals(26.0, results[0].boundingBox.x, BOUNDING_BOX_POSITION_ERROR); Assert.assertEquals(20.0, results[0].boundingBox.y, BOUNDING_BOX_POSITION_ERROR); }
diff --git a/services/tracing/perfetto/privacy_filtered_fields-inl.h b/services/tracing/perfetto/privacy_filtered_fields-inl.h index acfac3ce..354c465c 100644 --- a/services/tracing/perfetto/privacy_filtered_fields-inl.h +++ b/services/tracing/perfetto/privacy_filtered_fields-inl.h
@@ -180,10 +180,15 @@ constexpr MessageInfo kChromeRendererSchedulerState = { kChromeRendererSchedulerStateIndices, nullptr}; +// Proto Message: ChromeWindowHandleEventInfo +constexpr int kChromeWindowHandleEventInfoIndices[] = {1, 2, -1}; +constexpr MessageInfo kChromeWindowHandleEventInfo = { + kChromeWindowHandleEventInfoIndices, nullptr}; + // Proto Message: TrackEvent constexpr int kTrackEventIndices[] = {1, 2, 3, 5, 6, 9, 10, 11, 12, 16, 17, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 38, 40, -1}; + 31, 32, 33, 34, 35, 38, 40, 41, -1}; constexpr MessageInfo const* kTrackEventComplexMessages[] = { nullptr, nullptr, @@ -209,7 +214,8 @@ nullptr, &kChromeMessagePump, &kChromeMojoEventInfo, - &kChromeRendererSchedulerState}; + &kChromeRendererSchedulerState, + &kChromeWindowHandleEventInfo}; constexpr MessageInfo kTrackEvent = {kTrackEventIndices, kTrackEventComplexMessages};
diff --git a/services/tracing/public/cpp/trace_event_args_allowlist.cc b/services/tracing/public/cpp/trace_event_args_allowlist.cc index eab6ffc..c7cf6d3 100644 --- a/services/tracing/public/cpp/trace_event_args_allowlist.cc +++ b/services/tracing/public/cpp/trace_event_args_allowlist.cc
@@ -38,7 +38,6 @@ const char* const kRendererHostAllowedArgs[] = { "class", "line", "should_background", "has_pending_views", "bytes_allocated", nullptr}; -const char* const kUIAllowedArgs[] = {"dpi", "message_id", nullptr}; const char* const kV8GCAllowedArgs[] = {"num_items", "num_tasks", nullptr}; const char* const kTopLevelFlowAllowedArgs[] = {"task_queue_name", nullptr}; const char* const kTopLevelIpcRunTaskAllowedArgs[] = {"ipc_hash", nullptr}; @@ -96,8 +95,6 @@ {TRACE_DISABLED_BY_DEFAULT("memory-infra"), "*", kMemoryDumpAllowedArgs}, {TRACE_DISABLED_BY_DEFAULT("system_stats"), "*", nullptr}, {TRACE_DISABLED_BY_DEFAULT("v8.gc"), "*", kV8GCAllowedArgs}, - {"ui", "HWNDMessageHandler::OnWndProc", kUIAllowedArgs}, - {"ui", "HWNDMessageHandler::OnDwmCompositionChanged", kUIAllowedArgs}, {"ui", "RenderTextHarfBuzz::FallbackFont", kFallbackFontAllowedArgs}, {"ui", "RenderTextHarfBuzz::GetFallbackFonts", kGetFallbackFontsAllowedArgs},
diff --git a/testing/buildbot/chrome.json b/testing/buildbot/chrome.json index d06b506..e4d45627 100644 --- a/testing/buildbot/chrome.json +++ b/testing/buildbot/chrome.json
@@ -16,6 +16,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -36,6 +39,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -167,6 +173,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -187,6 +196,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -816,6 +828,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -836,6 +851,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -1465,6 +1483,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -1485,6 +1506,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -2111,6 +2135,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -2131,6 +2158,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -2757,6 +2787,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -2777,6 +2810,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -3348,6 +3384,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -3371,6 +3410,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -3512,6 +3554,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -3535,6 +3580,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -3676,6 +3724,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -3699,6 +3750,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -3840,6 +3894,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -3863,6 +3920,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -4004,6 +4064,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -4027,6 +4090,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -4168,6 +4234,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -4191,6 +4260,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -4270,6 +4342,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -4293,6 +4368,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -4372,6 +4450,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -4395,6 +4476,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -4474,6 +4558,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -4497,6 +4584,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -4576,6 +4666,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -4599,6 +4692,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [
diff --git a/testing/buildbot/chromium.android.json b/testing/buildbot/chromium.android.json index b435a022..c5c06917 100644 --- a/testing/buildbot/chromium.android.json +++ b/testing/buildbot/chromium.android.json
@@ -29284,6 +29284,9 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "content_shell_crash_test", + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -37397,6 +37400,9 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "content_shell_crash_test", + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [
diff --git a/testing/buildbot/chromium.chromiumos.json b/testing/buildbot/chromium.chromiumos.json index 9f11cee..4b925d9 100644 --- a/testing/buildbot/chromium.chromiumos.json +++ b/testing/buildbot/chromium.chromiumos.json
@@ -148,6 +148,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -168,6 +171,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -716,12 +722,26 @@ "can_use_on_swarming_builders": true, "dimension_sets": [ { + "cpu": "x86", "kvm": "1", "os": "Ubuntu-16.04", - "pool": "chromium.tests.cros.vm" + "pool": "chromium.tests" } ], "idempotent": false, + "named_caches": [ + { + "name": "cros_vm", + "path": "magic_cros_vm_cache" + } + ], + "optional_dimensions": { + "60": [ + { + "caches": "cros_vm" + } + ] + }, "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", "shards": 24 }, @@ -822,6 +842,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -845,6 +868,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [
diff --git a/testing/buildbot/chromium.gpu.fyi.json b/testing/buildbot/chromium.gpu.fyi.json index 1b1bd09..b13baba9 100644 --- a/testing/buildbot/chromium.gpu.fyi.json +++ b/testing/buildbot/chromium.gpu.fyi.json
@@ -36416,35 +36416,6 @@ }, { "args": [ - "standalone_angle_deqp_egl_tests", - "--use-angle=vulkan", - "--bot-mode" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "angle_deqp_egl_vulkan_tests", - "swarming": { - "can_use_on_swarming_builders": true, - "containment_type": "AUTO", - "dimension_sets": [ - { - "gpu": "10de:1cb3-24.21.14.1195", - "os": "Windows-2008ServerR2-SP1", - "pool": "chromium.tests.gpu" - } - ], - "expiration": 21600, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 2 - }, - "test": "standalone_angle_deqp_egl_tests", - "test_id_prefix": "ninja://third_party/angle/src/tests:standalone_angle_deqp_egl_tests/", - "use_isolated_scripts_api": true - }, - { - "args": [ "standalone_angle_deqp_gles2_tests", "--use-angle=d3d11", "--bot-mode" @@ -36501,34 +36472,6 @@ }, { "args": [ - "standalone_angle_deqp_gles2_tests", - "--use-angle=vulkan", - "--bot-mode" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "angle_deqp_gles2_vulkan_tests", - "swarming": { - "can_use_on_swarming_builders": true, - "containment_type": "AUTO", - "dimension_sets": [ - { - "gpu": "10de:1cb3-24.21.14.1195", - "os": "Windows-2008ServerR2-SP1", - "pool": "chromium.tests.gpu" - } - ], - "expiration": 21600, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" - }, - "test": "standalone_angle_deqp_gles2_tests", - "test_id_prefix": "ninja://third_party/angle/src/tests:standalone_angle_deqp_gles2_tests/", - "use_isolated_scripts_api": true - }, - { - "args": [ "standalone_angle_deqp_gles31_tests", "--use-angle=d3d11", "--bot-mode" @@ -36587,35 +36530,6 @@ }, { "args": [ - "standalone_angle_deqp_gles31_tests", - "--use-angle=vulkan", - "--bot-mode" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "angle_deqp_gles31_vulkan_tests", - "swarming": { - "can_use_on_swarming_builders": true, - "containment_type": "AUTO", - "dimension_sets": [ - { - "gpu": "10de:1cb3-24.21.14.1195", - "os": "Windows-2008ServerR2-SP1", - "pool": "chromium.tests.gpu" - } - ], - "expiration": 21600, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 2 - }, - "test": "standalone_angle_deqp_gles31_tests", - "test_id_prefix": "ninja://third_party/angle/src/tests:standalone_angle_deqp_gles31_tests/", - "use_isolated_scripts_api": true - }, - { - "args": [ "standalone_angle_deqp_gles3_tests", "--use-angle=d3d11", "--bot-mode" @@ -36671,119 +36585,6 @@ "test": "standalone_angle_deqp_gles3_tests", "test_id_prefix": "ninja://third_party/angle/src/tests:standalone_angle_deqp_gles3_tests/", "use_isolated_scripts_api": true - }, - { - "args": [ - "standalone_angle_deqp_gles3_tests", - "--use-angle=vulkan", - "--bot-mode" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "angle_deqp_gles3_vulkan_tests", - "swarming": { - "can_use_on_swarming_builders": true, - "containment_type": "AUTO", - "dimension_sets": [ - { - "gpu": "10de:1cb3-24.21.14.1195", - "os": "Windows-2008ServerR2-SP1", - "pool": "chromium.tests.gpu" - } - ], - "expiration": 21600, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 4 - }, - "test": "standalone_angle_deqp_gles3_tests", - "test_id_prefix": "ninja://third_party/angle/src/tests:standalone_angle_deqp_gles3_tests/", - "use_isolated_scripts_api": true - }, - { - "args": [ - "standalone_angle_deqp_khr_gles2_tests", - "--use-angle=vulkan", - "--bot-mode" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "angle_deqp_khr_gles2_vulkan_tests", - "swarming": { - "can_use_on_swarming_builders": true, - "containment_type": "AUTO", - "dimension_sets": [ - { - "gpu": "10de:1cb3-24.21.14.1195", - "os": "Windows-2008ServerR2-SP1", - "pool": "chromium.tests.gpu" - } - ], - "expiration": 21600, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" - }, - "test": "standalone_angle_deqp_khr_gles2_tests", - "test_id_prefix": "ninja://third_party/angle/src/tests:standalone_angle_deqp_khr_gles2_tests/", - "use_isolated_scripts_api": true - }, - { - "args": [ - "standalone_angle_deqp_khr_gles31_tests", - "--use-angle=vulkan", - "--bot-mode" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "angle_deqp_khr_gles31_vulkan_tests", - "swarming": { - "can_use_on_swarming_builders": true, - "containment_type": "AUTO", - "dimension_sets": [ - { - "gpu": "10de:1cb3-24.21.14.1195", - "os": "Windows-2008ServerR2-SP1", - "pool": "chromium.tests.gpu" - } - ], - "expiration": 21600, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" - }, - "test": "standalone_angle_deqp_khr_gles31_tests", - "test_id_prefix": "ninja://third_party/angle/src/tests:standalone_angle_deqp_khr_gles31_tests/", - "use_isolated_scripts_api": true - }, - { - "args": [ - "standalone_angle_deqp_khr_gles3_tests", - "--use-angle=vulkan", - "--bot-mode" - ], - "merge": { - "args": [], - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "angle_deqp_khr_gles3_vulkan_tests", - "swarming": { - "can_use_on_swarming_builders": true, - "containment_type": "AUTO", - "dimension_sets": [ - { - "gpu": "10de:1cb3-24.21.14.1195", - "os": "Windows-2008ServerR2-SP1", - "pool": "chromium.tests.gpu" - } - ], - "expiration": 21600, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" - }, - "test": "standalone_angle_deqp_khr_gles3_tests", - "test_id_prefix": "ninja://third_party/angle/src/tests:standalone_angle_deqp_khr_gles3_tests/", - "use_isolated_scripts_api": true } ] }
diff --git a/testing/buildbot/client.v8.chromium.json b/testing/buildbot/client.v8.chromium.json index 738c88b..c2b2ae0 100644 --- a/testing/buildbot/client.v8.chromium.json +++ b/testing/buildbot/client.v8.chromium.json
@@ -509,6 +509,9 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "content_shell_crash_test", + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -1098,6 +1101,9 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "content_shell_crash_test", + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [
diff --git a/testing/buildbot/filters/lacros.browser_tests.filter b/testing/buildbot/filters/lacros.browser_tests.filter index 750dcf3..b724e06a 100644 --- a/testing/buildbot/filters/lacros.browser_tests.filter +++ b/testing/buildbot/filters/lacros.browser_tests.filter
@@ -16,8 +16,6 @@ -All/PopupBrowserTest.MoveClampedToCurrentDisplay* -All/SystemWebAppLinkCaptureBrowserTest.IncognitoBrowserOmniboxLinkCapture* -All/SystemWebAppLinkCaptureBrowserTest.WindowOpenFromOtherSWA* --All/WebAppBrowserTest.InScopePWAPopupsHaveCorrectSize* --All/WebAppBrowserTest.OffScopePWAPopupsHaveCorrectSize* -AppViewTest.KillGuestCommunicatingWithWrongAppView -AppViewTest.KillGuestWithInvalidInstanceID -AudioFocusWebContentsObserverBrowserTest.PlatformAppHasDifferentAudioFocus @@ -197,6 +195,8 @@ -TranslateLanguageBrowserTestWithTranslateRecentTarget.RecentTargetLanguage -TranslateManagerBrowserTest.PageTranslationTimeoutError -WebAppBrowserTest.CopyURL +-WebAppBrowserTest.InScopePWAPopupsHaveCorrectSize +-WebAppBrowserTest.OffScopePWAPopupsHaveCorrectSize -WebAppEngagementBrowserTest.CommandLineWindow -WebAppLinkCapturingBrowserTest.AboutBlankNavigationReparented -WebRtcDesktopCaptureBrowserTest.RunsScreenshareFromOneTabToAnother
diff --git a/testing/buildbot/internal.chromeos.fyi.json b/testing/buildbot/internal.chromeos.fyi.json index 7e7798c..af180fd 100644 --- a/testing/buildbot/internal.chromeos.fyi.json +++ b/testing/buildbot/internal.chromeos.fyi.json
@@ -11,6 +11,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -31,6 +34,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -104,6 +110,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [ @@ -128,6 +137,9 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, + "resultdb": { + "enable": false + }, "swarming": { "can_use_on_swarming_builders": true, "dimension_sets": [
diff --git a/testing/buildbot/test_suite_exceptions.pyl b/testing/buildbot/test_suite_exceptions.pyl index 42cbb32b1..35496c1b 100644 --- a/testing/buildbot/test_suite_exceptions.pyl +++ b/testing/buildbot/test_suite_exceptions.pyl
@@ -2772,7 +2772,32 @@ 'modifications': { 'Win10 Tests x64 (dbg)': { 'experiment_percentage': 100, # crbug.com/870673 - } + }, + # TODO(crbug.com/1132206): Apply this to all of the bot's tests if the + # cache affinity works. + 'chromeos-amd64-generic-rel': { + 'swarming': { + 'dimension_sets': [ + { + 'cpu': 'x86', + 'pool': 'chromium.tests', + } + ], + 'optional_dimensions': { + '60': [ + { + 'caches': 'cros_vm', + } + ], + }, + 'named_caches': [ + { + 'name': 'cros_vm', + 'path': 'magic_cros_vm_cache', + }, + ], + }, + }, }, 'remove_from': [ # crbug.com/936540
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl index 24f5709..c2f4632 100644 --- a/testing/buildbot/test_suites.pyl +++ b/testing/buildbot/test_suites.pyl
@@ -91,6 +91,10 @@ 'args': [ '--platform=android', ], + # TODO (crbug.com/1135909): Re-enable resultdb. + 'resultdb': { + 'enable': False, + } }, }, @@ -435,8 +439,17 @@ 'swarming': { 'idempotent': False, # https://crbug.com/923426#c27 }, + # TODO(crbug.com/1140593): Re-enable resultdb. + 'resultdb': { + 'enable': False, + }, }, - 'cros_browser_sanity_test': {}, + 'cros_browser_sanity_test': { + # TODO(crbug.com/1140593): Re-enable resultdb. + 'resultdb': { + 'enable': False, + } + }, 'disk_usage_tast_test': { "args": [ # Stripping gives more accurate disk usage data. @@ -1052,7 +1065,12 @@ }, 'client_v8_chromium_isolated_scripts': { - 'content_shell_crash_test': {}, + 'content_shell_crash_test': { + # TODO (crbug.com/1135909): Re-enable resultdb. + 'resultdb': { + 'enable': False, + } + }, 'telemetry_gpu_unittests': { 'swarming': { 'idempotent': False, # https://crbug.com/549140 @@ -1182,6 +1200,7 @@ } }, 'content_shell_crash_test': { + # TODO (crbug.com/1135909): Re-enable resultdb. 'resultdb': { 'enable': False, } @@ -4989,6 +5008,17 @@ 'gpu_angle_deqp_gles3_gl_gtests', ], + 'gpu_angle_deqp_win7_nvidia_gtests': [ + 'gpu_angle_deqp_egl_d3d11_gtests', + 'gpu_angle_deqp_egl_gl_gtests', + 'gpu_angle_deqp_gles2_d3d11_gtests', + 'gpu_angle_deqp_gles2_gl_gtests', + 'gpu_angle_deqp_gles31_d3d11_gtests', + 'gpu_angle_deqp_gles31_gl_gtests', + 'gpu_angle_deqp_gles3_d3d11_gtests', + 'gpu_angle_deqp_gles3_gl_gtests', + ], + 'gpu_angle_deqp_win_amd_gtests': [ 'gpu_angle_deqp_gles2_d3d11_gtests', 'gpu_angle_deqp_gles2_vulkan_gtests',
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl index bd548f8c..32dc40a9 100644 --- a/testing/buildbot/waterfalls.pyl +++ b/testing/buildbot/waterfalls.pyl
@@ -4435,7 +4435,7 @@ 'win7_nvidia_quadro_p400', ], 'test_suites': { - 'gtest_tests': 'gpu_angle_deqp_win_nvidia_gtests', + 'gtest_tests': 'gpu_angle_deqp_win7_nvidia_gtests', }, 'use_multi_dimension_trigger_script': True, 'alternate_swarming_dimensions': [
diff --git a/testing/scripts/representative_perf_test_data/representatives_frame_times_upper_limit.json b/testing/scripts/representative_perf_test_data/representatives_frame_times_upper_limit.json index ad6e2167..0eba03f 100644 --- a/testing/scripts/representative_perf_test_data/representatives_frame_times_upper_limit.json +++ b/testing/scripts/representative_perf_test_data/representatives_frame_times_upper_limit.json
@@ -112,7 +112,9 @@ "css_value_type_shadow": { "ci_095": 18.3, "avg": 65.502, - "cpu_wall_time_ratio": 0.585 + "cpu_wall_time_ratio": 0.585, + "experimental": true, + "_comment": "crbug.com/1139155" }, "animometer_webgl_attrib_arrays": { "ci_095": 0.44,
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index 661536d..089a523 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -1879,6 +1879,24 @@ ] } ], + "CopyLinkToTextDesktop": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "CopyLinkToText" + ] + } + ] + } + ], "CrOSMinFilelistKB": [ { "platforms": [ @@ -3187,22 +3205,6 @@ ] } ], - "HardwareMediaKeyHandling": [ - { - "platforms": [ - "windows", - "mac" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "HardwareMediaKeyHandling" - ] - } - ] - } - ], "HashedLoggingForHindsight": [ { "platforms": [ @@ -4710,13 +4712,19 @@ { "name": "DesktopExperiments", "params": { + "EntitySuggestionsReduceLatencyDecoderWakeup": "true", "MaxZeroSuggestMatches": "10", + "OmniboxDynamicMaxAutocompleteIncreasedLimit": "10", + "OmniboxDynamicMaxAutocompleteUrlCutoff": "2", "OmniboxLocalZeroSuggestAgeThreshold": "7", "OmniboxMaxURLMatches": "7", "UIMaxAutocompleteMatches": "8" }, "enable_features": [ + "OmniboxBubbleUrlSuggestions", "OmniboxDisplayTitleForCurrentUrl", + "OmniboxDynamicMaxAutocomplete", + "OmniboxEntitySuggestionsReduceLatency", "OmniboxLocalZeroSuggestAgeThreshold", "OmniboxLocalZeroSuggestFrecencyRanking", "OmniboxMaxURLMatches",
diff --git a/third_party/blink/perf_tests/layout/deeply-nested-grid.html b/third_party/blink/perf_tests/layout/deeply-nested-grid.html new file mode 100644 index 0000000..43cf8af4 --- /dev/null +++ b/third_party/blink/perf_tests/layout/deeply-nested-grid.html
@@ -0,0 +1,44 @@ +<!DOCTYPE html> +<style> +.grid { + display: grid; +} +.gridItem { + min-height: 0; + min-width: 0; +} +</style> + +<script src="../resources/runner.js"></script> +<script> +'use strict'; +function startTest() { + let root; + PerfTestRunner.measureRunsPerSecond({ + description: "Measures performance of layout on a page using deeply nested grids.", + setup() { + let node = document.createElement("div"); + node.className = "gridItem"; + node.textContent = "Inner contents"; + for (let i = 0; i < 16; ++i) { + let parent = document.createElement("div"); + parent.className = "grid gridItem"; + parent.appendChild(node); + node = parent; + } + root = node; + root.className = "grid"; + document.body.appendChild(root); + PerfTestRunner.forceLayout(); + }, + run() { + root.style.display = "none"; + PerfTestRunner.forceLayout(); + root.style.display = ""; + PerfTestRunner.forceLayout(); + }, + }); +} +</script> + +<body onload="startTest()"></body>
diff --git a/third_party/blink/public/mojom/web_feature/web_feature.mojom b/third_party/blink/public/mojom/web_feature/web_feature.mojom index 0255e8a..f3230a2 100644 --- a/third_party/blink/public/mojom/web_feature/web_feature.mojom +++ b/third_party/blink/public/mojom/web_feature/web_feature.mojom
@@ -3035,6 +3035,7 @@ kNewLayoutOverflowDifferentAndAlreadyScrollsBlock = 3704, kNewLayoutOverflowDifferentAndAlreadyScrollsFlex = 3705, kUnicodeBidiPlainText = 3706, + kColorSchemeDarkSupportedOnRoot = 3707, // Add new features immediately above this line. Don't change assigned // numbers of any item, and don't reuse removed slots.
diff --git a/third_party/blink/public/platform/input/input_handler_proxy.h b/third_party/blink/public/platform/input/input_handler_proxy.h index 03a11e3..2e6c3064 100644 --- a/third_party/blink/public/platform/input/input_handler_proxy.h +++ b/third_party/blink/public/platform/input/input_handler_proxy.h
@@ -20,6 +20,10 @@ class TickClock; } +namespace cc { +class EventMetrics; +} + namespace ui { class LatencyInfo; } @@ -66,8 +70,6 @@ bool force_input_to_main_thread); ~InputHandlerProxy() override; - using WebScopedInputEvent = std::unique_ptr<blink::WebInputEvent>; - ElasticOverscrollController* elastic_overscroll_controller() { return elastic_overscroll_controller_.get(); } @@ -139,9 +141,11 @@ EventDisposition, std::unique_ptr<blink::WebCoalescedInputEvent> event, std::unique_ptr<DidOverscrollParams>, - const blink::WebInputEventAttribution&)>; + const blink::WebInputEventAttribution&, + std::unique_ptr<cc::EventMetrics> metrics)>; void HandleInputEventWithLatencyInfo( std::unique_ptr<blink::WebCoalescedInputEvent> event, + std::unique_ptr<cc::EventMetrics> metrics, EventDispositionCallback callback); // In scroll unification, a scroll begin event may initially return unhandled @@ -151,15 +155,21 @@ // method. void ContinueScrollBeginAfterMainThreadHitTest( std::unique_ptr<blink::WebCoalescedInputEvent> event, + std::unique_ptr<cc::EventMetrics> metrics, EventDispositionCallback callback, cc::ElementIdType hit_tests_result); + // Handles creating synthetic gesture events. It is currently used for + // creating gesture event equivalents for mouse events on a composited + // scrollbar. `original_metrics` contains metrics for the original mouse event + // and is used to generated metrics for the new gesture event. void InjectScrollbarGestureScroll( const blink::WebInputEvent::Type type, const gfx::PointF& position_in_widget, const cc::InputHandlerPointerResult& pointer_result, const ui::LatencyInfo& latency_info, - const base::TimeTicks now); + const base::TimeTicks now, + const cc::EventMetrics* original_metrics); // Attempts to perform attribution of the given WebInputEvent to a target // frame. Intended for simple impl-side hit testing. @@ -229,7 +239,8 @@ const blink::WebGestureEvent& event); EventDisposition HandleGestureScrollUpdate( const blink::WebGestureEvent& event, - const blink::WebInputEventAttribution& original_attribution); + const blink::WebInputEventAttribution& original_attribution, + const cc::EventMetrics* original_metrics); EventDisposition HandleGestureScrollEnd(const blink::WebGestureEvent& event); EventDisposition HandleTouchStart(EventWithCallback* event_with_callback); EventDisposition HandleTouchMove(EventWithCallback* event_with_callback);
diff --git a/third_party/blink/public/platform/input/input_handler_proxy_client.h b/third_party/blink/public/platform/input/input_handler_proxy_client.h index db45659..8542a87 100644 --- a/third_party/blink/public/platform/input/input_handler_proxy_client.h +++ b/third_party/blink/public/platform/input/input_handler_proxy_client.h
@@ -5,6 +5,12 @@ #ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_INPUT_INPUT_HANDLER_PROXY_CLIENT_H_ #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_INPUT_INPUT_HANDLER_PROXY_CLIENT_H_ +#include <memory> + +namespace cc { +class EventMetrics; +} + namespace blink { class WebCoalescedInputEvent; class WebGestureEvent; @@ -17,20 +23,25 @@ // Dispatch a non blocking event to the main thread. This is used when a // gesture fling from a touchpad is processed and the target only has - // passive event listeners. + // passive event listeners. `metrics` contains information about the event + // which can be used in reporting latency metrics. virtual void DispatchNonBlockingEventToMainThread( std::unique_ptr<WebCoalescedInputEvent> event, - const blink::WebInputEventAttribution& attribution) = 0; + const blink::WebInputEventAttribution& attribution, + std::unique_ptr<cc::EventMetrics> metrics) = 0; virtual void DidAnimateForInput() = 0; virtual void DidStartScrollingViewport() = 0; // Used to send a GSB to the main thread when the scrolling should switch to - // the main thread. + // the main thread. `update_metrics` contains information about the original + // `update_event` which can be used to create metrics information for the + // generated GSB event. virtual void GenerateScrollBeginAndSendToMainThread( const blink::WebGestureEvent& update_event, - const blink::WebInputEventAttribution& attribution) = 0; + const blink::WebInputEventAttribution& attribution, + const cc::EventMetrics* update_metrics) = 0; virtual void SetAllowedTouchAction( cc::TouchAction touch_action,
diff --git a/third_party/blink/public/strings/translations/blink_strings_iw.xtb b/third_party/blink/public/strings/translations/blink_strings_iw.xtb index f8ac5f2..1590307 100644 --- a/third_party/blink/public/strings/translations/blink_strings_iw.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_iw.xtb
@@ -5,7 +5,7 @@ <translation id="10623998915015855">לחצן החלפה</translation> <translation id="1088086359088493902">שניות</translation> <translation id="1142001580032786438">הצגת בוחר השבוע</translation> -<translation id="1171774979989969504">הזן כתובת אימייל.</translation> +<translation id="1171774979989969504">הזנת כתובת אימייל.</translation> <translation id="1178581264944972037">השהיה</translation> <translation id="1188858454923323853">משלים</translation> <translation id="1206619573307042055">marquee</translation> @@ -59,7 +59,7 @@ <translation id="2530182415807757784">ניתן לבחור יותר מאפשרות אחת, לא נבחרה אף אפשרות.</translation> <translation id="2561842179657104141">הצג עוד פקדי מדיה</translation> <translation id="2572483411312390101">הפעל</translation> -<translation id="2613802280814924224">הזן ערך חוקי. הערך החוקי הקרוב ביותר הוא <ph name="VALID_VALUE" /></translation> +<translation id="2613802280814924224">יש להזין ערך חוקי. הערך החוקי הקרוב ביותר הוא <ph name="VALID_VALUE" /></translation> <translation id="2634240155926812724">הערוץ הירוק</translation> <translation id="2653659639078652383">שליחה</translation> <translation id="2657045182931379222">אובייקט גרפי</translation> @@ -71,7 +71,7 @@ <translation id="2761667185364618470">סמן תיבה זו אם אתה רוצה להמשיך.</translation> <translation id="2844350028562914727">פרטים</translation> <translation id="2896972712917208084">קבוצת לחצני בחירה</translation> -<translation id="2908441821576996758">הזן רשימה של כתובות אימייל המופרדות באמצעות פסיקים.</translation> +<translation id="2908441821576996758">יש להזין רשימה של כתובות אימייל המופרדות באמצעות פסיקים.</translation> <translation id="2940813599313844715">אובייקט</translation> <translation id="3040011195152428237">קישור</translation> <translation id="3049748772180311791"><ph name="QUANTITY" /> MB</translation> @@ -90,7 +90,7 @@ <translation id="3706100364254443312">מעבר</translation> <translation id="3732799496749320381">mm</translation> <translation id="3754210790023674521">יציאה ממצב תמונה בתוך תמונה</translation> -<translation id="3757388668994797779"><ph name="QUANTITY" /> GB</translation> +<translation id="3757388668994797779"><ph name="QUANTITY" />GB</translation> <translation id="3808586225841795776">מונח</translation> <translation id="3822383571486410024">הארך טקסט זה ל-<ph name="MIN_CHARACTERS" /> תווים או יותר (אתה משתמש כרגע ב-<ph name="CURRENT_LENGTH" /> תווים).</translation> <translation id="383465348367842624">חלק ולאחריו '<ph name="ATSIGN" />' לא אמור לכלול את הסמל '<ph name="INVALIDCHARACTER" />'.</translation> @@ -141,7 +141,7 @@ <translation id="512758898067543763">כותרת שורה</translation> <translation id="5143125788380636750">אפילוג</translation> <translation id="5164977714490026579">הערך חייב להיות גדול מ-<ph name="MINIMUM" /> או שווה לו.</translation> -<translation id="520299402983819650"><ph name="QUANTITY" /> PB</translation> +<translation id="520299402983819650"><ph name="QUANTITY" />PB</translation> <translation id="5307600278924710095">יש להזין חלק ואחריו '<ph name="ATSIGN" />'. השדה '<ph name="INVALIDADDRESS" />' אינו מלא.</translation> <translation id="5334352251556557839">לא ניתן להפעיל את המדיה.</translation> <translation id="537648784377940524">התאריך המוקדם ביותר (<ph name="MIN_DATE_OR_TIME" />) חייב לחול לפני התאריך המאוחר ביותר (<ph name="MAX_DATE_OR_TIME" />).</translation> @@ -151,7 +151,7 @@ <translation id="5468998798572797635">צא ממסך מלא</translation> <translation id="5516424706154626233">בוחר תאריכים</translation> <translation id="5537725057119320332">העברה</translation> -<translation id="5546461542133609677">בטל השתקה</translation> +<translation id="5546461542133609677">ביטול השתקה</translation> <translation id="5608153257855394627">הדגשה</translation> <translation id="561939826962581046">time</translation> <translation id="5630795885300617244">הקשה כפולה בצד ימין או שמאל מדלגת על 10 שניות</translation> @@ -186,7 +186,7 @@ <translation id="648732519525291180">בוחר שעות</translation> <translation id="6550675742724504774">אפשרויות</translation> <translation id="6572309429103589720">דקדוק שגוי</translation> -<translation id="658823671542763450">היכנס למסך מלא</translation> +<translation id="658823671542763450">כניסה למסך מלא</translation> <translation id="663493177488814956">פיד</translation> <translation id="6637586476836377253">log</translation> <translation id="6643016212128521049">ניקוי</translation> @@ -195,7 +195,7 @@ <translation id="6709093583001123835">הערך חייב להיות <ph name="VALUE" />.</translation> <translation id="6709570249143506788">איכות הפעלה נמוכה</translation> <translation id="6755330956360078551">הסבר קצר</translation> -<translation id="6790428901817661496">הפעל</translation> +<translation id="6790428901817661496">הפעלה</translation> <translation id="6820355525329141109">לא ניתן היה לטעון את הפלאגין.</translation> <translation id="6820615603175220800">הפניה לביבליוגרפיה</translation> <translation id="6831465880655513317">דוגמית צבע עם מחוון דו-ממדי לבחירת הרוויה והבהירות</translation> @@ -273,13 +273,13 @@ <translation id="862370744433916922">כותרת משנה</translation> <translation id="8634971699417195529">הצגת בוחר החודש</translation> <translation id="8711688047404765493">פלט</translation> -<translation id="8750798805984357768">בחר אחת מהאפשרויות הבאות.</translation> +<translation id="8750798805984357768">יש לבחור אחת מהאפשרויות הבאות.</translation> <translation id="8808573423886751634">פרק</translation> <translation id="8845239796550121995">מעביר תוכן לטלוויזיה</translation> <translation id="8851136666856101339">main</translation> <translation id="8875657656876809964">שגיאה בהפעלת הסרטון</translation> <translation id="8889402386540077796">גוון</translation> -<translation id="8901569739625249689"><ph name="QUANTITY" /> KB</translation> +<translation id="8901569739625249689"><ph name="QUANTITY" />KB</translation> <translation id="894736920926684893">לחצן החלפת פורמט</translation> <translation id="8987927404178983737">חודש</translation> <translation id="901493112792887934">זמן נוכחי בשניות</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_no.xtb b/third_party/blink/public/strings/translations/blink_strings_no.xtb index 0203abd3..1f8d0fe 100644 --- a/third_party/blink/public/strings/translations/blink_strings_no.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_no.xtb
@@ -30,7 +30,7 @@ <translation id="1806710327868736751">varseldialog</translation> <translation id="1821985195704844674">trerutenett</translation> <translation id="1822429046913737220">AM/PM</translation> -<translation id="1823704031293214298">sidebunn</translation> +<translation id="1823704031293214298">bunntekst</translation> <translation id="1832974991323546415">spill på ekstern enhet</translation> <translation id="190587075670221089">sletting</translation> <translation id="1907737156431278478">eksempel</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_vi.xtb b/third_party/blink/public/strings/translations/blink_strings_vi.xtb index 21c8620..31470aa7 100644 --- a/third_party/blink/public/strings/translations/blink_strings_vi.xtb +++ b/third_party/blink/public/strings/translations/blink_strings_vi.xtb
@@ -106,7 +106,7 @@ <translation id="4201051445878709314">Hiển thị tháng trước</translation> <translation id="421884353938374759">công cụ chọn màu</translation> <translation id="4248100235867064564">thanh menu</translation> -<translation id="4293574643247337246">tiêu đề trang</translation> +<translation id="4293574643247337246">đầu đề trang</translation> <translation id="4360991593054037559">Vui lòng nhập giá trị hợp lệ. Hai giá trị hợp lệ gần nhất là <ph name="VALID_VALUE_LOW" /> và <ph name="VALID_VALUE_HIGHER" />.</translation> <translation id="4384583879834880242">Hỏi và đáp</translation> <translation id="4444765639179266822">Có vẻ như nội dung là: <ph name="OCR_TEXT" /></translation>
diff --git a/third_party/blink/renderer/core/animation/compositor_animations.cc b/third_party/blink/renderer/core/animation/compositor_animations.cc index 9e743cb..47110dc0 100644 --- a/third_party/blink/renderer/core/animation/compositor_animations.cc +++ b/third_party/blink/renderer/core/animation/compositor_animations.cc
@@ -42,8 +42,10 @@ #include "third_party/blink/renderer/core/animation/css/compositor_keyframe_value.h" #include "third_party/blink/renderer/core/animation/element_animations.h" #include "third_party/blink/renderer/core/animation/keyframe_effect_model.h" +#include "third_party/blink/renderer/core/css/properties/computed_style_utils.h" #include "third_party/blink/renderer/core/dom/dom_node_ids.h" #include "third_party/blink/renderer/core/frame/settings.h" +#include "third_party/blink/renderer/core/layout/layout_box.h" #include "third_party/blink/renderer/core/layout/layout_box_model_object.h" #include "third_party/blink/renderer/core/layout/layout_object.h" #include "third_party/blink/renderer/core/paint/filter_effect_builder.h" @@ -59,6 +61,7 @@ #include "third_party/blink/renderer/platform/animation/compositor_transform_animation_curve.h" #include "third_party/blink/renderer/platform/animation/compositor_transform_keyframe.h" #include "third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.h" +#include "third_party/blink/renderer/platform/runtime_enabled_features.h" namespace blink { @@ -235,12 +238,14 @@ case CSSPropertyID::kScale: case CSSPropertyID::kTranslate: case CSSPropertyID::kTransform: - if (keyframe->GetCompositorKeyframeValue() && - To<CompositorKeyframeTransform>( - keyframe->GetCompositorKeyframeValue()) - ->GetTransformOperations() - .BoxSizeDependencies()) { - reasons |= kTransformRelatedPropertyDependsOnBoxSize; + if (!RuntimeEnabledFeatures::CompositeRelativeKeyframesEnabled()) { + if (keyframe->GetCompositorKeyframeValue() && + To<CompositorKeyframeTransform>( + keyframe->GetCompositorKeyframeValue()) + ->GetTransformOperations() + .BoxSizeDependencies()) { + reasons |= kTransformRelatedPropertyDependsOnBoxSize; + } } break; case CSSPropertyID::kFilter: @@ -624,19 +629,22 @@ void AddKeyframeToCurve(CompositorTransformAnimationCurve& curve, Keyframe::PropertySpecificKeyframe* keyframe, const CompositorKeyframeValue* value, - const TimingFunction& keyframe_timing_function) { + const TimingFunction& keyframe_timing_function, + const FloatSize& box_size) { CompositorTransformOperations ops; ToCompositorTransformOperations( - To<CompositorKeyframeTransform>(value)->GetTransformOperations(), &ops); + To<CompositorKeyframeTransform>(value)->GetTransformOperations(), &ops, + box_size); CompositorTransformKeyframe transform_keyframe( keyframe->Offset(), std::move(ops), keyframe_timing_function); curve.AddKeyframe(transform_keyframe); } -template <typename PlatformAnimationCurveType> +template <typename PlatformAnimationCurveType, typename... Args> void AddKeyframesToCurve(PlatformAnimationCurveType& curve, - const PropertySpecificKeyframeVector& keyframes) { + const PropertySpecificKeyframeVector& keyframes, + Args... parameters) { Keyframe::PropertySpecificKeyframe* last_keyframe = keyframes.back(); for (const auto& keyframe : keyframes) { const TimingFunction* keyframe_timing_function = nullptr; @@ -648,7 +656,8 @@ const CompositorKeyframeValue* value = keyframe->GetCompositorKeyframeValue(); - AddKeyframeToCurve(curve, keyframe, value, *keyframe_timing_function); + AddKeyframeToCurve(curve, keyframe, value, *keyframe_timing_function, + parameters...); } } @@ -714,10 +723,16 @@ case CSSPropertyID::kScale: case CSSPropertyID::kTranslate: case CSSPropertyID::kTransform: { + FloatSize box_size; + if (RuntimeEnabledFeatures::CompositeRelativeKeyframesEnabled()) { + box_size = ComputedStyleUtils::ReferenceBoxForTransform( + *target_element.GetLayoutObject()) + .Size(); + } target_property = compositor_target_property::TRANSFORM; auto transform_curve = std::make_unique<CompositorTransformAnimationCurve>(); - AddKeyframesToCurve(*transform_curve, values); + AddKeyframesToCurve(*transform_curve, values, box_size); transform_curve->SetTimingFunction(*timing.timing_function); transform_curve->SetScaledDuration(scale); curve = std::move(transform_curve);
diff --git a/third_party/blink/renderer/core/css/media_query.cc b/third_party/blink/renderer/core/css/media_query.cc index fcbc000..e1df5174 100644 --- a/third_party/blink/renderer/core/css/media_query.cc +++ b/third_party/blink/renderer/core/css/media_query.cc
@@ -69,10 +69,6 @@ return result.ToString(); } -static bool ExpressionCompare(const MediaQueryExp& a, const MediaQueryExp& b) { - return CodeUnitCompare(a.Serialize(), b.Serialize()) < 0; -} - std::unique_ptr<MediaQuery> MediaQuery::CreateNotAll() { return std::make_unique<MediaQuery>(MediaQuery::kNot, media_type_names::kAll, ExpressionHeapVector()); @@ -83,20 +79,7 @@ ExpressionHeapVector expressions) : restrictor_(restrictor), media_type_(AttemptStaticStringCreation(media_type.LowerASCII())), - expressions_(std::move(expressions)) { - std::sort(expressions_.begin(), expressions_.end(), ExpressionCompare); - - // Remove all duplicated expressions. - MediaQueryExp key = MediaQueryExp::Invalid(); - for (int i = expressions_.size() - 1; i >= 0; --i) { - MediaQueryExp exp = expressions_.at(i); - CHECK(exp.IsValid()); - if (exp == key) - expressions_.EraseAt(i); - else - key = exp; - } -} + expressions_(std::move(expressions)) {} MediaQuery::MediaQuery(const MediaQuery& o) : restrictor_(o.restrictor_),
diff --git a/third_party/blink/renderer/core/css/media_query_set_test.cc b/third_party/blink/renderer/core/css/media_query_set_test.cc index 39bba57..6573f3e 100644 --- a/third_party/blink/renderer/core/css/media_query_set_test.cc +++ b/third_party/blink/renderer/core/css/media_query_set_test.cc
@@ -59,8 +59,7 @@ {"(example, all,), speech", "not all, speech"}, {"&test, screen", "not all, screen"}, {"print and (min-width: 25cm)", nullptr}, - {"screen and (min-width: 400px) and (max-width: 700px)", - "screen and (max-width: 700px) and (min-width: 400px)"}, + {"screen and (min-width: 400px) and (max-width: 700px)", nullptr}, {"screen and (device-width: 800px)", nullptr}, {"screen and (device-height: 60em)", nullptr}, {"screen and (device-height: 60rem)", nullptr},
diff --git a/third_party/blink/renderer/core/css/parser/css_selector_parser.cc b/third_party/blink/renderer/core/css/parser/css_selector_parser.cc index 3b5d5b8..5348ac4 100644 --- a/third_party/blink/renderer/core/css/parser/css_selector_parser.cc +++ b/third_party/blink/renderer/core/css/parser/css_selector_parser.cc
@@ -1209,6 +1209,8 @@ const CSSSelectorList& selector_list) { if (!context_->IsUseCounterRecordingEnabled()) return; + if (context_->Mode() == kUASheetMode) + return; for (const CSSSelector* selector = selector_list.FirstForCSSOM(); selector; selector = CSSSelectorList::Next(*selector)) { @@ -1225,12 +1227,10 @@ break; case CSSSelector::kPseudoFocusVisible: DCHECK(RuntimeEnabledFeatures::CSSFocusVisibleEnabled()); - if (context_->Mode() != kUASheetMode) - feature = WebFeature::kCSSSelectorPseudoFocusVisible; + feature = WebFeature::kCSSSelectorPseudoFocusVisible; break; case CSSSelector::kPseudoFocus: - if (context_->Mode() != kUASheetMode) - feature = WebFeature::kCSSSelectorPseudoFocus; + feature = WebFeature::kCSSSelectorPseudoFocus; break; case CSSSelector::kPseudoAnyLink: feature = WebFeature::kCSSSelectorPseudoAnyLink; @@ -1268,26 +1268,20 @@ feature = WebFeature::kCSSSelectorPseudoFullScreen; break; case CSSSelector::kPseudoListBox: - if (context_->Mode() != kUASheetMode) - feature = WebFeature::kCSSSelectorInternalPseudoListBox; + feature = WebFeature::kCSSSelectorInternalPseudoListBox; break; case CSSSelector::kPseudoWebKitCustomElement: - if (context_->Mode() != kUASheetMode) - feature = FeatureForWebKitCustomPseudoElement(current->Value()); + feature = FeatureForWebKitCustomPseudoElement(current->Value()); break; case CSSSelector::kPseudoSpatialNavigationFocus: - if (context_->Mode() != kUASheetMode) { - feature = - WebFeature::kCSSSelectorInternalPseudoSpatialNavigationFocus; - } + feature = + WebFeature::kCSSSelectorInternalPseudoSpatialNavigationFocus; break; case CSSSelector::kPseudoReadOnly: - if (context_->Mode() != kUASheetMode) - feature = WebFeature::kCSSSelectorPseudoReadOnly; + feature = WebFeature::kCSSSelectorPseudoReadOnly; break; case CSSSelector::kPseudoReadWrite: - if (context_->Mode() != kUASheetMode) - feature = WebFeature::kCSSSelectorPseudoReadWrite; + feature = WebFeature::kCSSSelectorPseudoReadWrite; break; default: break;
diff --git a/third_party/blink/renderer/core/css/parser/css_selector_parser_test.cc b/third_party/blink/renderer/core/css/parser/css_selector_parser_test.cc index dd3371f0..057853a 100644 --- a/third_party/blink/renderer/core/css/parser/css_selector_parser_test.cc +++ b/third_party/blink/renderer/core/css/parser/css_selector_parser_test.cc
@@ -685,25 +685,31 @@ } } -TEST(CSSSelectorParserTest, UseCountShadowPseudo) { +static bool IsCounted(const char* selector, + CSSParserMode mode, + WebFeature feature) { auto dummy_holder = std::make_unique<DummyPageHolder>(IntSize(500, 500)); Document* doc = &dummy_holder->GetDocument(); Page::InsertOrdinaryPageForTesting(&dummy_holder->GetPage()); auto* context = MakeGarbageCollected<CSSParserContext>( - kHTMLStandardMode, SecureContextMode::kSecureContext, - CSSParserContext::kLiveProfile, doc); + mode, SecureContextMode::kSecureContext, CSSParserContext::kLiveProfile, + doc); auto* sheet = MakeGarbageCollected<StyleSheetContents>(context); - auto ExpectCount = [doc, context, sheet](const char* selector, - WebFeature feature) { - EXPECT_FALSE(doc->IsUseCounted(feature)); + DCHECK(!doc->IsUseCounted(feature)); - CSSTokenizer tokenizer(selector); - const auto tokens = tokenizer.TokenizeToEOF(); - CSSParserTokenRange range(tokens); - CSSSelectorParser::ParseSelector(range, context, sheet); + CSSTokenizer tokenizer(selector); + const auto tokens = tokenizer.TokenizeToEOF(); + CSSParserTokenRange range(tokens); + CSSSelectorParser::ParseSelector(range, context, sheet); - EXPECT_TRUE(doc->IsUseCounted(feature)); + return doc->IsUseCounted(feature); +} + +TEST(CSSSelectorParserTest, UseCountShadowPseudo) { + auto ExpectCount = [](const char* selector, WebFeature feature) { + SCOPED_TRACE(selector); + EXPECT_TRUE(IsCounted(selector, kHTMLStandardMode, feature)); }; ExpectCount("::cue", WebFeature::kCSSSelectorCue); @@ -821,6 +827,30 @@ WebFeature::kCSSSelectorWebkitUnknownPseudo); } +TEST(CSSSelectorParserTest, IsWhereUseCount) { + const auto is_feature = WebFeature::kCSSSelectorPseudoIs; + EXPECT_FALSE(IsCounted(".a", kHTMLStandardMode, is_feature)); + EXPECT_FALSE(IsCounted(":not(.a)", kHTMLStandardMode, is_feature)); + EXPECT_FALSE(IsCounted(":where(.a)", kHTMLStandardMode, is_feature)); + EXPECT_TRUE(IsCounted(":is()", kHTMLStandardMode, is_feature)); + EXPECT_TRUE(IsCounted(":is(.a)", kHTMLStandardMode, is_feature)); + EXPECT_TRUE(IsCounted(":not(:is(.a))", kHTMLStandardMode, is_feature)); + EXPECT_TRUE(IsCounted(".a:is(.b)", kHTMLStandardMode, is_feature)); + EXPECT_TRUE(IsCounted(":is(.a).b", kHTMLStandardMode, is_feature)); + EXPECT_FALSE(IsCounted(":is(.a)", kUASheetMode, is_feature)); + + const auto where_feature = WebFeature::kCSSSelectorPseudoWhere; + EXPECT_FALSE(IsCounted(".a", kHTMLStandardMode, where_feature)); + EXPECT_FALSE(IsCounted(":not(.a)", kHTMLStandardMode, where_feature)); + EXPECT_FALSE(IsCounted(":is(.a)", kHTMLStandardMode, where_feature)); + EXPECT_TRUE(IsCounted(":where()", kHTMLStandardMode, where_feature)); + EXPECT_TRUE(IsCounted(":where(.a)", kHTMLStandardMode, where_feature)); + EXPECT_TRUE(IsCounted(":not(:where(.a))", kHTMLStandardMode, where_feature)); + EXPECT_TRUE(IsCounted(".a:where(.b)", kHTMLStandardMode, where_feature)); + EXPECT_TRUE(IsCounted(":where(.a).b", kHTMLStandardMode, where_feature)); + EXPECT_FALSE(IsCounted(":where(.a)", kUASheetMode, where_feature)); +} + TEST(CSSSelectorParserTest, ImplicitShadowCrossingCombinators) { struct ShadowCombinatorTest { const char* input;
diff --git a/third_party/blink/renderer/core/css/parser/media_condition_test.cc b/third_party/blink/renderer/core/css/parser/media_condition_test.cc index f76c97e..0a854053 100644 --- a/third_party/blink/renderer/core/css/parser/media_condition_test.cc +++ b/third_party/blink/renderer/core/css/parser/media_condition_test.cc
@@ -27,8 +27,7 @@ {"(min-width:500px)", "(min-width: 500px)"}, {"(min-width: -100px)", "not all"}, {"(min-width: 100px) and print", "not all"}, - {"(min-width: 100px) and (max-width: 900px)", - "(max-width: 900px) and (min-width: 100px)"}, + {"(min-width: 100px) and (max-width: 900px)", nullptr}, {"(min-width: [100px) and (max-width: 900px)", "not all"}, {"not (min-width: 900px)", "not all and (min-width: 900px)"}, {"not (blabla)", "not all"}, @@ -44,7 +43,9 @@ nullptr); ASSERT_EQ(media_condition_query_set->QueryVector().size(), (unsigned)1); String query_text = media_condition_query_set->QueryVector()[0]->CssText(); - ASSERT_EQ(test_cases[i].output, query_text); + const char* expected_text = + test_cases[i].output ? test_cases[i].output : test_cases[i].input; + ASSERT_EQ(expected_text, query_text); } }
diff --git a/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc b/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc index b18371e..73219142 100644 --- a/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc +++ b/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
@@ -1644,6 +1644,15 @@ } state.Style()->SetColorScheme(color_schemes); state.Style()->SetDarkColorScheme(has_dark && (!has_light || prefers_dark)); + + if (has_dark) { + // Record kColorSchemeDarkSupportedOnRoot if dark is present (though dark + // may not be used). This metric is also recorded in + // StyleEngine::UpdateColorSchemeMetrics if a meta tag supports dark. + auto& doc = state.GetDocument(); + if (doc.documentElement() == state.ElementContext().GetElement()) + UseCounter::Count(doc, WebFeature::kColorSchemeDarkSupportedOnRoot); + } } else { NOTREACHED(); }
diff --git a/third_party/blink/renderer/core/css/style_engine.cc b/third_party/blink/renderer/core/css/style_engine.cc index b93bae14..127c6dc4 100644 --- a/third_party/blink/renderer/core/css/style_engine.cc +++ b/third_party/blink/renderer/core/css/style_engine.cc
@@ -2214,6 +2214,23 @@ UseCounter::Count(GetDocument(), WebFeature::kPreferredColorSchemeDarkSetting); } + + // Record kColorSchemeDarkSupportedOnRoot if the meta color-scheme contains + // dark (though dark may not be used). This metric is also recorded in + // longhands_custom.cc (see: ColorScheme::ApplyValue) if the root style + // color-scheme contains dark. + if (meta_color_scheme_) { + const auto* scheme_list = DynamicTo<CSSValueList>(*meta_color_scheme_); + if (scheme_list) { + for (auto& item : *scheme_list) { + const auto* ident = DynamicTo<CSSIdentifierValue>(*item); + if (ident && ident->GetValueID() == CSSValueID::kDark) { + UseCounter::Count(GetDocument(), + WebFeature::kColorSchemeDarkSupportedOnRoot); + } + } + } + } } void StyleEngine::ColorSchemeChanged() {
diff --git a/third_party/blink/renderer/core/css/style_engine_test.cc b/third_party/blink/renderer/core/css/style_engine_test.cc index f39ae91..a774de0f 100644 --- a/third_party/blink/renderer/core/css/style_engine_test.cc +++ b/third_party/blink/renderer/core/css/style_engine_test.cc
@@ -1890,6 +1890,62 @@ EXPECT_TRUE(IsUseCounted(WebFeature::kForcedDarkMode)); } +TEST_F(StyleEngineTest, ColorSchemeDarkSupportedOnRootMetricFromMetaDark) { + EXPECT_FALSE(IsUseCounted(WebFeature::kColorSchemeDarkSupportedOnRoot)); + GetDocument().body()->setInnerHTML(R"HTML( + <meta name="color-scheme" content="dark"> + )HTML"); + UpdateAllLifecyclePhases(); + EXPECT_TRUE(IsUseCounted(WebFeature::kColorSchemeDarkSupportedOnRoot)); +} + +TEST_F(StyleEngineTest, ColorSchemeDarkSupportedOnRootMetricFromMetaLightDark) { + EXPECT_FALSE(IsUseCounted(WebFeature::kColorSchemeDarkSupportedOnRoot)); + GetDocument().body()->setInnerHTML(R"HTML( + <meta name="color-scheme" content="light dark"> + )HTML"); + UpdateAllLifecyclePhases(); + EXPECT_TRUE(IsUseCounted(WebFeature::kColorSchemeDarkSupportedOnRoot)); +} + +TEST_F(StyleEngineTest, ColorSchemeDarkSupportedOnRootMetricFromCSSDark) { + EXPECT_FALSE(IsUseCounted(WebFeature::kColorSchemeDarkSupportedOnRoot)); + GetDocument().body()->setInnerHTML(R"HTML( + <style> :root { color-scheme: dark; } </style> + )HTML"); + UpdateAllLifecyclePhases(); + EXPECT_TRUE(IsUseCounted(WebFeature::kColorSchemeDarkSupportedOnRoot)); +} + +TEST_F(StyleEngineTest, ColorSchemeDarkSupportedOnRootMetricFromCSSLightDark) { + EXPECT_FALSE(IsUseCounted(WebFeature::kColorSchemeDarkSupportedOnRoot)); + GetDocument().body()->setInnerHTML(R"HTML( + <style> :root { color-scheme: light dark; } </style> + )HTML"); + UpdateAllLifecyclePhases(); + EXPECT_TRUE(IsUseCounted(WebFeature::kColorSchemeDarkSupportedOnRoot)); +} + +TEST_F(StyleEngineTest, ColorSchemeDarkSupportedOnRootMetricFromChildCSSDark) { + EXPECT_FALSE(IsUseCounted(WebFeature::kColorSchemeDarkSupportedOnRoot)); + GetDocument().body()->setInnerHTML(R"HTML( + <style> div { color-scheme: dark; } </style> + <div></div> + )HTML"); + UpdateAllLifecyclePhases(); + EXPECT_FALSE(IsUseCounted(WebFeature::kColorSchemeDarkSupportedOnRoot)); +} + +TEST_F(StyleEngineTest, ColorSchemeDarkSupportedOnRootMetricFromLight) { + EXPECT_FALSE(IsUseCounted(WebFeature::kColorSchemeDarkSupportedOnRoot)); + GetDocument().body()->setInnerHTML(R"HTML( + <meta name="color-scheme" content="light"> + <style> :root { color-scheme: light; } </style> + )HTML"); + UpdateAllLifecyclePhases(); + EXPECT_FALSE(IsUseCounted(WebFeature::kColorSchemeDarkSupportedOnRoot)); +} + TEST_F(StyleEngineTest, MediaQueriesReducedMotionOverride) { EXPECT_FALSE(GetDocument().GetSettings()->GetPrefersReducedMotion());
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc index ee8341a..3c8b9a1 100644 --- a/third_party/blink/renderer/core/dom/element.cc +++ b/third_party/blink/renderer/core/dom/element.cc
@@ -1275,16 +1275,24 @@ return 0; } +bool Element::IsViewportScrollElement() { + auto& document = GetDocument(); + bool quirks_mode = document.InQuirksMode(); + return (!quirks_mode && document.documentElement() == this) || + (quirks_mode && IsHTMLElement() && document.body() == this); +} + void Element::RecordScrollbarSizeForStudy(int measurement, bool is_width, bool is_offset) { if (!IdentifiabilityStudySettings::Get()->IsTypeAllowed( - IdentifiableSurface::Type::kScrollbarSize)) + IdentifiableSurface::Type::kScrollbarSize) || + (!is_offset && !IsViewportScrollElement())) return; // Check for presence of a scrollbar. PaintLayerScrollableArea* area; - if (this == GetDocument().ScrollingElementNoLayout()) { + if (IsViewportScrollElement()) { auto* view = GetDocument().View(); if (!view) return; @@ -1314,7 +1322,7 @@ // corresponding document.scrollingElement.offset[Width|Height]. // 2. Any HTML element that insets the layout to fit a scrollbar, so it is // measurable by a JavaScript program on a site. - if (this == GetDocument().scrollingElement()) { + if (IsViewportScrollElement()) { LocalDOMWindow* dom_window = GetDocument().domWindow(); scrollbar_size = (is_width ? dom_window->innerWidth() : dom_window->innerHeight()) - @@ -1323,13 +1331,11 @@ is_width ? IdentifiableSurface::ScrollbarSurface::kScrollingElementWidth : IdentifiableSurface::ScrollbarSurface::kScrollingElementHeight; - } else if (is_offset) { + } else { scrollbar_size = measurement - (is_width ? clientWidth() : clientHeight()); surface = is_width ? IdentifiableSurface::ScrollbarSurface::kElemScrollbarWidth : IdentifiableSurface::ScrollbarSurface::kElemScrollbarHeight; - } else { - return; } blink::IdentifiabilityMetricBuilder(GetDocument().UkmSourceID()) @@ -1344,9 +1350,7 @@ // width of the containing frame. // When in quirks mode, clientWidth for the body element should return the // width of the containing frame. - bool in_quirks_mode = GetDocument().InQuirksMode(); - if ((!in_quirks_mode && GetDocument().documentElement() == this) || - (in_quirks_mode && IsHTMLElement() && GetDocument().body() == this)) { + if (IsViewportScrollElement()) { auto* layout_view = GetDocument().GetLayoutView(); if (layout_view) { // TODO(crbug.com/740879): Use per-page overlay scrollbar settings. @@ -1400,10 +1404,7 @@ // the height of the containing frame. // When in quirks mode, clientHeight for the body element should return the // height of the containing frame. - bool in_quirks_mode = GetDocument().InQuirksMode(); - - if ((!in_quirks_mode && GetDocument().documentElement() == this) || - (in_quirks_mode && IsHTMLElement() && GetDocument().body() == this)) { + if (IsViewportScrollElement()) { auto* layout_view = GetDocument().GetLayoutView(); if (layout_view) { // TODO(crbug.com/740879): Use per-page overlay scrollbar settings.
diff --git a/third_party/blink/renderer/core/dom/element.h b/third_party/blink/renderer/core/dom/element.h index 2d141739..1e6993e 100644 --- a/third_party/blink/renderer/core/dom/element.h +++ b/third_party/blink/renderer/core/dom/element.h
@@ -934,6 +934,7 @@ const ElementData* GetElementData() const { return element_data_.Get(); } UniqueElementData& EnsureUniqueElementData(); + bool IsViewportScrollElement(); void RecordScrollbarSizeForStudy(int measurement, bool is_width, bool is_offset);
diff --git a/third_party/blink/renderer/core/exported/web_page_popup_impl.cc b/third_party/blink/renderer/core/exported/web_page_popup_impl.cc index e0143b5..a33944c 100644 --- a/third_party/blink/renderer/core/exported/web_page_popup_impl.cc +++ b/third_party/blink/renderer/core/exported/web_page_popup_impl.cc
@@ -425,7 +425,8 @@ void WebPagePopupImpl::ProcessInputEventSynchronouslyForTesting( const WebCoalescedInputEvent& event, HandledEventCallback callback) { - widget_base_->input_handler().HandleInputEvent(event, std::move(callback)); + widget_base_->input_handler().HandleInputEvent(event, nullptr, + std::move(callback)); } void WebPagePopupImpl::UpdateTextInputState() {
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_base.cc b/third_party/blink/renderer/core/frame/web_frame_widget_base.cc index a3488bb..3cda618 100644 --- a/third_party/blink/renderer/core/frame/web_frame_widget_base.cc +++ b/third_party/blink/renderer/core/frame/web_frame_widget_base.cc
@@ -1144,7 +1144,8 @@ void WebFrameWidgetBase::ProcessInputEventSynchronouslyForTesting( const WebCoalescedInputEvent& event, HandledEventCallback callback) { - widget_base_->input_handler().HandleInputEvent(event, std::move(callback)); + widget_base_->input_handler().HandleInputEvent(event, nullptr, + std::move(callback)); } void WebFrameWidgetBase::UpdateTextInputState() {
diff --git a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc index 435b7be..3def803 100644 --- a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc +++ b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc
@@ -45,7 +45,8 @@ : NGGridPlacement::PackingBehavior::kDense, AutoFlowDirection(), Style(), AutoFlowDirection() == kForRows ? column_count_ : row_count_, - block_row_track_collection_, block_column_track_collection_, items_) + block_row_track_collection_, block_column_track_collection_, + grid_items_) .RunAutoPlacementAlgorithm(); block_column_track_collection_.FinalizeRanges(); @@ -187,24 +188,25 @@ NGGridLayoutAlgorithm::ReorderedGridItems::Iterator::Iterator( Vector<wtf_size_t>::const_iterator current_index, - Vector<GridItemData>* items) - : current_index_(current_index), items_(items) {} + Vector<GridItemData>* grid_items) + : current_index_(current_index), grid_items_(grid_items) {} bool NGGridLayoutAlgorithm::ReorderedGridItems::Iterator::operator!=( const Iterator& other) const { - return items_ != other.items_ || current_index_ != other.current_index_; + return grid_items_ != other.grid_items_ || + current_index_ != other.current_index_; } NGGridLayoutAlgorithm::GridItemData* NGGridLayoutAlgorithm::ReorderedGridItems::Iterator::operator->() { - DCHECK_LT(*current_index_, items_->size()); - return &(items_->at(*current_index_)); + DCHECK_LT(*current_index_, grid_items_->size()); + return &(grid_items_->at(*current_index_)); } NGGridLayoutAlgorithm::GridItemData& NGGridLayoutAlgorithm::ReorderedGridItems::Iterator::operator*() { - DCHECK_LT(*current_index_, items_->size()); - return items_->at(*current_index_); + DCHECK_LT(*current_index_, grid_items_->size()); + return grid_items_->at(*current_index_); } NGGridLayoutAlgorithm::ReorderedGridItems::Iterator& @@ -215,22 +217,23 @@ NGGridLayoutAlgorithm::ReorderedGridItems::ReorderedGridItems( const Vector<wtf_size_t>& reordered_item_indices, - Vector<GridItemData>& items) - : reordered_item_indices_(reordered_item_indices), items_(items) {} + Vector<GridItemData>& grid_items) + : reordered_item_indices_(reordered_item_indices), + grid_items_(grid_items) {} NGGridLayoutAlgorithm::ReorderedGridItems::Iterator NGGridLayoutAlgorithm::ReorderedGridItems::begin() { - return Iterator(reordered_item_indices_.begin(), &items_); + return Iterator(reordered_item_indices_.begin(), &grid_items_); } NGGridLayoutAlgorithm::ReorderedGridItems::Iterator NGGridLayoutAlgorithm::ReorderedGridItems::end() { - return Iterator(reordered_item_indices_.end(), &items_); + return Iterator(reordered_item_indices_.end(), &grid_items_); } NGGridLayoutAlgorithm::ReorderedGridItems NGGridLayoutAlgorithm::GetReorderedGridItems() { - return ReorderedGridItems(reordered_item_indices_, items_); + return ReorderedGridItems(reordered_item_indices_, grid_items_); } NGGridLayoutAlgorithmTrackCollection& NGGridLayoutAlgorithm::TrackCollection( @@ -281,12 +284,17 @@ for (NGBlockNode child = iterator.NextChild(); child; child = iterator.NextChild()) { GridItemData grid_item = MeasureGridItem(child); - items_.emplace_back(grid_item); + // Store out-of-flow items separately, as they do not contribute to track + // sizing or auto placement. + if (child.IsOutOfFlowPositioned()) + out_of_flow_items_.emplace_back(grid_item); + else + grid_items_.emplace_back(grid_item); } // Fill grid item indices vector in document order. - reordered_item_indices_.ReserveInitialCapacity(items_.size()); - for (wtf_size_t i = 0; i < items_.size(); ++i) + reordered_item_indices_.ReserveInitialCapacity(grid_items_.size()); + for (wtf_size_t i = 0; i < grid_items_.size(); ++i) reordered_item_indices_.push_back(i); } @@ -403,7 +411,7 @@ void NGGridLayoutAlgorithm::CacheItemSetIndices() { auto CacheItemSetIndices = [this](GridTrackSizingDirection track_direction) { const auto& track_collection = TrackCollection(track_direction); - for (GridItemData& item : items_) { + for (GridItemData& item : grid_items_) { wtf_size_t first_spanned_range = track_collection.RangeIndexFromTrackNumber( item.StartLine(track_direction)); @@ -430,7 +438,6 @@ } } }; - CacheItemSetIndices(kForColumns); CacheItemSetIndices(kForRows); } @@ -439,8 +446,8 @@ GridTrackSizingDirection track_direction) { auto CompareGridItemsByStartLine = [this, track_direction](wtf_size_t index_a, wtf_size_t index_b) -> bool { - return items_[index_a].StartLine(track_direction) < - items_[index_b].StartLine(track_direction); + return grid_items_[index_a].StartLine(track_direction) < + grid_items_[index_b].StartLine(track_direction); }; std::sort(reordered_item_indices_.begin(), reordered_item_indices_.end(), CompareGridItemsByStartLine); @@ -922,14 +929,14 @@ // - Finally, consider all items spanning a flexible track. auto CompareGridItemsForIntrinsicTrackResolution = [this, track_direction](wtf_size_t index_a, wtf_size_t index_b) -> bool { - if (items_[index_a].is_spanning_flex_track || - items_[index_b].is_spanning_flex_track) { + if (grid_items_[index_a].is_spanning_flex_track || + grid_items_[index_b].is_spanning_flex_track) { // Ignore span sizes if one of the items spans a track with a flexible // sizing function; items not spanning such tracks should come first. - return !items_[index_a].is_spanning_flex_track; + return !grid_items_[index_a].is_spanning_flex_track; } - return items_[index_a].SpanSize(track_direction) < - items_[index_b].SpanSize(track_direction); + return grid_items_[index_a].SpanSize(track_direction) < + grid_items_[index_b].SpanSize(track_direction); }; std::sort(reordered_item_indices_.begin(), reordered_item_indices_.end(), CompareGridItemsForIntrinsicTrackResolution); @@ -983,72 +990,89 @@ } void NGGridLayoutAlgorithm::PlaceGridItems() { - NGGridChildIterator iterator(Node()); - LayoutUnit current_inline_offset, current_block_offset; - LayoutUnit column_grid_gap = GridGap(GridTrackSizingDirection::kForColumns); LayoutUnit row_grid_gap = GridGap(GridTrackSizingDirection::kForRows); - for (auto row_set_iterator = TrackCollection(kForRows).GetSetIterator(); + LayoutUnit column_set_offset = BorderScrollbarPadding().inline_start; + Vector<LayoutUnit> column_set_offsets = {column_set_offset}; + column_set_offsets.ReserveCapacity( + algorithm_column_track_collection_.SetCount() + 1); + for (auto column_set_iterator = + algorithm_column_track_collection_.GetSetIterator(); + !column_set_iterator.IsAtEnd(); column_set_iterator.MoveToNextSet()) { + const auto& set = column_set_iterator.CurrentSet(); + column_set_offset += set.BaseSize() + set.TrackCount() * column_grid_gap; + column_set_offsets.push_back(column_set_offset); + } + + LayoutUnit row_set_offset = BorderScrollbarPadding().block_start; + Vector<LayoutUnit> row_set_offsets = {row_set_offset}; + row_set_offsets.ReserveCapacity(algorithm_row_track_collection_.SetCount() + + 1); + for (auto row_set_iterator = algorithm_row_track_collection_.GetSetIterator(); !row_set_iterator.IsAtEnd(); row_set_iterator.MoveToNextSet()) { - LayoutUnit row_base_size = row_set_iterator.CurrentSet().BaseSize(); - current_inline_offset = LayoutUnit(); - - for (auto column_set_iterator = - TrackCollection(kForColumns).GetSetIterator(); - !column_set_iterator.IsAtEnd(); column_set_iterator.MoveToNextSet()) { - LayoutUnit column_base_size = column_set_iterator.CurrentSet().BaseSize(); - - const NGBlockNode child_node = iterator.NextChild(); - if (!child_node) - return; // TODO(kschmi): DCHECK when auto rows/columns are implemented. - - if (child_node.IsOutOfFlowPositioned()) { - // TODO(kschmi): Pass correct static positioned offset in. - container_builder_.AddOutOfFlowChildCandidate(child_node, - LogicalOffset()); - continue; - } - - // Layout child nodes based on constraint space from grid row/column - // definitions and the inline and block offsets being accumulated. - const auto& child_style = child_node.Style(); - NGConstraintSpaceBuilder builder(ConstraintSpace(), - child_style.GetWritingMode(), - /* is_new_fc */ true); - SetOrthogonalFallbackInlineSizeIfNeeded(Style(), child_node, &builder); - builder.SetIsPaintedAtomically(true); - builder.SetAvailableSize(LogicalSize(column_base_size, row_base_size)); - builder.SetPercentageResolutionSize( - LogicalSize(column_base_size, row_base_size)); - builder.SetTextDirection(child_style.Direction()); - builder.SetIsShrinkToFit(child_style.LogicalWidth().IsAuto()); - NGConstraintSpace constraint_space = builder.ToConstraintSpace(); - scoped_refptr<const NGLayoutResult> result = - child_node.Layout(constraint_space); - - container_builder_.AddChild( - result->PhysicalFragment(), - {current_inline_offset, current_block_offset}); - current_inline_offset += column_base_size + column_grid_gap; - } - current_block_offset += row_base_size + row_grid_gap; + const auto& set = row_set_iterator.CurrentSet(); + row_set_offset += set.BaseSize() + set.TrackCount() * row_grid_gap; + row_set_offsets.push_back(row_set_offset); } - // TODO(kschmi): There should not be any remaining children, as grid auto - // rows and columns should be expanded to handle all children. However, as - // that functionality isn't implemented yet, it is currently possible to - // have more children than available rows and columns. For now, place these - // children at (0, 0). This should be turned into an assert that no children - // remain in the iterator after the above loops have completed iterating over - // rows and columns. - while (const NGBlockNode child_node = iterator.NextChild()) { - NGConstraintSpace constraint_space = BuildSpaceForGridItem(child_node); - scoped_refptr<const NGLayoutResult> result = - child_node.Layout(constraint_space); - container_builder_.AddChild(result->PhysicalFragment(), - {LayoutUnit(), LayoutUnit()}); + for (GridItemData& grid_item : grid_items_) { + wtf_size_t column_start_index = grid_item.columns_begin_set_index; + wtf_size_t column_end_index = grid_item.columns_end_set_index; + wtf_size_t row_start_index = grid_item.rows_begin_set_index; + wtf_size_t row_end_index = grid_item.rows_end_set_index; + + DCHECK_LT(column_start_index, column_end_index); + DCHECK_LT(row_start_index, row_end_index); + DCHECK_LT(column_end_index, column_set_offsets.size()); + DCHECK_LT(row_end_index, row_set_offsets.size()); + + LogicalOffset offset = {column_set_offsets[column_start_index], + row_set_offsets[row_start_index]}; + + // Inline and block sizes can be deduced from the delta between the inline + // offset and the cumulated offset at the given item's end indices. The + // cumulated offset's calculation includes the grid gap between and after + // the spanned tracks. The latter is not needed, so it is subtracted. + LogicalSize size = { + column_set_offsets[column_end_index] - offset.inline_offset - + column_grid_gap, + row_set_offsets[row_end_index] - offset.block_offset - row_grid_gap}; + DCHECK_GE(size.inline_size, 0); + DCHECK_GE(size.block_size, 0); + + PlaceGridItem(grid_item, offset, size); } + + for (GridItemData& out_of_flow_item : out_of_flow_items_) { + // TODO(ansollan): Look up offsets based on specified row/column for + // absolutely-positioned items, as described in + // https://drafts.csswg.org/css-grid-1/#abspos, and pass the correct static + // positioned offset in. + container_builder_.AddOutOfFlowChildCandidate(out_of_flow_item.node, + LogicalOffset()); + } +} + +void NGGridLayoutAlgorithm::PlaceGridItem(const GridItemData& grid_item, + LogicalOffset offset, + LogicalSize size) { + const auto& item_style = grid_item.node.Style(); + NGConstraintSpaceBuilder builder( + ConstraintSpace(), item_style.GetWritingMode(), /* is_new_fc */ true); + SetOrthogonalFallbackInlineSizeIfNeeded(Style(), grid_item.node, &builder); + builder.SetIsPaintedAtomically(true); + builder.SetAvailableSize(size); + builder.SetPercentageResolutionSize(size); + builder.SetTextDirection(item_style.Direction()); + builder.SetIsShrinkToFit(item_style.LogicalWidth().IsAuto()); + NGConstraintSpace constraint_space = builder.ToConstraintSpace(); + scoped_refptr<const NGLayoutResult> result = + grid_item.node.Layout(constraint_space); + container_builder_.AddChild( + result->PhysicalFragment(), + {offset.inline_offset + grid_item.margins.inline_start, + offset.block_offset + grid_item.margins.block_start}); } LayoutUnit NGGridLayoutAlgorithm::GridGap(
diff --git a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.h b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.h index 1e565d1b5..92fc12fc 100644 --- a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.h +++ b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.h
@@ -93,7 +93,7 @@ : public std::iterator<std::input_iterator_tag, GridItemData> { public: Iterator(Vector<wtf_size_t>::const_iterator current_index, - Vector<GridItemData>* items); + Vector<GridItemData>* grid_items); bool operator!=(const Iterator& other) const; GridItemData* operator->(); @@ -102,17 +102,17 @@ private: Vector<wtf_size_t>::const_iterator current_index_; - Vector<GridItemData>* items_; + Vector<GridItemData>* grid_items_; }; ReorderedGridItems(const Vector<wtf_size_t>& reordered_item_indices, - Vector<GridItemData>& items); + Vector<GridItemData>& grid_items); Iterator begin(); Iterator end(); private: const Vector<wtf_size_t>& reordered_item_indices_; - Vector<GridItemData>& items_; + Vector<GridItemData>& grid_items_; }; ReorderedGridItems GetReorderedGridItems(); @@ -174,6 +174,12 @@ // Lays out and computes inline and block offsets for grid items. void PlaceGridItems(); + + // Lays out |grid_item| based on the offsets and sizes provided. + void PlaceGridItem(const GridItemData& grid_item, + LogicalOffset offset, + LogicalSize size); + // Gets the row or column gap of the grid. LayoutUnit GridGap(GridTrackSizingDirection track_direction); @@ -183,7 +189,8 @@ LogicalSize border_box_size_; LogicalSize child_percentage_size_; - Vector<GridItemData> items_; + Vector<GridItemData> grid_items_; + Vector<GridItemData> out_of_flow_items_; Vector<wtf_size_t> reordered_item_indices_; NGGridBlockTrackCollection block_column_track_collection_;
diff --git a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm_test.cc b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm_test.cc index f15bf40..28ad9eb 100644 --- a/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm_test.cc +++ b/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm_test.cc
@@ -44,13 +44,13 @@ // Helper methods to access private data on NGGridLayoutAlgorithm. This class // is a friend of NGGridLayoutAlgorithm but the individual tests are not. wtf_size_t GridItemCount(const NGGridLayoutAlgorithm& algorithm) { - return algorithm.items_.size(); + return algorithm.grid_items_.size(); } Vector<LayoutUnit> GridItemInlineSizes( const NGGridLayoutAlgorithm& algorithm) { Vector<LayoutUnit> results; - for (const auto& item : algorithm.items_) { + for (const auto& item : algorithm.grid_items_) { results.push_back(item.inline_size); } return results; @@ -59,7 +59,7 @@ Vector<LayoutUnit> GridItemInlineMarginSum( const NGGridLayoutAlgorithm& algorithm) { Vector<LayoutUnit> results; - for (const auto& item : algorithm.items_) { + for (const auto& item : algorithm.grid_items_) { results.push_back(item.margins.InlineSum()); } return results; @@ -68,7 +68,7 @@ Vector<MinMaxSizes> GridItemMinMaxSizes( const NGGridLayoutAlgorithm& algorithm) { Vector<MinMaxSizes> results; - for (const auto& item : algorithm.items_) { + for (const auto& item : algorithm.grid_items_) { results.push_back(item.min_max_sizes); } return results; @@ -76,7 +76,7 @@ Vector<GridArea> GridItemGridAreas(const NGGridLayoutAlgorithm& algorithm) { Vector<GridArea> results; - for (const auto& item : algorithm.items_) { + for (const auto& item : algorithm.grid_items_) { results.push_back(item.resolved_position); } return results; @@ -91,8 +91,8 @@ Vector<wtf_size_t> GridItemsSpanningIntrinsicTrack( const NGGridLayoutAlgorithm& algorithm) { Vector<wtf_size_t> results; - for (wtf_size_t i = 0; i < algorithm.items_.size(); ++i) { - if (algorithm.items_[i].is_spanning_intrinsic_track) + for (wtf_size_t i = 0; i < algorithm.grid_items_.size(); ++i) { + if (algorithm.grid_items_[i].is_spanning_intrinsic_track) results.push_back(i); } return results; @@ -101,8 +101,8 @@ Vector<wtf_size_t> GridItemsSpanningFlexTrack( const NGGridLayoutAlgorithm& algorithm) { Vector<wtf_size_t> results; - for (wtf_size_t i = 0; i < algorithm.items_.size(); ++i) { - if (algorithm.items_[i].is_spanning_flex_track) + for (wtf_size_t i = 0; i < algorithm.grid_items_.size(); ++i) { + if (algorithm.grid_items_[i].is_spanning_flex_track) results.push_back(i); } return results; @@ -986,34 +986,36 @@ algorithm.Layout(); DetermineGridItemsSpanningIntrinsicOrFlexTracks(algorithm, kForColumns); - Vector<wtf_size_t> expected_items_spanning_intrinsic_track = {0, 1, 3}; - Vector<wtf_size_t> expected_items_spanning_flex_track = {1}; + Vector<wtf_size_t> expected_grid_items_spanning_intrinsic_track = {0, 1, 3}; + Vector<wtf_size_t> expected_grid_items_spanning_flex_track = {1}; Vector<wtf_size_t> actual_items = GridItemsSpanningIntrinsicTrack(algorithm); - EXPECT_EQ(expected_items_spanning_intrinsic_track.size(), + EXPECT_EQ(expected_grid_items_spanning_intrinsic_track.size(), actual_items.size()); for (wtf_size_t i = 0; i < actual_items.size(); ++i) - EXPECT_EQ(expected_items_spanning_intrinsic_track[i], actual_items[i]); + EXPECT_EQ(expected_grid_items_spanning_intrinsic_track[i], actual_items[i]); actual_items = GridItemsSpanningFlexTrack(algorithm); - EXPECT_EQ(expected_items_spanning_flex_track.size(), actual_items.size()); + EXPECT_EQ(expected_grid_items_spanning_flex_track.size(), + actual_items.size()); for (wtf_size_t i = 0; i < actual_items.size(); ++i) - EXPECT_EQ(expected_items_spanning_flex_track[i], actual_items[i]); + EXPECT_EQ(expected_grid_items_spanning_flex_track[i], actual_items[i]); DetermineGridItemsSpanningIntrinsicOrFlexTracks(algorithm, kForRows); - expected_items_spanning_intrinsic_track = {1, 2, 3}; - expected_items_spanning_flex_track = {2}; + expected_grid_items_spanning_intrinsic_track = {1, 2, 3}; + expected_grid_items_spanning_flex_track = {2}; actual_items = GridItemsSpanningIntrinsicTrack(algorithm); - EXPECT_EQ(expected_items_spanning_intrinsic_track.size(), + EXPECT_EQ(expected_grid_items_spanning_intrinsic_track.size(), actual_items.size()); for (wtf_size_t i = 0; i < actual_items.size(); ++i) - EXPECT_EQ(expected_items_spanning_intrinsic_track[i], actual_items[i]); + EXPECT_EQ(expected_grid_items_spanning_intrinsic_track[i], actual_items[i]); actual_items = GridItemsSpanningFlexTrack(algorithm); - EXPECT_EQ(expected_items_spanning_flex_track.size(), actual_items.size()); + EXPECT_EQ(expected_grid_items_spanning_flex_track.size(), + actual_items.size()); for (wtf_size_t i = 0; i < actual_items.size(); ++i) - EXPECT_EQ(expected_items_spanning_flex_track[i], actual_items[i]); + EXPECT_EQ(expected_grid_items_spanning_flex_track[i], actual_items[i]); } TEST_F(NGGridLayoutAlgorithmTest, FixedSizePositioning) { @@ -1128,6 +1130,83 @@ EXPECT_EQ(expectation, dump); } +TEST_F(NGGridLayoutAlgorithmTest, SpecifiedPositionsOutOfOrder) { + if (!RuntimeEnabledFeatures::LayoutNGGridEnabled()) + return; + + LoadAhem(); + SetBodyInnerHTML(R"HTML( + <style> + body { + font: 10px/1 Ahem; + } + + #grid { + display: grid; + width: 400px; + height: 400px; + grid-template-columns: 100px 100px; + grid-template-rows: 100px 100px; + } + + .grid_item1 { + display: block; + width: 100px; + height: 100px; + grid-row: 2; + grid-column: 2; + } + + .grid_item2 { + display: block; + width: 90px; + height: 90px; + grid-row: 1; + grid-column: 1; + } + + .grid_item3 { + display: block; + width: 80px; + height: 80px; + grid-row: 1; + grid-column: 2; + } + + .grid_item4 { + display: block; + width: 70px; + height: 70px; + grid-row: 2; + grid-column: 1; + } + </style> + <div id="wrapper"> + <div id="grid"> + <div class="grid_item1">1</div> + <div class="grid_item2">2</div> + <div class="grid_item3">3</div> + <div class="grid_item4">4</div> + </div> + </div> + )HTML"); + String dump = DumpFragmentTree(GetElementById("wrapper")); + + String expectation = R"DUMP(.:: LayoutNG Physical Fragment Tree ::. + offset:unplaced size:1000x400 + offset:0,0 size:400x400 + offset:100,100 size:100x100 + offset:0,0 size:10x10 + offset:0,0 size:90x90 + offset:0,0 size:10x10 + offset:100,0 size:80x80 + offset:0,0 size:10x10 + offset:0,100 size:70x70 + offset:0,0 size:10x10 +)DUMP"; + EXPECT_EQ(expectation, dump); +} + TEST_F(NGGridLayoutAlgorithmTest, GridWithGap) { if (!RuntimeEnabledFeatures::LayoutNGGridEnabled()) return; @@ -1295,4 +1374,142 @@ EXPECT_EQ(expectation, dump); } +TEST_F(NGGridLayoutAlgorithmTest, ItemsSizeWithGap) { + if (!RuntimeEnabledFeatures::LayoutNGGridEnabled()) + return; + + LoadAhem(); + SetBodyInnerHTML(R"HTML( + <style> + body { + font: 10px/1 Ahem; + } + + #grid { + display: grid; + width: 340px; + height: 100px; + grid-template-columns: 100px 100px 100px; + grid-template-rows: 100px; + column-gap: 20px; + } + + .grid_item { + width: 100%; + height: 100%; + } + + #cell1 { + grid-row: 1 / 2; + grid-column: 1 / 2; + } + + #cell2 { + grid-row: 1 / 2; + grid-column: 2 / 3; + } + + #cell3 { + grid-row: 1 / 2; + grid-column: 3 / 4; + } + + </style> + <div id="wrapper"> + <div id="grid"> + <div class="grid_item" id="cell1" style="background: orange;">1</div> + <div class="grid_item" id="cell2" style="background: green;">3</div> + <div class="grid_item" id="cell3" style="background: blueviolet;">5</div> + </div> + </div> + )HTML"); + String dump = DumpFragmentTree(GetElementById("wrapper")); + + String expectation = R"DUMP(.:: LayoutNG Physical Fragment Tree ::. + offset:unplaced size:1000x100 + offset:0,0 size:340x100 + offset:0,0 size:100x100 + offset:0,0 size:10x10 + offset:120,0 size:100x100 + offset:0,0 size:10x10 + offset:240,0 size:100x100 + offset:0,0 size:10x10 +)DUMP"; + EXPECT_EQ(expectation, dump); +} + +TEST_F(NGGridLayoutAlgorithmTest, OutOfFlowGridItems) { + if (!RuntimeEnabledFeatures::LayoutNGGridEnabled()) + return; + + LoadAhem(); + SetBodyInnerHTML(R"HTML( + <style> + body { + font: 10px/1 Ahem; + } + + #grid { + display: grid; + width: 100px; + height: 300px; + grid-auto-columns: 100px; + grid-auto-rows: 100px; + position: relative; + } + + .grid_item { + width: 100px; + height: 100px; + background-color: gray; + } + + #cell2 { + position: absolute; + left: 25%; + top: 10%; + width: 100px; + height: 100px; + background-color: blue; + } + + #cell4 { + position: absolute; + top: 150px; + left: 25px; + width: 100%; + height: 35%; + background-color: yellow; + } + + </style> + <div id="wrapper"> + <div id="grid"> + <div class="grid_item" style="background: orange;">1</div> + <div id="cell2">2</div> + <div class="grid_item" style="background: green;">3</div> + <div id="cell4">4</div> + <div class="grid_item" style="background: blueviolet;">5</div> + </div> + </div> + )HTML"); + String dump = DumpFragmentTree(GetElementById("wrapper")); + + String expectation = R"DUMP(.:: LayoutNG Physical Fragment Tree ::. + offset:unplaced size:1000x300 + offset:0,0 size:100x300 + offset:0,0 size:100x100 + offset:0,0 size:10x10 + offset:0,100 size:100x100 + offset:0,0 size:10x10 + offset:0,200 size:100x100 + offset:0,0 size:10x10 + offset:25,30 size:100x100 + offset:0,0 size:10x10 + offset:25,150 size:100x105 + offset:0,0 size:10x10 +)DUMP"; + EXPECT_EQ(expectation, dump); +} + } // namespace blink
diff --git a/third_party/blink/renderer/modules/cache_storage/cache.cc b/third_party/blink/renderer/modules/cache_storage/cache.cc index 5c8db687..4e88e3e 100644 --- a/third_party/blink/renderer/modules/cache_storage/cache.cc +++ b/third_party/blink/renderer/modules/cache_storage/cache.cc
@@ -234,19 +234,23 @@ void FailedResponse() { ScriptState* state = resolver_->GetScriptState(); - ScriptState::Scope scope(state); - resolver_->Reject(V8ThrowDOMException::CreateOrEmpty( - state->GetIsolate(), DOMExceptionCode::kNetworkError, - method_name_ + " encountered a network error")); + if (state->ContextIsValid()) { + ScriptState::Scope scope(state); + resolver_->Reject(V8ThrowDOMException::CreateOrEmpty( + state->GetIsolate(), DOMExceptionCode::kNetworkError, + method_name_ + " encountered a network error")); + } Stop(); } void AbortedResponse() { ScriptState* state = resolver_->GetScriptState(); - ScriptState::Scope scope(state); - resolver_->Reject(V8ThrowDOMException::CreateOrEmpty( - state->GetIsolate(), DOMExceptionCode::kAbortError, - method_name_ + " was aborted")); + if (state->ContextIsValid()) { + ScriptState::Scope scope(state); + resolver_->Reject(V8ThrowDOMException::CreateOrEmpty( + state->GetIsolate(), DOMExceptionCode::kAbortError, + method_name_ + " was aborted")); + } Stop(); } @@ -467,6 +471,8 @@ return; completed_ = true; ScriptState* state = resolver_->GetScriptState(); + if (!state->ContextIsValid()) + return; ScriptState::Scope scope(state); resolver_->Reject( V8ThrowException::CreateTypeError(state->GetIsolate(), error_message)); @@ -477,6 +483,8 @@ return; completed_ = true; ScriptState* state = resolver_->GetScriptState(); + if (!state->ContextIsValid()) + return; ScriptState::Scope scope(state); resolver_->Reject(V8ThrowDOMException::CreateOrEmpty( state->GetIsolate(), DOMExceptionCode::kAbortError,
diff --git a/third_party/blink/renderer/modules/credentialmanager/credentials_container.cc b/third_party/blink/renderer/modules/credentialmanager/credentials_container.cc index 69f49a7..0dc5d827 100644 --- a/third_party/blink/renderer/modules/credentialmanager/credentials_container.cc +++ b/third_party/blink/renderer/modules/credentialmanager/credentials_container.cc
@@ -8,6 +8,7 @@ #include <utility> #include "base/metrics/histogram_macros.h" +#include "base/rand_util.h" #include "build/build_config.h" #include "third_party/blink/public/common/sms/webotp_service_outcome.h" #include "third_party/blink/public/mojom/credentialmanager/credential_manager.mojom-blink.h" @@ -61,6 +62,7 @@ #include "third_party/blink/renderer/platform/weborigin/origin_access_entry.h" #include "third_party/blink/renderer/platform/weborigin/security_origin.h" #include "third_party/blink/renderer/platform/wtf/functional.h" +#include "third_party/blink/renderer/platform/wtf/wtf_size_t.h" #if defined(OS_ANDROID) #include "third_party/blink/renderer/bindings/modules/v8/v8_public_key_credential_rp_entity.h" @@ -750,15 +752,10 @@ mojo_options->user = mojom::blink::PublicKeyCredentialUserEntity::New(); mojo_options->user->name = options->instrument()->displayName(); - // There isn't explicity a WebAuthn 'user ID', so just convert the - // instrument display name into a byte array and use that. - const uint8_t* display_name_bytes = - static_cast<const uint8_t*>(options->instrument()->displayName().Bytes()); - mojo_options->user->id = Vector<uint8_t>(); - mojo_options->user->id.AppendRange( - display_name_bytes, - display_name_bytes + - options->instrument()->displayName().CharactersSizeInBytes()); + static constexpr wtf_size_t kRandomUserIdSize = 32; + mojo_options->user->id = Vector<uint8_t>(kRandomUserIdSize); + base::RandBytes(mojo_options->user->id.data(), kRandomUserIdSize); + mojo_options->user->display_name = options->instrument()->displayName(); mojo_options->user->icon = KURL(options->instrument()->icon());
diff --git a/third_party/blink/renderer/platform/animation/animation_translation_util.cc b/third_party/blink/renderer/platform/animation/animation_translation_util.cc index a69db37..d3d4954 100644 --- a/third_party/blink/renderer/platform/animation/animation_translation_util.cc +++ b/third_party/blink/renderer/platform/animation/animation_translation_util.cc
@@ -25,6 +25,7 @@ #include "third_party/blink/renderer/platform/animation/animation_translation_util.h" #include "third_party/blink/renderer/platform/animation/compositor_transform_operations.h" +#include "third_party/blink/renderer/platform/runtime_enabled_features.h" #include "third_party/blink/renderer/platform/transforms/interpolated_transform_operation.h" #include "third_party/blink/renderer/platform/transforms/matrix_3d_transform_operation.h" #include "third_party/blink/renderer/platform/transforms/matrix_transform_operation.h" @@ -40,7 +41,8 @@ void ToCompositorTransformOperations( const TransformOperations& transform_operations, - CompositorTransformOperations* out_transform_operations) { + CompositorTransformOperations* out_transform_operations, + const FloatSize& box_size) { // We need to do a deep copy the transformOperations may contain ref pointers // to TransformOperation objects. for (const auto& operation : transform_operations.Operations()) { @@ -63,9 +65,10 @@ case TransformOperation::kTranslate: { auto* transform = static_cast<const TranslateTransformOperation*>(operation.get()); - DCHECK(transform->X().IsFixed() && transform->Y().IsFixed()); + if (!RuntimeEnabledFeatures::CompositeRelativeKeyframesEnabled()) + DCHECK(transform->X().IsFixed() && transform->Y().IsFixed()); out_transform_operations->AppendTranslate( - transform->X().Value(), transform->Y().Value(), transform->Z()); + transform->X(box_size), transform->Y(box_size), transform->Z()); break; } case TransformOperation::kRotateX: @@ -78,8 +81,18 @@ transform->X(), transform->Y(), transform->Z(), transform->Angle()); break; } - case TransformOperation::kSkewX: - case TransformOperation::kSkewY: + case TransformOperation::kSkewX: { + auto* transform = + static_cast<const SkewTransformOperation*>(operation.get()); + out_transform_operations->AppendSkewX(transform->AngleX()); + break; + } + case TransformOperation::kSkewY: { + auto* transform = + static_cast<const SkewTransformOperation*>(operation.get()); + out_transform_operations->AppendSkewY(transform->AngleY()); + break; + } case TransformOperation::kSkew: { auto* transform = static_cast<const SkewTransformOperation*>(operation.get()); @@ -112,7 +125,7 @@ case TransformOperation::kRotateAroundOrigin: case TransformOperation::kInterpolated: { TransformationMatrix m; - operation->Apply(m, FloatSize()); + operation->Apply(m, box_size); out_transform_operations->AppendMatrix( TransformationMatrix::ToSkMatrix44(m)); break;
diff --git a/third_party/blink/renderer/platform/animation/animation_translation_util.h b/third_party/blink/renderer/platform/animation/animation_translation_util.h index cd8affc..620b5dd 100644 --- a/third_party/blink/renderer/platform/animation/animation_translation_util.h +++ b/third_party/blink/renderer/platform/animation/animation_translation_util.h
@@ -37,10 +37,12 @@ class CompositorTransformOperations; class TransformOperations; +class FloatSize; PLATFORM_EXPORT void ToCompositorTransformOperations( const TransformOperations& in_operations, - CompositorTransformOperations* out_operations); + CompositorTransformOperations* out_operations, + const FloatSize& box_size); } // namespace blink
diff --git a/third_party/blink/renderer/platform/animation/animation_translation_util_test.cc b/third_party/blink/renderer/platform/animation/animation_translation_util_test.cc index e01115c..d383ab0 100644 --- a/third_party/blink/renderer/platform/animation/animation_translation_util_test.cc +++ b/third_party/blink/renderer/platform/animation/animation_translation_util_test.cc
@@ -25,8 +25,10 @@ #include "third_party/blink/renderer/platform/animation/animation_translation_util.h" #include <memory> +#include "cc/test/geometry_test_utils.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/renderer/platform/animation/compositor_transform_operations.h" +#include "third_party/blink/renderer/platform/testing/runtime_enabled_features_test_helpers.h" #include "third_party/blink/renderer/platform/transforms/matrix_3d_transform_operation.h" #include "third_party/blink/renderer/platform/transforms/rotate_transform_operation.h" #include "third_party/blink/renderer/platform/transforms/scale_transform_operation.h" @@ -45,7 +47,7 @@ 0.1, 0.2, 0.3, 200000.4, TransformOperation::kRotate3D)); ops.Operations().push_back(ScaleTransformOperation::Create( 50.2, 100, -4, TransformOperation::kScale3D)); - ToCompositorTransformOperations(ops, &out_ops); + ToCompositorTransformOperations(ops, &out_ops, FloatSize()); EXPECT_EQ(3UL, out_ops.AsCcTransformOperations().size()); const float kErr = 0.0001; @@ -70,4 +72,46 @@ EXPECT_NEAR(op2.scale.z, -4.0f, kErr); } +TEST(AnimationTranslationUtilTest, RelativeTranslate) { + ScopedCompositeRelativeKeyframesForTest relative_keyframes(true); + + TransformOperations ops; + ops.Operations().push_back(TranslateTransformOperation::Create( + Length::Percent(50), Length::Percent(50), + TransformOperation::kTranslate)); + + CompositorTransformOperations out_ops; + ToCompositorTransformOperations(ops, &out_ops, FloatSize(200, 100)); + ASSERT_EQ(out_ops.AsCcTransformOperations().size(), 1u); + + auto& op0 = out_ops.AsCcTransformOperations().at(0); + EXPECT_EQ(cc::TransformOperation::TRANSFORM_OPERATION_TRANSLATE, op0.type); + EXPECT_EQ(op0.translate.x, 100.0f); + EXPECT_EQ(op0.translate.y, 50.0f); + EXPECT_EQ(op0.translate.z, 0.0f); +} + +TEST(AnimationTranslationUtilTest, RelativeInterpolated) { + ScopedCompositeRelativeKeyframesForTest relative_keyframes(true); + + TransformOperations ops_a, ops_b; + ops_a.Operations().push_back(TranslateTransformOperation::Create( + Length::Percent(50), Length::Fixed(0), TransformOperation::kTranslate)); + ops_b.Operations().push_back( + RotateTransformOperation::Create(3600, TransformOperation::kRotate)); + + TransformOperations ops_c = ops_b.Blend(ops_a, 0.5); + + CompositorTransformOperations out_ops; + ToCompositorTransformOperations(ops_c, &out_ops, FloatSize(100, 100)); + ASSERT_EQ(out_ops.AsCcTransformOperations().size(), 1u); + + auto& op0 = out_ops.AsCcTransformOperations().at(0); + cc::TransformOperations ops_expected; + ops_expected.AppendTranslate(25, 0, 0); + EXPECT_EQ(cc::TransformOperation::TRANSFORM_OPERATION_MATRIX, op0.type); + cc::ExpectTransformationMatrixNear(op0.matrix, ops_expected.at(0).matrix, + 1e-6f); +} + } // namespace blink
diff --git a/third_party/blink/renderer/platform/animation/compositor_transform_operations.cc b/third_party/blink/renderer/platform/animation/compositor_transform_operations.cc index 16617e6..fdbf638 100644 --- a/third_party/blink/renderer/platform/animation/compositor_transform_operations.cc +++ b/third_party/blink/renderer/platform/animation/compositor_transform_operations.cc
@@ -4,6 +4,7 @@ #include "third_party/blink/renderer/platform/animation/compositor_transform_operations.h" +#include "cc/animation/transform_operation.h" #include "third_party/skia/include/core/SkMatrix44.h" #include "ui/gfx/transform.h" @@ -45,6 +46,14 @@ SkDoubleToScalar(z)); } +void CompositorTransformOperations::AppendSkewX(double x) { + transform_operations_.AppendSkewX(SkDoubleToScalar(x)); +} + +void CompositorTransformOperations::AppendSkewY(double y) { + transform_operations_.AppendSkewY(SkDoubleToScalar(y)); +} + void CompositorTransformOperations::AppendSkew(double x, double y) { transform_operations_.AppendSkew(SkDoubleToScalar(x), SkDoubleToScalar(y)); }
diff --git a/third_party/blink/renderer/platform/animation/compositor_transform_operations.h b/third_party/blink/renderer/platform/animation/compositor_transform_operations.h index 27e6c75..5c6daa4 100644 --- a/third_party/blink/renderer/platform/animation/compositor_transform_operations.h +++ b/third_party/blink/renderer/platform/animation/compositor_transform_operations.h
@@ -28,6 +28,8 @@ void AppendTranslate(double x, double y, double z); void AppendRotate(double x, double y, double z, double degrees); void AppendScale(double x, double y, double z); + void AppendSkewX(double x); + void AppendSkewY(double y); void AppendSkew(double x, double y); void AppendPerspective(double depth); void AppendMatrix(const SkMatrix44&);
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 index 42977c0..60b84fd 100644 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -345,6 +345,9 @@ status: {"Android": "stable"}, }, { + name: "CompositeRelativeKeyframes", + }, + { name: "CompositeSVG", status: "experimental", },
diff --git a/third_party/blink/renderer/platform/widget/input/compositor_thread_event_queue.cc b/third_party/blink/renderer/platform/widget/input/compositor_thread_event_queue.cc index b3ea652..638b035 100644 --- a/third_party/blink/renderer/platform/widget/input/compositor_thread_event_queue.cc +++ b/third_party/blink/renderer/platform/widget/input/compositor_thread_event_queue.cc
@@ -5,6 +5,7 @@ #include "third_party/blink/renderer/platform/widget/input/compositor_thread_event_queue.h" #include "base/trace_event/trace_event.h" +#include "cc/metrics/event_metrics.h" namespace blink { @@ -73,10 +74,7 @@ // We have only scrolls or pinches at this point (all other events are // filtered out by the if statements above). We want to coalesce this event // into the previous event(s) and represent it as a scroll and then a pinch. - DCHECK(ToWebGestureEvent(new_event->event()).GetType() == - WebInputEvent::Type::kGestureScrollUpdate || - ToWebGestureEvent(new_event->event()).GetType() == - WebInputEvent::Type::kGesturePinchUpdate); + DCHECK(IsContinuousGestureEvent(new_event->event().GetType())); // If there is only one event in the queue we will still emit two events // (scroll and pinch) but the |new_event| will still be coalesced into the @@ -94,10 +92,7 @@ std::unique_ptr<EventWithCallback> last_event = std::move(queue_.back()); queue_.pop_back(); - DCHECK(last_event->event().GetType() == - WebInputEvent::Type::kGestureScrollUpdate || - last_event->event().GetType() == - WebInputEvent::Type::kGesturePinchUpdate); + DCHECK(IsContinuousGestureEvent(last_event->event().GetType())); DCHECK_LE(last_event->latency_info().trace_id(), new_event->latency_info().trace_id()); @@ -146,7 +141,7 @@ ui::LatencyInfo pinch_latency; EventWithCallback::OriginalEventList pinch_original_events; DCHECK(oldest_pinch_trace_id == -1 || oldest_scroll_trace_id == -1); - if (oldest_scroll_trace_id != -1 && oldest_pinch_trace_id == -1) { + if (oldest_scroll_trace_id != -1) { scroll_latency = oldest_latency; scroll_latency.set_trace_id(oldest_scroll_trace_id); scroll_original_events = std::move(combined_original_events); @@ -191,11 +186,9 @@ } std::unique_ptr<EventWithCallback> CompositorThreadEventQueue::Pop() { - std::unique_ptr<EventWithCallback> result; - if (!queue_.empty()) { - result = std::move(queue_.front()); - queue_.pop_front(); - } + DCHECK(!queue_.empty()); + std::unique_ptr<EventWithCallback> result = std::move(queue_.front()); + queue_.pop_front(); if (result->first_original_event()) { TRACE_EVENT_NESTABLE_ASYNC_END2(
diff --git a/third_party/blink/renderer/platform/widget/input/event_with_callback.cc b/third_party/blink/renderer/platform/widget/input/event_with_callback.cc index c37fe4b..6c7fe32 100644 --- a/third_party/blink/renderer/platform/widget/input/event_with_callback.cc +++ b/third_party/blink/renderer/platform/widget/input/event_with_callback.cc
@@ -6,6 +6,7 @@ #include "base/time/time.h" #include "base/trace_event/trace_event.h" +#include "cc/metrics/event_metrics.h" #include "third_party/blink/public/common/input/web_input_event_attribution.h" namespace blink { @@ -13,11 +14,13 @@ EventWithCallback::EventWithCallback( std::unique_ptr<WebCoalescedInputEvent> event, base::TimeTicks timestamp_now, - InputHandlerProxy::EventDispositionCallback callback) + InputHandlerProxy::EventDispositionCallback callback, + std::unique_ptr<cc::EventMetrics> metrics) : event_(std::make_unique<WebCoalescedInputEvent>(*event)), creation_timestamp_(timestamp_now), last_coalesced_timestamp_(timestamp_now) { - original_events_.emplace_back(std::move(event), std::move(callback)); + original_events_.emplace_back(std::move(event), std::move(metrics), + std::move(callback)); } EventWithCallback::EventWithCallback( @@ -26,10 +29,9 @@ base::TimeTicks last_coalesced_timestamp, OriginalEventList original_events) : event_(std::move(event)), + original_events_(std::move(original_events)), creation_timestamp_(creation_timestamp), - last_coalesced_timestamp_(last_coalesced_timestamp) { - original_events_.splice(original_events_.end(), original_events); -} + last_coalesced_timestamp_(last_coalesced_timestamp) {} EventWithCallback::~EventWithCallback() {} @@ -73,14 +75,15 @@ return; // Ack the oldest event with original latency. - original_events_.front().event_->latency_info() = latency; - std::move(original_events_.front().callback_) - .Run(disposition, std::move(original_events_.front().event_), + auto& oldest_event = original_events_.front(); + oldest_event.event_->latency_info() = latency; + std::move(oldest_event.callback_) + .Run(disposition, std::move(oldest_event.event_), did_overscroll_params ? std::make_unique<InputHandlerProxy::DidOverscrollParams>( *did_overscroll_params) : nullptr, - attribution); + attribution, std::move(oldest_event.metrics_)); original_events_.pop_front(); // If the event was handled on compositor thread, ack other events with @@ -104,15 +107,19 @@ ? std::make_unique<InputHandlerProxy::DidOverscrollParams>( *did_overscroll_params) : nullptr, - attribution); + attribution, std::move(coalesced_event.metrics_)); } } EventWithCallback::OriginalEventWithCallback::OriginalEventWithCallback( std::unique_ptr<WebCoalescedInputEvent> event, + std::unique_ptr<cc::EventMetrics> metrics, InputHandlerProxy::EventDispositionCallback callback) - : event_(std::move(event)), callback_(std::move(callback)) {} + : event_(std::move(event)), + metrics_(std::move(metrics)), + callback_(std::move(callback)) {} -EventWithCallback::OriginalEventWithCallback::~OriginalEventWithCallback() {} +EventWithCallback::OriginalEventWithCallback::~OriginalEventWithCallback() = + default; } // namespace blink
diff --git a/third_party/blink/renderer/platform/widget/input/event_with_callback.h b/third_party/blink/renderer/platform/widget/input/event_with_callback.h index d86799ee..3ca9552f 100644 --- a/third_party/blink/renderer/platform/widget/input/event_with_callback.h +++ b/third_party/blink/renderer/platform/widget/input/event_with_callback.h
@@ -12,6 +12,10 @@ #include "third_party/blink/renderer/platform/platform_export.h" #include "ui/latency/latency_info.h" +namespace cc { +class EventMetrics; +} + namespace blink { namespace test { @@ -23,16 +27,20 @@ struct PLATFORM_EXPORT OriginalEventWithCallback { OriginalEventWithCallback( std::unique_ptr<WebCoalescedInputEvent> event, + std::unique_ptr<cc::EventMetrics> metrics, InputHandlerProxy::EventDispositionCallback callback); ~OriginalEventWithCallback(); + std::unique_ptr<WebCoalescedInputEvent> event_; + std::unique_ptr<cc::EventMetrics> metrics_; InputHandlerProxy::EventDispositionCallback callback_; }; using OriginalEventList = std::list<OriginalEventWithCallback>; EventWithCallback(std::unique_ptr<WebCoalescedInputEvent> event, base::TimeTicks timestamp_now, - InputHandlerProxy::EventDispositionCallback callback); + InputHandlerProxy::EventDispositionCallback callback, + std::unique_ptr<cc::EventMetrics> metrics); EventWithCallback(std::unique_ptr<WebCoalescedInputEvent> event, base::TimeTicks creation_timestamp, base::TimeTicks last_coalesced_timestamp, @@ -69,6 +77,11 @@ } void SetScrollbarManipulationHandledOnCompositorThread(); + const cc::EventMetrics* metrics() const { + return original_events_.empty() ? nullptr + : original_events_.front().metrics_.get(); + } + private: friend class test::InputHandlerProxyEventQueueTest;
diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_proxy.cc b/third_party/blink/renderer/platform/widget/input/input_handler_proxy.cc index 31247e89..884c365 100644 --- a/third_party/blink/renderer/platform/widget/input/input_handler_proxy.cc +++ b/third_party/blink/renderer/platform/widget/input/input_handler_proxy.cc
@@ -10,6 +10,7 @@ #include "base/auto_reset.h" #include "base/bind.h" +#include "base/bind_helpers.h" #include "base/check_op.h" #include "base/command_line.h" #include "base/location.h" @@ -262,6 +263,7 @@ void InputHandlerProxy::HandleInputEventWithLatencyInfo( std::unique_ptr<blink::WebCoalescedInputEvent> event, + std::unique_ptr<cc::EventMetrics> metrics, EventDispositionCallback callback) { DCHECK(input_handler_); @@ -278,9 +280,9 @@ trace_id); }); - std::unique_ptr<EventWithCallback> event_with_callback = - std::make_unique<EventWithCallback>( - std::move(event), tick_clock_->NowTicks(), std::move(callback)); + auto event_with_callback = std::make_unique<EventWithCallback>( + std::move(event), tick_clock_->NowTicks(), std::move(callback), + std::move(metrics)); enum { NO_SCROLL_PINCH = 0, @@ -375,6 +377,7 @@ void InputHandlerProxy::ContinueScrollBeginAfterMainThreadHitTest( std::unique_ptr<blink::WebCoalescedInputEvent> event, + std::unique_ptr<cc::EventMetrics> metrics, EventDispositionCallback callback, cc::ElementIdType hit_test_result) { DCHECK(base::FeatureList::IsEnabled(::features::kScrollUnification)); @@ -399,9 +402,9 @@ hit_test_result; gesture_event->data.scroll_begin.main_thread_hit_tested = true; - std::unique_ptr<EventWithCallback> event_with_callback = - std::make_unique<EventWithCallback>( - std::move(event), tick_clock_->NowTicks(), std::move(callback)); + auto event_with_callback = std::make_unique<EventWithCallback>( + std::move(event), tick_clock_->NowTicks(), std::move(callback), + std::move(metrics)); DispatchSingleInputEvent(std::move(event_with_callback), tick_clock_->NowTicks()); @@ -420,7 +423,8 @@ WebInputEventAttribution attribution = PerformEventAttribution(event->Event()); std::move(callback).Run(DROP_EVENT, std::move(event), - /*overscroll_params=*/nullptr, attribution); + /*overscroll_params=*/nullptr, attribution, + std::move(metrics)); } // We blocked the compositor gesture event queue while the hit test was @@ -436,32 +440,18 @@ std::unique_ptr<cc::SwapPromiseMonitor> latency_info_swap_promise_monitor = input_handler_->CreateLatencyInfoSwapPromiseMonitor( &monitored_latency_info); - base::Optional<cc::EventMetrics::ScrollUpdateType> scroll_update_type; - if (event_with_callback->event().GetType() == - WebInputEvent::Type::kGestureScrollUpdate) { - // TODO(crbug.com/1079116): For now, we use data from `LatencyInfo` to - // determine whether a scroll-update is the first one in a sequence or not. - // This should be determined independent of `LatencyInfo`. - if (event_with_callback->latency_info().FindLatency( - ui::INPUT_EVENT_LATENCY_FIRST_SCROLL_UPDATE_ORIGINAL_COMPONENT, - nullptr)) { - scroll_update_type = cc::EventMetrics::ScrollUpdateType::kStarted; - } else { - scroll_update_type = cc::EventMetrics::ScrollUpdateType::kContinued; - } - } - auto scoped_event_metrics_monitor = - input_handler_->GetScopedEventMetricsMonitor(cc::EventMetrics::Create( - event_with_callback->event().GetTypeAsUiEventType(), - scroll_update_type, event_with_callback->event().TimeStamp(), - event_with_callback->event().GetScrollInputType())); current_overscroll_params_.reset(); WebInputEventAttribution attribution = PerformEventAttribution(event_with_callback->event()); - InputHandlerProxy::EventDisposition disposition = - RouteToTypeSpecificHandler(event_with_callback.get(), attribution); + InputHandlerProxy::EventDisposition disposition; + { + auto scoped_event_monitor = input_handler_->GetScopedEventMetricsMonitor( + event_with_callback->metrics()); + disposition = + RouteToTypeSpecificHandler(event_with_callback.get(), attribution); + } const WebInputEvent& event = event_with_callback->event(); const WebGestureEvent::Type type = event.GetType(); @@ -536,15 +526,13 @@ DispatchSingleInputEvent(compositor_event_queue_->Pop(), now); } -// This function handles creating synthetic Gesture events. It is currently used -// for creating Gesture event equivalents for mouse events on a composited -// scrollbar. (See InputHandlerProxy::HandleInputEvent) void InputHandlerProxy::InjectScrollbarGestureScroll( const WebInputEvent::Type type, const gfx::PointF& position_in_widget, const cc::InputHandlerPointerResult& pointer_result, const ui::LatencyInfo& latency_info, - const base::TimeTicks original_timestamp) { + const base::TimeTicks original_timestamp, + const cc::EventMetrics* original_metrics) { gfx::Vector2dF scroll_delta(pointer_result.scroll_offset.x(), pointer_result.scroll_offset.y()); @@ -560,9 +548,6 @@ pointer_result.target_scroller.GetStableId(); } - WebScopedInputEvent web_scoped_gesture_event( - synthetic_gesture_event.release()); - // Send in a LatencyInfo with SCROLLBAR type so that the end to end latency // is calculated specifically for scrollbars. ui::LatencyInfo scrollbar_latency_info(latency_info); @@ -576,6 +561,7 @@ DCHECK(!scrollbar_latency_info.FindLatency( ui::INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_IMPL_COMPONENT, nullptr)); + base::Optional<cc::EventMetrics::ScrollUpdateType> scroll_update_type; if (type == WebInputEvent::Type::kGestureScrollBegin) { last_injected_gesture_was_begin_ = true; } else { @@ -585,21 +571,28 @@ // gesture was a GSB, then this GSU is the first scroll update - mark // the LatencyInfo as such. scrollbar_latency_info.AddLatencyNumberWithTimestamp( - (last_injected_gesture_was_begin_) + last_injected_gesture_was_begin_ ? ui::INPUT_EVENT_LATENCY_FIRST_SCROLL_UPDATE_ORIGINAL_COMPONENT : ui::INPUT_EVENT_LATENCY_SCROLL_UPDATE_ORIGINAL_COMPONENT, original_timestamp); + scroll_update_type = last_injected_gesture_was_begin_ + ? cc::EventMetrics::ScrollUpdateType::kStarted + : cc::EventMetrics::ScrollUpdateType::kContinued; } last_injected_gesture_was_begin_ = false; } - std::unique_ptr<EventWithCallback> gesture_event_with_callback_update = - std::make_unique<EventWithCallback>( - std::make_unique<WebCoalescedInputEvent>( - std::move(web_scoped_gesture_event), scrollbar_latency_info), - original_timestamp, original_timestamp, - EventWithCallback::OriginalEventList()); + base::TimeTicks metrics_time_stamp = + original_metrics ? original_metrics->time_stamp() + : synthetic_gesture_event->TimeStamp(); + std::unique_ptr<cc::EventMetrics> metrics = cc::EventMetrics::Create( + synthetic_gesture_event->GetTypeAsUiEventType(), scroll_update_type, + metrics_time_stamp, synthetic_gesture_event->GetScrollInputType()); + auto gesture_event_with_callback_update = std::make_unique<EventWithCallback>( + std::make_unique<WebCoalescedInputEvent>( + std::move(synthetic_gesture_event), scrollbar_latency_info), + original_timestamp, base::DoNothing(), std::move(metrics)); bool needs_animate_input = compositor_event_queue_->empty(); compositor_event_queue_->Queue(std::move(gesture_event_with_callback_update), @@ -644,7 +637,8 @@ case WebInputEvent::Type::kGestureScrollUpdate: return HandleGestureScrollUpdate( - static_cast<const WebGestureEvent&>(event), original_attribution); + static_cast<const WebGestureEvent&>(event), original_attribution, + event_with_callback->metrics()); case WebInputEvent::Type::kGestureScrollEnd: return HandleGestureScrollEnd(static_cast<const WebGestureEvent&>(event)); @@ -1020,7 +1014,8 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleGestureScrollUpdate( const WebGestureEvent& gesture_event, - const WebInputEventAttribution& original_attribution) { + const WebInputEventAttribution& original_attribution, + const cc::EventMetrics* original_metrics) { TRACE_EVENT2("input", "InputHandlerProxy::HandleGestureScrollUpdate", "dx", -gesture_event.data.scroll_update.delta_x, "dy", -gesture_event.data.scroll_update.delta_y); @@ -1053,8 +1048,8 @@ TRACE_EVENT_SCOPE_THREAD); handling_gesture_on_impl_thread_ = false; currently_active_gesture_device_ = base::nullopt; - client_->GenerateScrollBeginAndSendToMainThread(gesture_event, - original_attribution); + client_->GenerateScrollBeginAndSendToMainThread( + gesture_event, original_attribution, original_metrics); // TODO(bokan): |!gesture_pinch_in_progress_| was put here by // https://crrev.com/2720903005 but it's not clear to me how this is @@ -1541,7 +1536,8 @@ InjectScrollbarGestureScroll(WebInputEvent::Type::kGestureScrollBegin, position, pointer_result, event_with_callback->latency_info(), - event_with_callback->event().TimeStamp()); + event_with_callback->event().TimeStamp(), + event_with_callback->metrics()); // Don't need to inject GSU if the scroll offset is zero (this can // be the case where mouse down occurs on the thumb). @@ -1549,7 +1545,8 @@ InjectScrollbarGestureScroll(WebInputEvent::Type::kGestureScrollUpdate, position, pointer_result, event_with_callback->latency_info(), - event_with_callback->event().TimeStamp()); + event_with_callback->event().TimeStamp(), + event_with_callback->metrics()); } if (event_with_callback) { @@ -1572,7 +1569,8 @@ InjectScrollbarGestureScroll(WebInputEvent::Type::kGestureScrollUpdate, position, pointer_result, event_with_callback->latency_info(), - event_with_callback->event().TimeStamp()); + event_with_callback->event().TimeStamp(), + event_with_callback->metrics()); } if (event_with_callback) { event_with_callback->SetScrollbarManipulationHandledOnCompositorThread(); @@ -1591,7 +1589,8 @@ InjectScrollbarGestureScroll(WebInputEvent::Type::kGestureScrollEnd, position, pointer_result, event_with_callback->latency_info(), - event_with_callback->event().TimeStamp()); + event_with_callback->event().TimeStamp(), + event_with_callback->metrics()); if (event_with_callback) { event_with_callback->SetScrollbarManipulationHandledOnCompositorThread(); }
diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc b/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc index d4ea33f..31fc1d9 100644 --- a/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc +++ b/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc
@@ -122,8 +122,7 @@ } std::unique_ptr<cc::EventsMetricsManager::ScopedMonitor> - GetScopedEventMetricsMonitor( - std::unique_ptr<cc::EventMetrics> event_metrics) override { + GetScopedEventMetricsMonitor(const cc::EventMetrics* event_metrics) override { return nullptr; } @@ -199,19 +198,15 @@ void WillShutdown() override {} - MOCK_METHOD1(DispatchNonBlockingEventToMainThread_, - void(const WebInputEvent&)); - - MOCK_METHOD2(GenerateScrollBeginAndSendToMainThread, + MOCK_METHOD3(GenerateScrollBeginAndSendToMainThread, void(const WebGestureEvent& update_event, - const WebInputEventAttribution&)); + const WebInputEventAttribution&, + const cc::EventMetrics*)); void DispatchNonBlockingEventToMainThread( std::unique_ptr<WebCoalescedInputEvent> event, - const WebInputEventAttribution&) override { - CHECK(event.get()); - DispatchNonBlockingEventToMainThread_(event->Event()); - } + const WebInputEventAttribution&, + std::unique_ptr<cc::EventMetrics> metrics) override {} MOCK_METHOD5(DidOverscroll, void(const gfx::Vector2dF& accumulated_overscroll, @@ -413,13 +408,14 @@ InputHandlerProxy::EventDisposition event_disposition = InputHandlerProxy::DID_NOT_HANDLE; input_handler->HandleInputEventWithLatencyInfo( - std::move(scoped_input_event), + std::move(scoped_input_event), nullptr, base::BindLambdaForTesting( [&event_disposition]( InputHandlerProxy::EventDisposition disposition, std::unique_ptr<blink::WebCoalescedInputEvent> event, std::unique_ptr<InputHandlerProxy::DidOverscrollParams> callback, - const WebInputEventAttribution& attribution) { + const WebInputEventAttribution& attribution, + std::unique_ptr<cc::EventMetrics> metrics) { event_disposition = disposition; })); return event_disposition; @@ -439,13 +435,14 @@ InputHandlerProxy::EventDisposition event_disposition = InputHandlerProxy::DID_NOT_HANDLE; input_handler->HandleInputEventWithLatencyInfo( - std::move(scoped_input_event), + std::move(scoped_input_event), nullptr, base::BindLambdaForTesting( [&event_disposition]( InputHandlerProxy::EventDisposition disposition, std::unique_ptr<blink::WebCoalescedInputEvent> event, std::unique_ptr<InputHandlerProxy::DidOverscrollParams> callback, - const WebInputEventAttribution& attribution) { + const WebInputEventAttribution& attribution, + std::unique_ptr<cc::EventMetrics> metrics) { event_disposition = disposition; })); @@ -486,6 +483,7 @@ input_handler_proxy_.HandleInputEventWithLatencyInfo( std::make_unique<WebCoalescedInputEvent>(std::move(event), ui::LatencyInfo()), + nullptr, base::BindOnce( &InputHandlerProxyEventQueueTest::DidHandleInputEventAndOverscroll, weak_ptr_factory_.GetWeakPtr())); @@ -504,7 +502,8 @@ InputHandlerProxy::EventDisposition event_disposition, std::unique_ptr<WebCoalescedInputEvent> input_event, std::unique_ptr<InputHandlerProxy::DidOverscrollParams> overscroll_params, - const WebInputEventAttribution& attribution) { + const WebInputEventAttribution& attribution, + std::unique_ptr<cc::EventMetrics> metrics) { event_disposition_recorder_.push_back(event_disposition); latency_info_recorder_.push_back(input_event->latency_info()); } @@ -1299,7 +1298,7 @@ EXPECT_CALL(mock_input_handler_, ScrollUpdate(_, _)).Times(0); EXPECT_CALL(mock_input_handler_, ScrollingShouldSwitchtoMainThread()) .WillOnce(testing::Return(true)); - EXPECT_CALL(mock_client_, GenerateScrollBeginAndSendToMainThread(_, _)); + EXPECT_CALL(mock_client_, GenerateScrollBeginAndSendToMainThread(_, _, _)); EXPECT_EQ(expected_disposition_, HandleInputEventAndFlushEventQueue(mock_input_handler_, input_handler_.get(), gesture_)); @@ -1998,7 +1997,7 @@ void DispatchEvent(std::unique_ptr<blink::WebCoalescedInputEvent> event, ReturnedDisposition* out_disposition = nullptr) { input_handler_proxy_.HandleInputEventWithLatencyInfo( - std::move(event), BindEventHandledCallback(out_disposition)); + std::move(event), nullptr, BindEventHandledCallback(out_disposition)); } void ContinueScrollBeginAfterMainThreadHitTest( @@ -2006,7 +2005,7 @@ cc::ElementIdType hit_test_result, ReturnedDisposition* out_disposition = nullptr) { input_handler_proxy_.ContinueScrollBeginAfterMainThreadHitTest( - std::move(event), BindEventHandledCallback(out_disposition), + std::move(event), nullptr, BindEventHandledCallback(out_disposition), hit_test_result); } @@ -2041,7 +2040,8 @@ EventDisposition event_disposition, std::unique_ptr<WebCoalescedInputEvent> input_event, std::unique_ptr<InputHandlerProxy::DidOverscrollParams> overscroll_params, - const WebInputEventAttribution& attribution) { + const WebInputEventAttribution& attribution, + std::unique_ptr<cc::EventMetrics> metrics) { if (out_disposition) *out_disposition = event_disposition; } @@ -4049,7 +4049,7 @@ input_handler_proxy_.HandleInputEventWithLatencyInfo( std::make_unique<WebCoalescedInputEvent>(std::move(event), ui::LatencyInfo()), - base::DoNothing()); + nullptr, base::DoNothing()); } uint64_t next_begin_frame_number_ = viz::BeginFrameArgs::kStartingFrameNumber;
diff --git a/third_party/blink/renderer/platform/widget/input/main_thread_event_queue.cc b/third_party/blink/renderer/platform/widget/input/main_thread_event_queue.cc index 48baeb3f..b40f99f8 100644 --- a/third_party/blink/renderer/platform/widget/input/main_thread_event_queue.cc +++ b/third_party/blink/renderer/platform/widget/input/main_thread_event_queue.cc
@@ -9,6 +9,7 @@ #include "base/bind.h" #include "base/containers/circular_deque.h" #include "base/metrics/histogram_macros.h" +#include "cc/metrics/event_metrics.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/input/web_coalesced_input_event.h" #include "third_party/blink/public/common/input/web_input_event_attribution.h" @@ -53,19 +54,39 @@ bool originally_cancelable, HandledEventCallback callback, bool known_by_scheduler, - const WebInputEventAttribution& attribution) + const WebInputEventAttribution& attribution, + std::unique_ptr<cc::EventMetrics> metrics) : event_(std::move(event)), originally_cancelable_(originally_cancelable), callback_(std::move(callback)), known_by_scheduler_count_(known_by_scheduler ? 1 : 0), - attribution_(attribution) {} + attribution_(attribution), + metrics_(std::move(metrics)) {} ~QueuedWebInputEvent() override {} - bool AreCoalescablePointerRawUpdateEvents(QueuedWebInputEvent* other_event) { + static std::unique_ptr<QueuedWebInputEvent> CreateForRawEvent( + std::unique_ptr<WebCoalescedInputEvent> raw_event, + const WebInputEventAttribution& attribution, + const cc::EventMetrics* original_metrics) { + DCHECK_EQ(raw_event->Event().GetType(), + WebInputEvent::Type::kPointerRawUpdate); + base::TimeTicks original_time_stamp = original_metrics + ? original_metrics->time_stamp() + : raw_event->Event().TimeStamp(); + std::unique_ptr<cc::EventMetrics> metrics = cc::EventMetrics::Create( + raw_event->Event().GetTypeAsUiEventType(), base::nullopt, + original_time_stamp, raw_event->Event().GetScrollInputType()); + return std::make_unique<QueuedWebInputEvent>( + std::move(raw_event), false, HandledEventCallback(), false, attribution, + std::move(metrics)); + } + + bool AreCoalescablePointerRawUpdateEvents( + const QueuedWebInputEvent& other_event) { // There is no pointermove at this point in the queue. DCHECK(event_->Event().GetType() != WebInputEvent::Type::kPointerMove && - other_event->event_->Event().GetType() != + other_event.event_->Event().GetType() != WebInputEvent::Type::kPointerMove); // Events with modifiers differing by kRelativeMotionEvent should not be // coalesced. In case of a pointer lock, kRelativeMotionEvent is sent @@ -74,11 +95,11 @@ // coalesced. return event_->Event().GetType() == WebInputEvent::Type::kPointerRawUpdate && - other_event->event_->Event().GetType() == + other_event.event_->Event().GetType() == WebInputEvent::Type::kPointerRawUpdate && ((event_->Event().GetModifiers() & blink::WebInputEvent::Modifiers::kRelativeMotionEvent) == - (other_event->event_->Event().GetModifiers() & + (other_event.event_->Event().GetModifiers() & blink::WebInputEvent::Modifiers::kRelativeMotionEvent)); } @@ -100,7 +121,7 @@ // Two pointerevents may not be able to coalesce but we should continue // looking further down the queue if both of them were rawupdate or move // events and only their pointer_type, id, or event_type was different. - if (AreCoalescablePointerRawUpdateEvents(other_event)) + if (AreCoalescablePointerRawUpdateEvents(*other_event)) return FilterResult::KeepIterating; return FilterResult::StopIterating; } @@ -109,9 +130,9 @@ // also save the trace_id to ensure the flow events correct show the // critical path. if (other_event->callback_) { - blocking_coalesced_callbacks_.push_back( - std::make_pair(std::move(other_event->callback_), - other_event->event_->latency_info().trace_id())); + blocking_coalesced_callbacks_.emplace_back( + std::move(other_event->callback_), + other_event->event_->latency_info().trace_id()); } known_by_scheduler_count_ += other_event->known_by_scheduler_count_; @@ -129,8 +150,8 @@ HandledEventCallback callback = base::BindOnce(&QueuedWebInputEvent::HandledEvent, base::Unretained(this), base::RetainedRef(queue)); - if (!queue->HandleEventOnMainThread(*event_, attribution(), - std::move(callback))) { + if (!queue->HandleEventOnMainThread( + *event_, attribution(), std::move(metrics_), std::move(callback))) { // The |callback| won't be run, so our stored |callback_| should run // indicating error. HandledEvent(queue, mojom::blink::InputEventResultState::kNotConsumed, @@ -173,9 +194,9 @@ } } - bool originallyCancelable() const { return originally_cancelable_; } + bool originally_cancelable() const { return originally_cancelable_; } - WebInputEventAttribution attribution() const { return attribution_; } + const WebInputEventAttribution& attribution() const { return attribution_; } const WebInputEvent& Event() const { return event_->Event(); } @@ -223,6 +244,8 @@ size_t known_by_scheduler_count_; const WebInputEventAttribution attribution_; + + std::unique_ptr<cc::EventMetrics> metrics_; }; MainThreadEventQueue::SharedState::SharedState() @@ -256,6 +279,7 @@ DispatchType original_dispatch_type, mojom::blink::InputEventResultState ack_result, const WebInputEventAttribution& attribution, + std::unique_ptr<cc::EventMetrics> metrics, HandledEventCallback callback) { TRACE_EVENT2("input", "MainThreadEventQueue::HandleEvent", "dispatch_type", original_dispatch_type, "event_type", event->Event().GetType()); @@ -330,34 +354,26 @@ if (has_pointerrawupdate_handlers_) { if (event->Event().GetType() == WebInputEvent::Type::kMouseMove) { - std::unique_ptr<WebCoalescedInputEvent> raw_event = - std::make_unique<WebCoalescedInputEvent>( - std::make_unique<WebPointerEvent>( - WebInputEvent::Type::kPointerRawUpdate, - *(static_cast<WebMouseEvent*>(event->EventPointer()))), - event->latency_info()); - std::unique_ptr<QueuedWebInputEvent> raw_queued_event( - new QueuedWebInputEvent(std::move(raw_event), false, - HandledEventCallback(), false, attribution)); - - QueueEvent(std::move(raw_queued_event)); + auto raw_event = std::make_unique<WebCoalescedInputEvent>( + std::make_unique<WebPointerEvent>( + WebInputEvent::Type::kPointerRawUpdate, + static_cast<const WebMouseEvent&>(event->Event())), + event->latency_info()); + QueueEvent(QueuedWebInputEvent::CreateForRawEvent( + std::move(raw_event), attribution, metrics.get())); } else if (event->Event().GetType() == WebInputEvent::Type::kTouchMove) { const WebTouchEvent& touch_event = - *static_cast<const WebTouchEvent*>(event->EventPointer()); + static_cast<const WebTouchEvent&>(event->Event()); for (unsigned i = 0; i < touch_event.touches_length; ++i) { const WebTouchPoint& touch_point = touch_event.touches[i]; if (touch_point.state == WebTouchPoint::State::kStateMoved) { - std::unique_ptr<WebCoalescedInputEvent> raw_event = - std::make_unique<WebCoalescedInputEvent>( - std::make_unique<WebPointerEvent>(touch_event, touch_point), - event->latency_info()); + auto raw_event = std::make_unique<WebCoalescedInputEvent>( + std::make_unique<WebPointerEvent>(touch_event, touch_point), + event->latency_info()); raw_event->EventPointer()->SetType( WebInputEvent::Type::kPointerRawUpdate); - std::unique_ptr<QueuedWebInputEvent> raw_queued_event( - new QueuedWebInputEvent(std::move(raw_event), false, - HandledEventCallback(), false, - attribution)); - QueueEvent(std::move(raw_queued_event)); + QueueEvent(QueuedWebInputEvent::CreateForRawEvent( + std::move(raw_event), attribution, metrics.get())); } } } @@ -369,9 +385,10 @@ if (callback) cloned_latency_info = event->latency_info(); - std::unique_ptr<QueuedWebInputEvent> queued_event(new QueuedWebInputEvent( + auto queued_event = std::make_unique<QueuedWebInputEvent>( std::move(event), originally_cancelable, std::move(event_callback), - IsForwardedAndSchedulerKnown(ack_result), attribution)); + IsForwardedAndSchedulerKnown(ack_result), attribution, + std::move(metrics)); QueueEvent(std::move(queued_event)); @@ -493,7 +510,8 @@ return false; const WebTouchEvent& touch_event = static_cast<const WebTouchEvent&>(event->Event()); - return touch_event.moved_beyond_slop_region && !event->originallyCancelable(); + return touch_event.moved_beyond_slop_region && + !event->originally_cancelable(); } void MainThreadEventQueue::RafFallbackTimerFired() { @@ -645,16 +663,18 @@ bool MainThreadEventQueue::HandleEventOnMainThread( const WebCoalescedInputEvent& event, const WebInputEventAttribution& attribution, + std::unique_ptr<cc::EventMetrics> metrics, HandledEventCallback handled_callback) { // Notify the scheduler that the main thread is about to execute handlers. - if (auto* scheduler = main_thread_scheduler_) { - scheduler->WillHandleInputEventOnMainThread(event.Event().GetType(), - attribution); + if (main_thread_scheduler_) { + main_thread_scheduler_->WillHandleInputEventOnMainThread( + event.Event().GetType(), attribution); } bool handled = false; if (client_) { - handled = client_->HandleInputEvent(event, std::move(handled_callback)); + handled = client_->HandleInputEvent(event, std::move(metrics), + std::move(handled_callback)); } if (needs_low_latency_until_pointer_up_) {
diff --git a/third_party/blink/renderer/platform/widget/input/main_thread_event_queue.h b/third_party/blink/renderer/platform/widget/input/main_thread_event_queue.h index 359f6ea..e265a68 100644 --- a/third_party/blink/renderer/platform/widget/input/main_thread_event_queue.h +++ b/third_party/blink/renderer/platform/widget/input/main_thread_event_queue.h
@@ -5,6 +5,8 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WIDGET_INPUT_MAIN_THREAD_EVENT_QUEUE_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WIDGET_INPUT_MAIN_THREAD_EVENT_QUEUE_H_ +#include <memory> + #include "base/feature_list.h" #include "base/memory/weak_ptr.h" #include "base/single_thread_task_runner.h" @@ -19,6 +21,10 @@ #include "third_party/blink/renderer/platform/widget/input/main_thread_event_queue_task_list.h" #include "ui/latency/latency_info.h" +namespace cc { +class EventMetrics; +} + namespace blink { using HandledEventCallback = @@ -31,10 +37,13 @@ // on the main thread. class PLATFORM_EXPORT MainThreadEventQueueClient { public: - // Handle an |event| that was previously queued (possibly coalesced with - // another event). Returns false if the event will not be handled, and the - // |handled_callback| will not be run. + // Handle an `event` that was previously queued (possibly coalesced with + // another event). `metrics` contains information that would be useful in + // reporting latency metrics in case the event causes an update. Returns false + // if the event will not be handled in which case the `handled_callback` will + // not be run. virtual bool HandleInputEvent(const WebCoalescedInputEvent& event, + std::unique_ptr<cc::EventMetrics> metrics, HandledEventCallback handled_callback) = 0; // Requests a BeginMainFrame callback from the compositor. virtual void SetNeedsMainFrame() = 0; @@ -94,6 +103,7 @@ DispatchType dispatch_type, mojom::blink::InputEventResultState ack_result, const WebInputEventAttribution& attribution, + std::unique_ptr<cc::EventMetrics> metrics, HandledEventCallback handled_callback); void DispatchRafAlignedInput(base::TimeTicks frame_time); void QueueClosure(base::OnceClosure closure); @@ -131,6 +141,7 @@ // will not be run. bool HandleEventOnMainThread(const WebCoalescedInputEvent& event, const WebInputEventAttribution& attribution, + std::unique_ptr<cc::EventMetrics> metrics, HandledEventCallback handled_callback); bool IsRawUpdateEvent(
diff --git a/third_party/blink/renderer/platform/widget/input/main_thread_event_queue_unittest.cc b/third_party/blink/renderer/platform/widget/input/main_thread_event_queue_unittest.cc index d237340..ccc13c84 100644 --- a/third_party/blink/renderer/platform/widget/input/main_thread_event_queue_unittest.cc +++ b/third_party/blink/renderer/platform/widget/input/main_thread_event_queue_unittest.cc
@@ -15,6 +15,7 @@ #include "base/strings/string_util.h" #include "base/test/test_simple_task_runner.h" #include "build/build_config.h" +#include "cc/metrics/event_metrics.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/public/common/input/synthetic_web_input_event_builders.h" #include "third_party/blink/public/common/input/web_input_event_attribution.h" @@ -194,12 +195,12 @@ queue_->HandleEvent(std::make_unique<blink::WebCoalescedInputEvent>( event.Clone(), ui::LatencyInfo()), MainThreadEventQueue::DispatchType::kBlocking, - ack_result, blink::WebInputEventAttribution(), + ack_result, blink::WebInputEventAttribution(), nullptr, handler_callback_->GetCallback()); } void RunClosure(unsigned closure_id) { - std::unique_ptr<HandledTask> closure(new HandledClosure(closure_id)); + auto closure = std::make_unique<HandledClosure>(closure_id); handled_tasks_.push_back(std::move(closure)); } @@ -240,10 +241,11 @@ // MainThreadEventQueueClient overrides. bool HandleInputEvent(const blink::WebCoalescedInputEvent& event, + std::unique_ptr<cc::EventMetrics> metrics, HandledEventCallback callback) override { if (!handle_input_event_) return false; - std::unique_ptr<HandledTask> handled_event(new HandledEvent(event)); + auto handled_event = std::make_unique<HandledEvent>(event); handled_tasks_.push_back(std::move(handled_event)); std::move(callback).Run(blink::mojom::InputEventResultState::kNotConsumed, event.latency_info(), nullptr, base::nullopt); @@ -1139,6 +1141,7 @@ MainThreadEventQueueInitializationTest() = default; bool HandleInputEvent(const blink::WebCoalescedInputEvent& event, + std::unique_ptr<cc::EventMetrics> metrics, HandledEventCallback callback) override { std::move(callback).Run(blink::mojom::InputEventResultState::kNotConsumed, event.latency_info(), nullptr, base::nullopt);
diff --git a/third_party/blink/renderer/platform/widget/input/scroll_predictor_unittest.cc b/third_party/blink/renderer/platform/widget/input/scroll_predictor_unittest.cc index 67ca57e..c05c1a79 100644 --- a/third_party/blink/renderer/platform/widget/input/scroll_predictor_unittest.cc +++ b/third_party/blink/renderer/platform/widget/input/scroll_predictor_unittest.cc
@@ -58,7 +58,7 @@ original_events_.emplace_back(std::make_unique<WebCoalescedInputEvent>( gesture->Clone(), ui::LatencyInfo()), - base::NullCallback()); + nullptr, base::NullCallback()); return gesture; } @@ -78,11 +78,10 @@ void HandleResampleScrollEvents(std::unique_ptr<WebInputEvent>& event, double time_delta_in_milliseconds = 0) { - std::unique_ptr<EventWithCallback> event_with_callback = - std::make_unique<EventWithCallback>( - std::make_unique<WebCoalescedInputEvent>(std::move(event), - ui::LatencyInfo()), - base::TimeTicks(), base::NullCallback()); + auto event_with_callback = std::make_unique<EventWithCallback>( + std::make_unique<WebCoalescedInputEvent>(std::move(event), + ui::LatencyInfo()), + base::TimeTicks(), base::NullCallback(), nullptr); event_with_callback->original_events() = std::move(original_events_); event_with_callback = scroll_predictor_->ResampleScrollEvents(
diff --git a/third_party/blink/renderer/platform/widget/input/widget_base_input_handler.cc b/third_party/blink/renderer/platform/widget/input/widget_base_input_handler.cc index d671c092..0beb505 100644 --- a/third_party/blink/renderer/platform/widget/input/widget_base_input_handler.cc +++ b/third_party/blink/renderer/platform/widget/input/widget_base_input_handler.cc
@@ -297,6 +297,7 @@ void WidgetBaseInputHandler::HandleInputEvent( const WebCoalescedInputEvent& coalesced_event, + std::unique_ptr<cc::EventMetrics> metrics, HandledEventCallback callback) { const WebInputEvent& input_event = coalesced_event.Event(); @@ -338,24 +339,8 @@ ui::LatencyComponentType::INPUT_EVENT_LATENCY_RENDERER_MAIN_COMPONENT); cc::LatencyInfoSwapPromiseMonitor swap_promise_monitor( &swap_latency_info, widget_->LayerTreeHost()->GetSwapPromiseManager()); - base::Optional<cc::EventMetrics::ScrollUpdateType> scroll_update_type; - if (input_event.GetType() == WebInputEvent::Type::kGestureScrollUpdate) { - // TODO(crbug.com/1079116): For now, we use data from `LatencyInfo` to - // determine whether a scroll-update is the first one in a sequence or not. - // This should be determined independent of `LatencyInfo`. - if (coalesced_event.latency_info().FindLatency( - ui::INPUT_EVENT_LATENCY_FIRST_SCROLL_UPDATE_ORIGINAL_COMPONENT, - nullptr)) { - scroll_update_type = cc::EventMetrics::ScrollUpdateType::kStarted; - } else { - scroll_update_type = cc::EventMetrics::ScrollUpdateType::kContinued; - } - } auto scoped_event_metrics_monitor = - widget_->LayerTreeHost()->GetScopedEventMetricsMonitor( - cc::EventMetrics::Create(input_event.GetTypeAsUiEventType(), - scroll_update_type, input_event.TimeStamp(), - input_event.GetScrollInputType())); + widget_->LayerTreeHost()->GetScopedEventMetricsMonitor(metrics.get()); bool prevent_default = false; bool show_virtual_keyboard_for_mouse = false; @@ -464,7 +449,7 @@ if (handling_state.injected_scroll_params().size()) { HandleInjectedScrollGestures( std::move(handling_state.injected_scroll_params()), input_event, - coalesced_event.latency_info()); + coalesced_event.latency_info(), metrics.get()); } // Send gesture scroll events and their dispositions to the compositor thread, @@ -593,7 +578,8 @@ void WidgetBaseInputHandler::HandleInjectedScrollGestures( std::vector<InjectScrollGestureParams> injected_scroll_params, const WebInputEvent& input_event, - const ui::LatencyInfo& original_latency_info) { + const ui::LatencyInfo& original_latency_info, + const cc::EventMetrics* original_metrics) { DCHECK(injected_scroll_params.size()); base::TimeTicks original_timestamp; @@ -621,6 +607,7 @@ scrollbar_latency_info.AddLatencyNumber( ui::LatencyComponentType::INPUT_EVENT_LATENCY_RENDERER_MAIN_COMPONENT); + base::Optional<cc::EventMetrics::ScrollUpdateType> scroll_update_type; if (params.type == WebInputEvent::Type::kGestureScrollUpdate) { if (input_event.GetType() != WebInputEvent::Type::kGestureScrollUpdate) { scrollbar_latency_info.AddLatencyNumberWithTimestamp( @@ -641,6 +628,9 @@ ui::INPUT_EVENT_LATENCY_SCROLL_UPDATE_ORIGINAL_COMPONENT, nullptr)); } + scroll_update_type = last_injected_gesture_was_begin_ + ? cc::EventMetrics::ScrollUpdateType::kStarted + : cc::EventMetrics::ScrollUpdateType::kContinued; } std::unique_ptr<WebGestureEvent> gesture_event = @@ -659,26 +649,23 @@ cc::LatencyInfoSwapPromiseMonitor swap_promise_monitor( &scrollbar_latency_info, widget_->LayerTreeHost()->GetSwapPromiseManager()); - base::Optional<cc::EventMetrics::ScrollUpdateType> scroll_update_type; - if (gesture_event->GetType() == - WebInputEvent::Type::kGestureScrollUpdate) { - // TODO(crbug.com/1079116): For now, we use data from `LatencyInfo` to - // determine whether a scroll-update is the first one in a sequence or - // not. This should be determined independent of `LatencyInfo`. - if (scrollbar_latency_info.FindLatency( - ui::INPUT_EVENT_LATENCY_FIRST_SCROLL_UPDATE_ORIGINAL_COMPONENT, - nullptr)) { - scroll_update_type = cc::EventMetrics::ScrollUpdateType::kStarted; - } else { - scroll_update_type = cc::EventMetrics::ScrollUpdateType::kContinued; - } - } + // For latency metrics, we need the original timestamp of the + // `input_event` as its current timestamp might have changed due to + // coalescing in the pipeline. `original_metrics` which is the metrics + // object for the `input_event` contains this original timestamp. We could + // have used `original_timestamp` for this purpose, but we don't do that + // as `original_timestamp` is extracted from `ui::LatencyInfo` of + // `input_event` which we hope to be able to get rid of. Moreover, we plan + // to add more breakdown timestamps to `EventMetrcis` which are not + // available in `ui::LatencyInfo`. + base::TimeTicks time_stamp = original_metrics + ? original_metrics->time_stamp() + : gesture_event->TimeStamp(); + std::unique_ptr<cc::EventMetrics> metrics = cc::EventMetrics::Create( + gesture_event->GetTypeAsUiEventType(), scroll_update_type, time_stamp, + gesture_event->GetScrollInputType()); auto scoped_event_metrics_monitor = - widget_->LayerTreeHost()->GetScopedEventMetricsMonitor( - cc::EventMetrics::Create(gesture_event->GetTypeAsUiEventType(), - scroll_update_type, - gesture_event->TimeStamp(), - gesture_event->GetScrollInputType())); + widget_->LayerTreeHost()->GetScopedEventMetricsMonitor(metrics.get()); widget_->client()->HandleInputEvent( WebCoalescedInputEvent(*gesture_event, scrollbar_latency_info)); }
diff --git a/third_party/blink/renderer/platform/widget/input/widget_base_input_handler.h b/third_party/blink/renderer/platform/widget/input/widget_base_input_handler.h index 8b5fa9d..9cdd167 100644 --- a/third_party/blink/renderer/platform/widget/input/widget_base_input_handler.h +++ b/third_party/blink/renderer/platform/widget/input/widget_base_input_handler.h
@@ -21,6 +21,7 @@ namespace cc { struct ElementId; +class EventMetrics; struct OverscrollBehavior; } // namespace cc @@ -54,8 +55,11 @@ std::unique_ptr<InputHandlerProxy::DidOverscrollParams>, base::Optional<WebTouchAction>)>; - // Handle input events from the input event provider. + // Handle input events from the input event provider. `metrics` contains + // information used in reporting latency metrics in case the event causes + // any updates. `callback` will be called when the event is handled. void HandleInputEvent(const blink::WebCoalescedInputEvent& coalesced_event, + std::unique_ptr<cc::EventMetrics> metrics, HandledEventCallback callback); // Handle overscroll from Blink. Returns whether the should be sent to the @@ -99,10 +103,16 @@ WebInputEventResult HandleTouchEvent( const WebCoalescedInputEvent& coalesced_event); + // Creates and handles scroll gestures based on parameters from + // `injected_scroll_params`. `input_event`, `original_latency_info`, and + // `original_metrics` are the original event causing gesture scrolls along + // with its latency and metrics info used in generating new gestures along + // with their latency and metrics info. void HandleInjectedScrollGestures( std::vector<InjectScrollGestureParams> injected_scroll_params, const WebInputEvent& input_event, - const ui::LatencyInfo& original_latency_info); + const ui::LatencyInfo& original_latency_info, + const cc::EventMetrics* original_metrics); WidgetBase* widget_;
diff --git a/third_party/blink/renderer/platform/widget/input/widget_input_handler_manager.cc b/third_party/blink/renderer/platform/widget/input/widget_input_handler_manager.cc index e635d3d3..8d193e0eb 100644 --- a/third_party/blink/renderer/platform/widget/input/widget_input_handler_manager.cc +++ b/third_party/blink/renderer/platform/widget/input/widget_input_handler_manager.cc
@@ -12,6 +12,7 @@ #include "base/metrics/histogram_macros.h" #include "base/notreached.h" #include "cc/base/features.h" +#include "cc/metrics/event_metrics.h" #include "cc/trees/layer_tree_host.h" #include "services/tracing/public/cpp/perfetto/flow_event_utils.h" #include "third_party/blink/public/common/input/web_coalesced_input_event.h" @@ -249,6 +250,7 @@ bool WidgetInputHandlerManager::HandleInputEvent( const WebCoalescedInputEvent& event, + std::unique_ptr<cc::EventMetrics> metrics, HandledEventCallback handled_callback) { WidgetBaseInputHandler::HandledEventCallback blink_callback = base::BindOnce( [](HandledEventCallback callback, @@ -264,7 +266,8 @@ touch_action); }, std::move(handled_callback)); - widget_->input_handler().HandleInputEvent(event, std::move(blink_callback)); + widget_->input_handler().HandleInputEvent(event, std::move(metrics), + std::move(blink_callback)); return true; } @@ -282,12 +285,13 @@ void WidgetInputHandlerManager::DispatchNonBlockingEventToMainThread( std::unique_ptr<WebCoalescedInputEvent> event, - const WebInputEventAttribution& attribution) { + const WebInputEventAttribution& attribution, + std::unique_ptr<cc::EventMetrics> metrics) { DCHECK(input_event_queue_); input_event_queue_->HandleEvent( std::move(event), MainThreadEventQueue::DispatchType::kNonBlocking, mojom::blink::InputEventResultState::kSetNonBlocking, attribution, - HandledEventCallback()); + std::move(metrics), HandledEventCallback()); } void WidgetInputHandlerManager::FindScrollTargetOnMainThread( @@ -319,13 +323,20 @@ void WidgetInputHandlerManager::GenerateScrollBeginAndSendToMainThread( const WebGestureEvent& update_event, - const WebInputEventAttribution& attribution) { + const WebInputEventAttribution& attribution, + const cc::EventMetrics* update_metrics) { DCHECK_EQ(update_event.GetType(), WebInputEvent::Type::kGestureScrollUpdate); - std::unique_ptr<WebCoalescedInputEvent> event = - std::make_unique<WebCoalescedInputEvent>( - ScrollBeginFromScrollUpdate(update_event), ui::LatencyInfo()); + auto event = std::make_unique<WebCoalescedInputEvent>( + ScrollBeginFromScrollUpdate(update_event), ui::LatencyInfo()); + base::TimeTicks metrics_time_stamp = update_metrics + ? update_metrics->time_stamp() + : event->Event().TimeStamp(); + std::unique_ptr<cc::EventMetrics> metrics = cc::EventMetrics::Create( + event->Event().GetTypeAsUiEventType(), base::nullopt, metrics_time_stamp, + event->Event().GetScrollInputType()); - DispatchNonBlockingEventToMainThread(std::move(event), attribution); + DispatchNonBlockingEventToMainThread(std::move(event), attribution, + std::move(metrics)); } void WidgetInputHandlerManager::SetAllowedTouchAction( @@ -410,8 +421,8 @@ std::unique_ptr<WebCoalescedInputEvent> event) { DCHECK(base::FeatureList::IsEnabled(features::kScrollUnification)); DCHECK(input_handler_proxy_); - input_handler_proxy_->HandleInputEventWithLatencyInfo(std::move(event), - base::DoNothing()); + input_handler_proxy_->HandleInputEventWithLatencyInfo( + std::move(event), nullptr, base::DoNothing()); } void WidgetInputHandlerManager::DispatchEvent( @@ -448,6 +459,22 @@ event->EventPointer()->SetTimeStamp(base::TimeTicks::Now()); } + base::Optional<cc::EventMetrics::ScrollUpdateType> scroll_update_type; + if (event->Event().GetType() == WebInputEvent::Type::kGestureScrollBegin) { + has_seen_first_gesture_scroll_update_after_begin_ = false; + } else if (event->Event().GetType() == + WebInputEvent::Type::kGestureScrollUpdate) { + if (has_seen_first_gesture_scroll_update_after_begin_) { + scroll_update_type = cc::EventMetrics::ScrollUpdateType::kContinued; + } else { + scroll_update_type = cc::EventMetrics::ScrollUpdateType::kStarted; + has_seen_first_gesture_scroll_update_after_begin_ = true; + } + } + std::unique_ptr<cc::EventMetrics> metrics = cc::EventMetrics::Create( + event->Event().GetTypeAsUiEventType(), scroll_update_type, + event->Event().TimeStamp(), event->Event().GetScrollInputType()); + if (uses_input_handler_) { // If the input_handler_proxy has disappeared ensure we just ack event. if (!input_handler_proxy_) { @@ -468,13 +495,14 @@ // either ACK the event as handled to the browser or forward it to the main // thread. input_handler_proxy_->HandleInputEventWithLatencyInfo( - std::move(event), + std::move(event), std::move(metrics), base::BindOnce( &WidgetInputHandlerManager::DidHandleInputEventSentToCompositor, this, std::move(callback))); } else { DCHECK(!input_handler_proxy_); - DispatchDirectlyToWidget(std::move(event), std::move(callback)); + DispatchDirectlyToWidget(std::move(event), std::move(metrics), + std::move(callback)); } } @@ -617,6 +645,7 @@ void WidgetInputHandlerManager::DispatchDirectlyToWidget( std::unique_ptr<WebCoalescedInputEvent> event, + std::unique_ptr<cc::EventMetrics> metrics, mojom::blink::WidgetInputHandler::DispatchEventCallback callback) { // This path should only be taken by non-frame WidgetBase that don't use a // compositor (e.g. popups, plugins). Events bounds for a frame WidgetBase @@ -639,11 +668,13 @@ &WidgetInputHandlerManager::DidHandleInputEventSentToMainFromWidgetBase, this, std::move(callback)); - widget_->input_handler().HandleInputEvent(*event, std::move(send_callback)); + widget_->input_handler().HandleInputEvent(*event, std::move(metrics), + std::move(send_callback)); } void WidgetInputHandlerManager::FindScrollTargetReply( std::unique_ptr<WebCoalescedInputEvent> event, + std::unique_ptr<cc::EventMetrics> metrics, mojom::blink::WidgetInputHandler::DispatchEventCallback browser_callback, uint64_t hit_test_result) { TRACE_EVENT1("input", "WidgetInputHandlerManager::FindScrollTargetReply", @@ -663,7 +694,7 @@ } input_handler_proxy_->ContinueScrollBeginAfterMainThreadHitTest( - std::move(event), + std::move(event), std::move(metrics), base::BindOnce( &WidgetInputHandlerManager::DidHandleInputEventSentToCompositor, this, std::move(browser_callback)), @@ -675,7 +706,8 @@ InputHandlerProxy::EventDisposition event_disposition, std::unique_ptr<WebCoalescedInputEvent> event, std::unique_ptr<InputHandlerProxy::DidOverscrollParams> overscroll_params, - const WebInputEventAttribution& attribution) { + const WebInputEventAttribution& attribution, + std::unique_ptr<cc::EventMetrics> metrics) { TRACE_EVENT1("input", "WidgetInputHandlerManager::DidHandleInputEventSentToCompositor", "Disposition", event_disposition); @@ -702,7 +734,7 @@ ElementAtPointCallback result_callback = base::BindOnce( &WidgetInputHandlerManager::FindScrollTargetReply, this->AsWeakPtr(), - std::move(event), std::move(callback)); + std::move(event), std::move(metrics), std::move(callback)); main_thread_task_runner_->PostTask( FROM_HERE, @@ -736,7 +768,8 @@ &WidgetInputHandlerManager::DidHandleInputEventSentToMain, this, std::move(callback)); input_event_queue_->HandleEvent(std::move(event), dispatch_type, ack_state, - attribution, std::move(handled_event)); + attribution, std::move(metrics), + std::move(handled_event)); return; }
diff --git a/third_party/blink/renderer/platform/widget/input/widget_input_handler_manager.h b/third_party/blink/renderer/platform/widget/input/widget_input_handler_manager.h index 8e29720..124f0b8 100644 --- a/third_party/blink/renderer/platform/widget/input/widget_input_handler_manager.h +++ b/third_party/blink/renderer/platform/widget/input/widget_input_handler_manager.h
@@ -6,6 +6,8 @@ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WIDGET_INPUT_WIDGET_INPUT_HANDLER_MANAGER_H_ #include <atomic> +#include <memory> + #include "base/single_thread_task_runner.h" #include "build/build_config.h" #include "mojo/public/cpp/bindings/pending_receiver.h" @@ -17,6 +19,10 @@ #include "third_party/blink/renderer/platform/platform_export.h" #include "third_party/blink/renderer/platform/widget/input/main_thread_event_queue.h" +namespace cc { +class EventMetrics; +} + namespace gfx { struct PresentationFeedback; } // namespace gfx @@ -75,6 +81,7 @@ // MainThreadEventQueueClient overrides. bool HandleInputEvent(const WebCoalescedInputEvent& event, + std::unique_ptr<cc::EventMetrics> metrics, HandledEventCallback handled_callback) override; void SetNeedsMainFrame() override; @@ -82,13 +89,15 @@ void WillShutdown() override; void DispatchNonBlockingEventToMainThread( std::unique_ptr<WebCoalescedInputEvent> event, - const WebInputEventAttribution& attribution) override; + const WebInputEventAttribution& attribution, + std::unique_ptr<cc::EventMetrics> metrics) override; void DidAnimateForInput() override; void DidStartScrollingViewport() override; void GenerateScrollBeginAndSendToMainThread( const WebGestureEvent& update_event, - const WebInputEventAttribution& attribution) override; + const WebInputEventAttribution& attribution, + const cc::EventMetrics* update_metrics) override; void SetAllowedTouchAction( cc::TouchAction touch_action, uint32_t unique_touch_event_id, @@ -177,28 +186,31 @@ // thread if needed. void DispatchDirectlyToWidget( std::unique_ptr<WebCoalescedInputEvent> event, + std::unique_ptr<cc::EventMetrics> metrics, mojom::blink::WidgetInputHandler::DispatchEventCallback callback); // Used to return a result from FindScrollTargetOnMainThread. Will be called // on the input handling thread. void FindScrollTargetReply( std::unique_ptr<WebCoalescedInputEvent> event, + std::unique_ptr<cc::EventMetrics> metrics, mojom::blink::WidgetInputHandler::DispatchEventCallback browser_callback, uint64_t hit_test_result); // This method is the callback used by the compositor input handler to // communicate back whether the event was successfully handled on the // compositor thread or whether it needs to forwarded to the main thread. - // This method is responsible for passing the event on to the main thread or - // replying to the browser that the event was handled. This is always called - // on the input handling thread (i.e. if a compositor thread exists, it'll be - // called from it). + // This method is responsible for passing the `event` and its accompanying + // `metrics` on to the main thread or replying to the browser that the event + // was handled. This is always called on the input handling thread (i.e. if a + // compositor thread exists, it'll be called from it). void DidHandleInputEventSentToCompositor( mojom::blink::WidgetInputHandler::DispatchEventCallback callback, InputHandlerProxy::EventDisposition event_disposition, std::unique_ptr<WebCoalescedInputEvent> event, std::unique_ptr<InputHandlerProxy::DidOverscrollParams> overscroll_params, - const WebInputEventAttribution& attribution); + const WebInputEventAttribution& attribution, + std::unique_ptr<cc::EventMetrics> metrics); // Similar to the above; this is used by the main thread input handler to // communicate back the result of handling the event. Note: this may be @@ -295,6 +307,12 @@ // being sent on the compositor thread. std::atomic<bool> have_emitted_uma_{false}; + // Specifies weather the renderer has received a scroll-update event after the + // last scroll-begin or not, It is used to determine whether a scroll-update + // is the first one in a scroll sequence or not. This variable is only used on + // the input handling thread (i.e. on the compositor thread if it exists). + bool has_seen_first_gesture_scroll_update_after_begin_ = false; + #if defined(OS_ANDROID) std::unique_ptr<SynchronousCompositorProxyRegistry> synchronous_compositor_registry_;
diff --git a/third_party/blink/renderer/platform/widget/widget_base.cc b/third_party/blink/renderer/platform/widget/widget_base.cc index da2245b..b68607b 100644 --- a/third_party/blink/renderer/platform/widget/widget_base.cc +++ b/third_party/blink/renderer/platform/widget/widget_base.cc
@@ -1248,7 +1248,7 @@ WebInputEventAttribution attribution; widget_input_handler_manager_->input_event_queue()->HandleEvent( std::move(event), MainThreadEventQueue::DispatchType::kNonBlocking, - mojom::blink::InputEventResultState::kNotConsumed, attribution, + mojom::blink::InputEventResultState::kNotConsumed, attribution, nullptr, HandledEventCallback()); }
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index 5017501..ab41c5c5 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -1636,7 +1636,7 @@ crbug.com/1022182 virtual/module-top-level-await/external/wpt/html/webappapis/dynamic-markup-insertion/document-write/module-tla-import.html [ Pass ] crbug.com/1022182 virtual/module-top-level-await/external/wpt/html/webappapis/dynamic-markup-insertion/document-write/module-tla-promise.html [ Pass ] -crbug.com/676270 [ Mac ] external/wpt/css/css-text/hyphens/hyphens-auto-001.html [ Failure ] +crbug.com/676270 external/wpt/css/css-text/hyphens/hyphens-auto-001.html [ Failure ] crbug.com/1022415 external/wpt/css/css-text/hyphens/hyphens-auto-010.html [ Failure ] crbug.com/1022415 [ Linux ] external/wpt/css/css-text/hyphens/hyphens-auto-inline-010.html [ Failure ] crbug.com/1022415 [ Win ] external/wpt/css/css-text/hyphens/hyphens-auto-inline-010.html [ Failure ] @@ -1644,10 +1644,9 @@ crbug.com/963369 external/wpt/css/css-text/hyphens/hyphens-out-of-flow-002.html [ Failure ] crbug.com/639223 external/wpt/css/css-text/hyphens/hyphens-shaping-002.html [ Failure ] crbug.com/639223 external/wpt/css/css-text/hyphens/hyphens-span-001.html [ Failure ] -crbug.com/639223 [ Mac ] external/wpt/css/css-text/hyphens/hyphens-span-002.html [ Failure ] +crbug.com/639223 external/wpt/css/css-text/hyphens/hyphens-span-002.html [ Failure ] crbug.com/639223 external/wpt/css/css-text/hyphens/shy-styling-001.html [ Failure ] crbug.com/870219 virtual/text-antialias/hyphens/hyphen-min-preferred-width-mock.html [ Failure ] -crbug.com/870219 [ Win ] virtual/text-antialias/hyphens/hyphens-auto.html [ Failure ] crbug.com/870219 virtual/text-antialias/hyphens/hyphens-auto-mock.html [ Failure ] crbug.com/1139693 virtual/text-antialias/hyphens/midword-break-priority.html [ Failure ] @@ -3380,23 +3379,23 @@ # [layout-ng-grid] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/absolute-positioning-definite-sizes-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/absolute-positioning-grid-container-containing-block-001.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/absolute-positioning-grid-container-containing-block-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/absolute-positioning-grid-container-parent-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/descendant-static-position-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/descendant-static-position-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/descendant-static-position-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/descendant-static-position-004.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/empty-grid-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-paint-positioned-children-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-children-writing-modes-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-item-dynamic-change-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-items-and-autofit-tracks-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-items-and-autofit-tracks-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-items-and-autofit-tracks-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-items-and-autofit-tracks-004.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-items-and-autofit-tracks-005.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-items-and-autofit-tracks-006.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-items-and-autofit-tracks-007.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/descendant-static-position-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/descendant-static-position-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/descendant-static-position-003.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/descendant-static-position-004.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/empty-grid-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-paint-positioned-children-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-children-writing-modes-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-item-dynamic-change-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-items-and-autofit-tracks-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-items-and-autofit-tracks-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-items-and-autofit-tracks-003.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-items-and-autofit-tracks-004.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-items-and-autofit-tracks-005.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-items-and-autofit-tracks-006.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-items-and-autofit-tracks-007.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-items-background-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-items-background-rtl-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-items-content-alignment-001.html [ Failure ] @@ -3411,22 +3410,21 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-items-unknown-named-grid-line-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-positioned-items-within-grid-implicit-track-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/grid-sizing-positioned-items-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-004.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-005.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-006.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-007.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-008.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-009.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-010.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-011.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-012.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-013.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-014.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-015.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-016.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-003.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-004.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-005.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-006.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-007.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-008.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-009.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-010.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-011.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-012.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-013.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-014.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-015.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-descendants-016.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-items-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-items-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-items-003.html [ Failure ] @@ -3444,22 +3442,21 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-items-015.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-items-016.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/orthogonal-positioned-grid-items-017.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-004.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-005.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-006.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-007.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-008.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-009.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-010.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-011.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-012.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-013.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-014.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-015.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-016.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-003.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-004.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-005.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-006.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-007.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-008.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-009.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-010.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-011.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-012.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-013.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-014.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-015.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-descendants-016.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-items-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-items-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-items-003.html [ Failure ] @@ -3477,8 +3474,7 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-items-015.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-items-016.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-items-017.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-items-should-not-create-implicit-tracks-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-items-should-not-take-up-space-001.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-items-should-not-create-implicit-tracks-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/abspos/positioned-grid-items-sizing-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-align-baseline-vertical.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-align-baseline.html [ Failure ] @@ -3492,7 +3488,7 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-align-justify-margin-border-padding-vertical-rl.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-align-justify-margin-border-padding.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-align-justify-overflow.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-align-justify-stretch-with-orthogonal-flows.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-align-justify-stretch-with-orthogonal-flows.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-align-justify-stretch.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-align-stretching-replaced-items.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-align.html [ Failure ] @@ -3530,53 +3526,53 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-implies-size-change-036.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-style-changes-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-style-changes-002.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-style-changes-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-style-changes-004.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-style-changes-003.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-style-changes-004.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-style-changes-005.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-style-changes-006.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-style-changes-007.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-style-changes-008.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-baseline-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-baseline-002.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-style-changes-007.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-alignment-style-changes-008.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-baseline-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-baseline-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-baseline-003.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-baseline-004.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-baseline-align-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-baseline-align-cycles-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-baseline-justify-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-002.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-baseline-align-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-baseline-align-cycles-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-baseline-justify-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-003.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-004.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-005.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-005.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-006.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-007.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-004.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-005.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-006.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-007.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-008.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-009.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-010.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-011.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-block-axis-alignment-auto-margins-007.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-003.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-004.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-005.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-006.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-007.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-008.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-009.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-010.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-011.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-012.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-013.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-014.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-015.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-016.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-017.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-positioned-items-017.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-sticky-positioned-items-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-alignment-sticky-positioned-items-002.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-001.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-003.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-004.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-005.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-column-axis-self-baseline-synthesized-005.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-container-auto-margins-scrollbars-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-container-baseline-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-content-alignment-and-self-alignment-001.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-container-baseline-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-content-alignment-and-self-alignment-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-content-alignment-and-self-alignment-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-content-alignment-auto-sized-tracks-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-content-alignment-overflow-001.html [ Failure ] @@ -3634,7 +3630,7 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-content-distribution-with-collapsed-tracks-022.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-content-distribution-with-collapsed-tracks-023.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-content-distribution-with-collapsed-tracks-024.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-fit-content-tracks-dont-stretch-001.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-fit-content-tracks-dont-stretch-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-gutters-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-gutters-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-gutters-003.html [ Failure ] @@ -3647,90 +3643,91 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-gutters-010.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-gutters-011.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-gutters-012.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-gutters-013.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-gutters-014.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-gutters-013.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-gutters-014.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-gutters-and-alignment.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-002.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-003.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-004.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-005.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-006.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-007.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-alignment-with-orthogonal-flows-vertical-lr.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-alignment-with-orthogonal-flows-vertical-rl.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-alignment-with-orthogonal-flows.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-inline-axis-alignment-auto-margins-007.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-alignment-with-orthogonal-flows-vertical-lr.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-alignment-with-orthogonal-flows-vertical-rl.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-alignment-with-orthogonal-flows.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-auto-margins-alignment-vertical-lr.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-auto-margins-alignment-vertical-rl.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-auto-margins-alignment.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-1.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-2.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-3.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-4.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-5.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-6.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-7.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-place-content-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-004.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-005.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-006.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-007.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-008.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-009.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-010.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-011.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-012.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-013.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-014.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-015.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-016.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-017.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-1.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-2.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-3.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-4.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-5.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-6.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-7.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-8.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-9.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-003.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-004.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-005.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-006.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-007.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-008.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-009.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-010.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-011.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-012.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-013.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-014.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-015.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-016.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-017.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-sticky-positioned-items-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-alignment-sticky-positioned-items-002.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-004.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-003.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-004.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-row-axis-self-baseline-synthesized-005.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-004.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-005.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-006.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-007.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-008.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-009.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-010.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-011.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-012.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-004.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-005.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-006.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-007.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-008.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-009.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-010.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-011.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-012.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-013.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-014.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-015.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-016.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-003.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-004.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-005.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-006.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-007.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-008.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-009.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-010.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-011.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-non-static-positioned-items-012.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-003.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-004.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-005.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-006.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-007.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-008.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-009.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-010.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-011.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-012.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-013.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-014.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-015.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-positioned-items-with-margin-border-padding-016.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-003.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-004.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-005.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-006.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-007.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-008.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-005.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-006.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-007.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-008.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-009.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-010.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-011.html [ Failure ] @@ -3739,15 +3736,15 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-014.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-015.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-016.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-input-range.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-input-range.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-lr-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-lr-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-lr-003.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-lr-004.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-lr-005.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-lr-006.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-lr-007.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-lr-008.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-lr-005.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-lr-006.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-lr-007.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-lr-008.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-lr-009.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-lr-010.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-lr-011.html [ Failure ] @@ -3760,10 +3757,10 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-rl-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-rl-003.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-rl-004.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-rl-005.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-rl-006.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-rl-007.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-rl-008.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-rl-005.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-rl-006.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-rl-007.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-rl-008.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-rl-009.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-rl-010.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-rl-011.html [ Failure ] @@ -3772,18 +3769,18 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-rl-014.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-rl-015.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-alignment-stretch-vertical-rl-016.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-003.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-003.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-002-b.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-002.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-004.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-005.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-003.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-004.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-005.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-006.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-007.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-008.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-007.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-008.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-003.html [ Failure ] @@ -3793,36 +3790,36 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-007.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-008.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-009.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-010.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-011.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-012.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-horiz-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-horiz-002.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-010.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-011.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-012.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-horiz-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-horiz-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-horiz-003.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-horiz-004.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-horiz-005.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-horiz-004.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-horiz-005.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-horiz-006.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-horiz-007.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-vertical-lr-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-vertical-lr-002.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-vertical-lr-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-vertical-lr-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-vertical-lr-003.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-vertical-lr-004.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-vertical-lr-005.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-vertical-lr-004.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-vertical-lr-005.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-vertical-lr-006.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-vertical-lr-007.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-vertical-rl-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-vertical-rl-002.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-vertical-lr-007.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-vertical-rl-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-vertical-rl-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-vertical-rl-003.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-vertical-rl-004.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-vertical-rl-005.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-vertical-rl-004.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-vertical-rl-005.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-vertical-rl-006.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-vertical-rl-007.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/animation/grid-template-columns-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/animation/grid-template-rows-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/anonymous-grid-items-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-child-percent-basis-resize-1.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/alignment/self-baseline/grid-self-baseline-vertical-rl-007.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/animation/grid-template-columns-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/animation/grid-template-rows-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/anonymous-grid-items-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-child-percent-basis-resize-1.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/relative-grandchild.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/explicit-grid-size-001.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/explicit-grid-size-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/flex-content-distribution-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/flex-content-resolution-columns-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/flex-content-resolution-columns-002.html [ Failure ] @@ -3832,132 +3829,122 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/flex-item-grid-container-percentage-rows-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/fr-unit-with-percentage.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/fr-unit.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-explicit-rows-001.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-explicit-rows-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-fill-columns-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-fill-rows-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-fit-columns-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-fit-rows-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-intrinsic-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-max-size-001.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-intrinsic-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-max-size-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-max-size-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-add-item-with-positioned-items-crash.html [ Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-add-positioned-block-item-after-inline-item-crash.html [ Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-min-max-size-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-min-size-001.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-min-size-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-min-size-002.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-multiple-values-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-multiple-values-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-multiple-values-003.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-multiple-values-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-multiple-values-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-multiple-values-003.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-auto-repeat-positioned-container-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-change-auto-repeat-tracks.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-change-fit-content-argument-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-change-intrinsic-size-with-auto-repeat-tracks-001.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-change-auto-repeat-tracks.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-change-fit-content-argument-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-change-intrinsic-size-with-auto-repeat-tracks-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-inline-auto-repeat-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-inline-support-flexible-lengths-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-inline-support-grid-template-columns-rows-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-inline-support-named-grid-lines-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-inline-support-repeat-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-inline-template-columns-rows-resolved-values-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-inline-template-columns-rows-resolved-values-001.tentative.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-inline-support-flexible-lengths-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-inline-support-grid-template-columns-rows-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-inline-support-named-grid-lines-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-inline-support-repeat-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-inline-template-columns-rows-resolved-values-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-inline-template-columns-rows-resolved-values-001.tentative.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-layout-auto-tracks.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-layout-basic.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-layout-repeat-notation.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-limits-001.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-layout-repeat-notation.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-limits-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-minimum-contribution-with-percentages.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-percentage-rows-indefinite-height-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-percentage-rows-indefinite-height-002.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-support-flexible-lengths-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-support-grid-template-columns-rows-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-support-named-grid-lines-001.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-support-flexible-lengths-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-support-grid-template-columns-rows-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-support-named-grid-lines-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-support-named-grid-lines-002.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-support-named-grid-lines-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-support-repeat-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-template-columns-fit-content-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-template-columns-rows-changes-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-template-columns-rows-resolved-values-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-template-columns-rows-resolved-values-001.tentative.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-support-repeat-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-template-columns-fit-content-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-template-columns-rows-changes-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-template-columns-rows-resolved-values-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-template-columns-rows-resolved-values-001.tentative.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-template-rows-fit-content-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/explicitly-sized-grid-item-as-table.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-automatic-minimum-intrinsic-aspect-ratio-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-items-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-items-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-items-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-items-inline-blocks-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-order-property-auto-placement-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-order-property-auto-placement-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-order-property-auto-placement-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-order-property-auto-placement-004.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-order-property-auto-placement-005.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-order-property-painting-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-order-property-painting-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-order-property-painting-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-order-property-painting-004.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-order-property-painting-005.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-z-axis-ordering-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-z-axis-ordering-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-z-axis-ordering-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-z-axis-ordering-004.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-z-axis-ordering-005.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/explicitly-sized-grid-item-as-table.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-automatic-minimum-intrinsic-aspect-ratio-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-items-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-items-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-items-003.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-items-inline-blocks-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-order-property-auto-placement-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-order-property-auto-placement-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-order-property-auto-placement-003.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-order-property-auto-placement-004.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-order-property-auto-placement-005.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-order-property-painting-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-order-property-painting-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-order-property-painting-003.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-order-property-painting-004.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-order-property-painting-005.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-z-axis-ordering-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-z-axis-ordering-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-z-axis-ordering-003.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-z-axis-ordering-004.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-z-axis-ordering-005.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-z-axis-ordering-overlapped-items-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-z-axis-ordering-overlapped-items-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-z-axis-ordering-overlapped-items-003.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-z-axis-ordering-overlapped-items-004.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-z-axis-ordering-overlapped-items-005.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-inline-z-axis-ordering-overlapped-items-006.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-item-dynamic-min-contribution-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-item-flex-container-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-item-margins-and-writing-modes-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-item-dynamic-min-contribution-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-item-flex-container-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-item-percentage-sizes-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-item-percentage-sizes-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-item-percentage-sizes-003.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-item-script-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-003.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-item-script-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-003.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-minimum-height-orthogonal-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-minimum-width-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-minimum-width-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-minimum-width-orthogonal-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-minimum-width-orthogonal-002.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-minimum-width-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-minimum-width-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-minimum-width-orthogonal-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-minimum-width-orthogonal-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-minimum-width-vertical-lr-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-minimum-width-vertical-lr-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-minimum-width-vertical-rl-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-minimum-width-vertical-rl-002.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-004.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-005.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-006.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-007.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-008.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-009.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-010.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-011.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-012.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-013.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-014.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-vertical-lr-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-vertical-lr-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-vertical-rl-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-vertical-rl-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-004.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-005.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-006.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-007.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-010.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-011.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-012.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-013.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-014.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-002.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-014.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-vertical-lr-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-vertical-lr-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-vertical-rl-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-margins-vertical-rl-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-003.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-004.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-005.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-006.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-007.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-010.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-011.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-012.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-013.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-014.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-relative-offsets-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-relative-offsets-002.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-sizing-alignment-001.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-items-sizing-alignment-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-layout-grid-in-grid.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-layout-z-order-a.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-layout-z-order-b.html [ Failure ] @@ -3976,129 +3963,116 @@ crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-minimum-size-grid-items-024.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-minimum-size-grid-items-025.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/percentage-size-subitems-002.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-order-property-auto-placement-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-order-property-auto-placement-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-order-property-auto-placement-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-order-property-auto-placement-004.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-order-property-auto-placement-005.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-z-axis-ordering-overlapped-items-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-z-axis-ordering-overlapped-items-002.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-z-axis-ordering-overlapped-items-003.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-z-axis-ordering-overlapped-items-004.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-z-axis-ordering-overlapped-items-005.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-z-axis-ordering-overlapped-items-006.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/percentage-size-replaced-subitems-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/percentage-size-subitems-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/remove-svg-grid-item-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-layout-properties.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/column-property-should-not-apply-on-grid-container-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/compute-intrinsic-widths-scrollbar-001.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-order-property-auto-placement-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-order-property-auto-placement-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-order-property-auto-placement-003.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-order-property-auto-placement-004.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/grid-order-property-auto-placement-005.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/percentage-size-replaced-subitems-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/percentage-size-subitems-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-items/remove-svg-grid-item-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-layout-properties.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/column-property-should-not-apply-on-grid-container-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/compute-intrinsic-widths-scrollbar-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/display-grid.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/display-inline-grid.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-areas-overflowing-grid-container-004.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-areas-overflowing-grid-container-005.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-areas-overflowing-grid-container-006.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-box-sizing-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-button-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-container-ignores-first-letter-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-container-ignores-first-line-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-container-margin-border-padding-scrollbar-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-container-scrollbar-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-container-scrollbars-sizing-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-container-scrollbars-sizing-002.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-box-sizing-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-button-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-container-ignores-first-letter-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-container-ignores-first-line-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-container-margin-border-padding-scrollbar-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-container-scrollbar-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-container-scrollbars-sizing-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-container-scrollbars-sizing-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-container-sizing-constraints-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-display-grid-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-first-letter-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-first-letter-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-first-letter-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-first-line-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-first-line-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-first-line-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-float-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-float-002.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-display-grid-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-first-letter-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-first-letter-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-first-letter-003.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-first-line-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-first-line-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-first-line-003.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-float-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-floats-no-intrude-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-gutters-and-flex-content-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-gutters-and-tracks-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-gutters-as-percentage-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-inline-first-letter-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-inline-first-letter-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-inline-first-letter-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-inline-first-line-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-inline-first-line-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-inline-first-line-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-inline-float-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-inline-margins-no-collapse-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-inline-vertical-align-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-item-accepts-first-letter-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-item-accepts-first-line-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-margins-no-collapse-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-margins-no-collapse-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-min-max-height-001.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-gutters-and-tracks-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-gutters-as-percentage-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-inline-first-letter-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-inline-first-letter-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-inline-first-letter-003.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-inline-first-line-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-inline-first-line-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-inline-first-line-003.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-inline-float-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-inline-margins-no-collapse-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-inline-vertical-align-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-item-accepts-first-letter-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-item-accepts-first-line-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-margins-no-collapse-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-margins-no-collapse-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-min-max-height-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-size-shrink-to-fit-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-vertical-align-001.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-model/grid-vertical-align-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-tracks-stretched-with-different-flex-factors-sum.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/implicit-grids/grid-support-grid-auto-columns-rows-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/implicit-grids/grid-support-grid-auto-columns-rows-002.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/implicit-grids/grid-support-grid-auto-columns-rows-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/baseline-alignment-affects-intrinsic-size-001.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/implicit-grids/grid-support-grid-auto-columns-rows-003.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/baseline-alignment-affects-intrinsic-size-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/baseline-alignment-affects-intrinsic-size-002.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/baseline-alignment-affects-intrinsic-size-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/baseline-alignment-affects-intrinsic-size-004.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/baseline-alignment-affects-intrinsic-size-003.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/baseline-alignment-affects-intrinsic-size-004.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/baseline-alignment-affects-intrinsic-size-005.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/baseline-alignment-affects-intrinsic-size-006.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/flex-and-intrinsic-sizes-001.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/flex-and-intrinsic-sizes-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/flex-sizing-columns-min-max-width-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/flex-sizing-rows-min-max-height-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-002.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-003.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-004.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-005.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-006.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-007.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/flex-and-intrinsic-sizes-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/flex-sizing-columns-min-max-width-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/flex-sizing-rows-min-max-height-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-002.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-003.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-004.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-005.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-006.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-as-flex-item-should-not-shrink-to-fit-007.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-automatic-minimum-for-auto-columns-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-container-percentage-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-container-percentage-002.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-001.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-002.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-003.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-004.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-find-fr-size-gutters-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-find-fr-size-gutters-002.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-fit-content-percentage.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-flex-track-intrinsic-sizes-001.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-fit-content-percentage.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-flex-track-intrinsic-sizes-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-intrinsic-size-with-orthogonal-items.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-intrinsic-track-sizes-001.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-intrinsic-track-sizes-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-item-margin-auto-columns-rows-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-item-margin-auto-columns-rows-vertical-lr-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-item-margin-auto-columns-rows-vertical-rl-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-layout-free-space-unit.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim-vertical-lr.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim-vertical-rl.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-percent-cols-spanned-shrinkwrap-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-percent-cols-filled-shrinkwrap-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-percent-rows-filled-shrinkwrap-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-percent-rows-spanned-shrinkwrap-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-stretch-respects-min-size-001.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-columns-computed-implicit-track.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-columns-computed-withcontent.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim-vertical-lr.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim-vertical-rl.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-percent-cols-filled-shrinkwrap-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-percent-rows-filled-shrinkwrap-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/layout-algorithm/grid-stretch-respects-min-size-001.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-columns-computed-implicit-track.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-columns-computed-withcontent.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-columns-computed.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-repeat-auto-computed-withcontent-001.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-repeat-auto-computed-withcontent-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-repeat-auto-computed-withcontent-002.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-rows-computed-implicit-track.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-rows-computed-withcontent.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-rows-computed-implicit-track.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-rows-computed-withcontent.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/parsing/grid-template-rows-computed.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-auto-flow-sparse-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-auto-placement-implicit-tracks-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-container-change-grid-tracks-recompute-child-positions-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-container-change-named-grid-recompute-child-positions-001.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-layout-grid-span.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-layout-lines-shorthands.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-layout-lines.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-layout-lines-shorthands.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-layout-lines.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-layout-placement-shorthands.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-placement-using-named-grid-lines-001.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/placement/grid-placement-using-named-grid-lines-002.html [ Failure ] @@ -4118,12 +4092,12 @@ crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-auto-columns-rows-get-set.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-auto-columns-rows-resolution.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-auto-columns-rows-update.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-auto-flow-resolution.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-auto-flow-update.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-auto-flow-resolution.html [ Crash ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-auto-flow-update.html [ Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-auto-repeat-huge-grid.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-columns-rows-get-set-multiple.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-columns-rows-get-set.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-content-sized-columns-resolution.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-content-sized-columns-resolution.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-element-auto-repeat-get-set.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-element-border-grid-item.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-element-border-padding-grid-item.html [ Failure ] @@ -4133,8 +4107,8 @@ crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-element-padding-margin.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-element-repeat-get-set.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-grow-tracks-to-their-max.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-initialize-span-one-items.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-intrinsic-maximums.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-initialize-span-one-items.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-intrinsic-maximums.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-addition-auto-placement-update.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-addition-track-breadth-update.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-auto-margins-and-stretch.html [ Failure ] @@ -4143,43 +4117,35 @@ crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-auto-placement-definite-span.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-auto-placement-fixed-row-column.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-auto-sized-align-justify-margin-border-padding.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-bad-named-area-auto-placement.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-bad-resolution-double-span.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-border-overflow-paint.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-change-alignment-from-stretch.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-change-order-auto-flow.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-display.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-grid-container-percentage-rows.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-margin-resolution.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-multiple-minmax-content-resolution.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-named-grid-area-resolution.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-named-grid-line-resolution.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-negative-indexes.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-negative-integer-explicit-grid-resolution.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-negative-position-resolution.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-order-auto-flow-resolution.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-order-paint-order.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-order-auto-flow-resolution.html [ Crash ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-order-paint-order.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-overflow-paint.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-overflow.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-paddings-and-writing-modes.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-position-changed-dynamic.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-overflow.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-positioning-with-orthogonal-flows.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-removal-auto-placement-update.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-removal-track-breadth-update.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-scroll-position.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-scroll-position.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-sizing-with-orthogonal-flows.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-spanning-and-orthogonal-flows.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-spanning-and-orthogonal-flows.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-spanning-resolution.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-stretch-with-margins-borders-padding-vertical-lr.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-stretch-with-margins-borders-padding-vertical-rl.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-stretch-with-margins-borders-padding.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-text-background-not-interleaved.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-unknown-named-grid-line-resolution.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-with-border-in-fr.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-with-border-in-fr.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-with-percent-height-in-auto-height-grid-resolution.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-with-percent-height-replaced-element.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-with-percent-height-replaced-element.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-with-percent-min-max-height-dynamic.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-item-z-index-stacking-context.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-items-should-not-be-stretched-when-height-or-width-or-margin-change.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-justify-content-distribution-vertical-lr.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-justify-content-distribution-vertical-rl.html [ Failure ] @@ -4187,32 +4153,30 @@ crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-justify-content-vertical-lr.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-justify-content-vertical-rl.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-justify-content.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-margins-not-collapse.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-only-abspos-item-computed-style-crash.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-painting-item-overflow.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-painting-respect-dom-order.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-only-abspos-item-computed-style-crash.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-painting-respect-dom-order.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-painting-rtl.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-percent-track-margin-border-padding.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-percent-track-scrollbar.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-preferred-logical-widths.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-self-baseline-two-dimensional.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-template-columns-rows-computed-style-gaps-content-alignment.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-self-baseline-two-dimensional.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-template-columns-rows-computed-style-gaps-content-alignment.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-template-shorthand-get-set.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-track-sizing-with-margins-and-orthogonal-flows.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-track-sizing-with-orthogonal-flows.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-track-sizing-with-percentages-and-orthogonal-flows.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-update-sizes-after-distributing-all.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-track-sizing-with-margins-and-orthogonal-flows.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-track-sizing-with-orthogonal-flows.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-track-sizing-with-percentages-and-orthogonal-flows.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/grid-update-sizes-after-distributing-all.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/implicit-columns-auto-resolution.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/implicit-position-dynamic-change.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/implicit-rows-auto-resolution.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/implicit-tracks-before-explicit.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/justify-self-cell.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/implicit-tracks-before-explicit.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/justify-self-cell.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/mark-as-infinitely-growable.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/maximize-tracks-definite-indefinite-height.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/maximize-tracks-definite-indefinite-width.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/maximize-tracks-definite-indefinite-height.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/maximize-tracks-definite-indefinite-width.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/min-content-row-must-shrink-when-column-grows.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/min-height-border-box.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/min-width-height-auto-and-margins.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/min-height-border-box.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/min-width-height-auto-and-margins.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/min-width-height-auto-overflow.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/min-width-height-auto.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/min-width-margin-box.html [ Failure ] @@ -4222,38 +4186,36 @@ crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/minmax-max-content-resolution-rows.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/minmax-min-content-column-resolution-columns.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/minmax-min-content-column-resolution-rows.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/minmax-spanning-resolution-columns.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/minmax-spanning-resolution-rows.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/minmax-spanning-resolution-columns.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/minmax-spanning-resolution-rows.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-1.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-2.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/named-grid-areas-dynamic-with-media-query.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/named-grid-line-get-set.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/named-grid-lines-with-named-grid-areas-dynamic-get-set.html [ Failure Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/named-grid-lines-with-named-grid-areas-resolution.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/negative-growth-share-as-infinity-crash.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/negative-growth-share-as-infinity-crash.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/non-grid-columns-rows-get-set.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/painting-item-marginbox-overflowing-grid-area.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/percent-intrinsic-track-breadth.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/percent-of-indefinite-track-size-in-auto.html [ Failure Crash ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/percent-of-indefinite-track-size.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/percent-intrinsic-track-breadth.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/percent-of-indefinite-track-size-in-auto.html [ Failure ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/percent-of-indefinite-track-size.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/percent-padding-margin-resolution-grid-item-update.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/percent-padding-margin-resolution-grid-item.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/percent-resolution-grid-item-children.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/percent-resolution-grid-item-children.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/percent-track-breadths-regarding-container-size.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/place-cell-by-index.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/positioned-grid-container-percentage-tracks.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/preferred-width-computed-after-layout.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/preferred-width-computed-after-layout.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/relayout-align-items-changed.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/relayout-align-self-changed.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/relayout-indefinite-heights.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/relayout-justify-items-changed.html [ Failure ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/relayout-justify-self-changed.html [ Failure ] -crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/repeating-layout-must-produce-the-same-results.html [ Failure Crash ] +crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/repeating-layout-must-produce-the-same-results.html [ Failure ] # These pass but hit DCHECKS -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-add-item-with-positioned-items-crash.html [ Crash ] -crbug.com/1045599 virtual/layout-ng-grid/external/wpt/css/css-grid/grid-definition/grid-add-positioned-block-item-after-inline-item-crash.html [ Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-001.html [ Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-002.html [ Crash ] crbug.com/1045599 virtual/layout-ng-grid/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-003.html [ Crash ] @@ -6408,7 +6370,12 @@ # Transform animation reftests crbug.com/1133901 virtual/threaded/external/wpt/css/css-transforms/animation/transform-interpolation-translate-em.html [ Failure ] -crbug.com/1131252 virtual/threaded/external/wpt/css/css-transforms/animation/transform-interpolation-skew.html [ Failure ] + +# Composited Transform animations WIP: +# Existing failure +crbug.com/1133901 virtual/composite-relative-keyframes/external/wpt/css/css-transforms/animation/transform-interpolation-translate-em.html [ Failure ] +# Failures from incomplete implementation +crbug.com/389359 virtual/composite-relative-keyframes/external/wpt/css/css-transforms/animation/transform-interpolation-translate.html [ Failure ] crbug.com/1136163 [ Linux ] external/wpt/pointerevents/pointerlock/pointerevent_movementxy_with_pointerlock.html [ Failure ] @@ -6453,9 +6420,6 @@ # WebRTC: Payload demuxing times out in Plan B. This is expected. crbug.com/1139052 virtual/webrtc-wpt-plan-b/external/wpt/webrtc/protocol/unbundled-pt-demuxing.https.html [ Timeout ] -# Sheriff 2020-10-19 -crbug.com/1139950 [ Linux ] virtual/text-antialias/hyphens/hyphens-auto.html [ Failure ] - # Rename document.featurePolicy to document.permissionsPolicy crbug.com/1123116 external/wpt/permissions-policy/payment-supported-by-permissions-policy.tentative.html [ Failure ] crbug.com/1123116 external/wpt/permissions-policy/permissions-policy-frame-policy-allowed-for-all.https.sub.html [ Failure ]
diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/web_tests/VirtualTestSuites index fa82973..c808aef 100644 --- a/third_party/blink/web_tests/VirtualTestSuites +++ b/third_party/blink/web_tests/VirtualTestSuites
@@ -61,6 +61,12 @@ "args": ["--enable-threaded-compositing"] }, { + "prefix": "composite-relative-keyframes", + "bases": ["external/wpt/css/css-transforms/animation"], + "args": ["--enable-threaded-compositing", + "--enable-blink-features=CompositeRelativeKeyframes"] + }, + { "prefix": "off-main-thread-css-paint", "bases": ["external/wpt/css/css-paint-api", "http/tests/csspaint"],
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json index bd4a929..ce47479 100644 --- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json +++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
@@ -167658,7 +167658,7 @@ [] ], "README.md": [ - "a3f718166a2c29d44b83f62c1aca622a80500711", + "96fdf8d770f566e145c8dd0a31e01e184778ecf0", [] ], "WebCryptoAPI": { @@ -210526,7 +210526,7 @@ [] ], "github-intro.md": [ - "44b6828ad3c83f1510c92ffab3d5b561e47469ce", + "3c45177dae2d61d186eca5be77ecaa8f063c789a", [] ], "h2tests.md": [
diff --git a/third_party/blink/web_tests/external/wpt/README.md b/third_party/blink/web_tests/external/wpt/README.md index a3f71816..96fdf8d 100644 --- a/third_party/blink/web_tests/external/wpt/README.md +++ b/third_party/blink/web_tests/external/wpt/README.md
@@ -102,13 +102,6 @@ someone with merge access to comment with "LGTM" or "w3c-test:mirror" to indicate the pull request has been checked. -Branches -======== - -In the vast majority of cases the **only** upstream branch that you -should need to care about is `master`. If you see other branches in -the repository, you can generally safely ignore them. - Contributing ============
diff --git a/third_party/blink/web_tests/external/wpt/css/cssom/medialist-interfaces-003.html b/third_party/blink/web_tests/external/wpt/css/cssom/medialist-interfaces-003.html index 1778c4a..0f1a88f3 100644 --- a/third_party/blink/web_tests/external/wpt/css/cssom/medialist-interfaces-003.html +++ b/third_party/blink/web_tests/external/wpt/css/cssom/medialist-interfaces-003.html
@@ -40,19 +40,17 @@ mediaList = styleSheet.media; } - // First explicit example input (first column) and output (second column) in specification. test(function() { setupMedia('not screen and (min-WIDTH:5px) AND (max-width:40px )'); - assert_equals(mediaList.mediaText, "not screen and (max-width: 40px) and (min-width: 5px)"); + assert_equals(mediaList.mediaText, "not screen and (min-width: 5px) and (max-width: 40px)"); }, "mediatest_mediaquery_serialize_1"); - // Second explicit example input (first column) and output (second column) in specification. test(function() { setupMedia('all and (color) and (color) '); - assert_equals(mediaList.mediaText, "(color)"); + assert_equals(mediaList.mediaText, "(color) and (color)"); }, "mediatest_mediaquery_serialize_2");
diff --git a/third_party/blink/web_tests/external/wpt/css/cssom/serialize-media-rule.html b/third_party/blink/web_tests/external/wpt/css/cssom/serialize-media-rule.html index 94b37dc..90561fd 100644 --- a/third_party/blink/web_tests/external/wpt/css/cssom/serialize-media-rule.html +++ b/third_party/blink/web_tests/external/wpt/css/cssom/serialize-media-rule.html
@@ -132,9 +132,9 @@ ); assert_equals( sheet.cssRules[1].cssText, - '@media screen and (color) and (max-width: 0px) {\n}' + '@media screen and (max-width: 0px) and (color) {\n}' ); -}, 'features - lexicographical sorting'); +}, 'features - no lexicographical sorting'); test(function(t) { var sheet = makeSheet(t);
diff --git a/third_party/blink/web_tests/external/wpt/docs/writing-tests/github-intro.md b/third_party/blink/web_tests/external/wpt/docs/writing-tests/github-intro.md index 44b6828..3c45177 100644 --- a/third_party/blink/web_tests/external/wpt/docs/writing-tests/github-intro.md +++ b/third_party/blink/web_tests/external/wpt/docs/writing-tests/github-intro.md
@@ -83,6 +83,10 @@ forked repository with the upstream repository will keep your forked local copy up-to-date with the latest commits. +In the vast majority of cases, the **only** upstream branch that you should +need to care about is `master`. If you see other branches in the repository, +you can generally safely ignore them. + 1. On the command line, navigate to to the directory where your forked copy of the repository is located. @@ -99,13 +103,16 @@ 4. To pull in changes in the original repository that are not present in your local repository first fetch them: - $ git fetch upstream + $ git fetch -p upstream Then merge them into your local repository: $ git merge upstream/master - For additional information, please see the [GitHub docs][github-fork-docs]. + We recommend using `-p` to "prune" the outdated branches that would + otherwise accumulate in your local repository. + +For additional information, please see the [GitHub docs][github-fork-docs]. ## Configure your environment
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.spacing.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.spacing.html index a4ec0833..6709269 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.spacing.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.spacing.html
@@ -8,7 +8,7 @@ <body class="show_output"> <h1>2d.text.drawing.style.spacing</h1> -<p class="desc">Testing baselines</p> +<p class="desc">Testing letter spacing and word spacing</p> <p class="output">Actual output:</p> @@ -16,7 +16,7 @@ <ul id="d"></ul> <script> -var t = async_test("Testing baselines"); +var t = async_test("Testing letter spacing and word spacing"); _addTest(function(canvas, ctx) { _assertSame(ctx.textLetterSpacing, 0, "ctx.textLetterSpacing", "0");
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.spacing.measure.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.spacing.measure.html new file mode 100644 index 0000000..d4f0faa --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.spacing.measure.html
@@ -0,0 +1,53 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. --> +<title>Canvas test: 2d.text.drawing.style.spacing.measure</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/html/canvas/resources/canvas-tests.js"></script> +<link rel="stylesheet" href="/html/canvas/resources/canvas-tests.css"> +<body class="show_output"> + +<h1>2d.text.drawing.style.spacing.measure</h1> +<p class="desc">Testing letter spacing and word spacing</p> + + +<p class="output">Actual output:</p> +<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas> + +<ul id="d"></ul> +<script> +var t = async_test("Testing letter spacing and word spacing"); +_addTest(function(canvas, ctx) { + +_assertSame(ctx.textLetterSpacing, 0, "ctx.textLetterSpacing", "0"); +_assertSame(ctx.textWordSpacing, 0, "ctx.textWordSpacing", "0"); +var width_normal = ctx.measureText('Hello World').width; + +ctx.textLetterSpacing = 3; +_assertSame(ctx.textLetterSpacing, 3, "ctx.textLetterSpacing", "3"); +_assertSame(ctx.textWordSpacing, 0, "ctx.textWordSpacing", "0"); +var width_with_spacing = ctx.measureText('Hello World').width; +// Add letter spacing after each letter, so 11 * 3 = 33px longer. +_assertSame(width_with_spacing, width_normal + 33, "width_with_spacing", "width_normal + 33"); + +ctx.textWordSpacing = 5; +ctx.textLetterSpacing = 0; +_assertSame(ctx.textLetterSpacing, 0, "ctx.textLetterSpacing", "0"); +_assertSame(ctx.textWordSpacing, 5, "ctx.textWordSpacing", "5"); +// Add Word Spacing between "Hello" and "World", so it's 5px longer. +width_with_spacing = ctx.measureText('Hello World').width; +_assertSame(width_with_spacing, width_normal + 5, "width_with_spacing", "width_normal + 5"); + +ctx.textLetterSpacing = -2; +ctx.textWordSpacing = -1; +_assertSame(ctx.textLetterSpacing, -2, "ctx.textLetterSpacing", "-2"); +_assertSame(ctx.textWordSpacing, -1, "ctx.textWordSpacing", "-1"); +// Add Word Spacing and letter spacing, so it's -11*2 = -22px from +// letter spacing and -1px from word spacing. +width_with_spacing = ctx.measureText('Hello World').width; +_assertSame(width_with_spacing, width_normal - 23, "width_with_spacing", "width_normal - 23"); + + +}); +</script> +
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.spacing.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.spacing.html index d3cf89a..512ed71 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.spacing.html +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.spacing.html
@@ -6,11 +6,11 @@ <script src="/html/canvas/resources/canvas-tests.js"></script> <h1>2d.text.drawing.style.spacing</h1> -<p class="desc">Testing baselines</p> +<p class="desc">Testing letter spacing and word spacing</p> <script> -var t = async_test("Testing baselines"); +var t = async_test("Testing letter spacing and word spacing"); var t_pass = t.done.bind(t); var t_fail = t.step_func(function(reason) { throw reason;
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.spacing.measure.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.spacing.measure.html new file mode 100644 index 0000000..fd6638d8 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.spacing.measure.html
@@ -0,0 +1,53 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. --> +<title>OffscreenCanvas test: 2d.text.drawing.style.spacing.measure</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/html/canvas/resources/canvas-tests.js"></script> + +<h1>2d.text.drawing.style.spacing.measure</h1> +<p class="desc">Testing letter spacing and word spacing</p> + + +<script> +var t = async_test("Testing letter spacing and word spacing"); +var t_pass = t.done.bind(t); +var t_fail = t.step_func(function(reason) { + throw reason; +}); +t.step(function() { + +var offscreenCanvas = new OffscreenCanvas(100, 50); +var ctx = offscreenCanvas.getContext('2d'); + +_assertSame(ctx.textLetterSpacing, 0, "ctx.textLetterSpacing", "0"); +_assertSame(ctx.textWordSpacing, 0, "ctx.textWordSpacing", "0"); +var width_normal = ctx.measureText('Hello World').width; + +ctx.textLetterSpacing = 3; +_assertSame(ctx.textLetterSpacing, 3, "ctx.textLetterSpacing", "3"); +_assertSame(ctx.textWordSpacing, 0, "ctx.textWordSpacing", "0"); +var width_with_spacing = ctx.measureText('Hello World').width; +// Add letter spacing after each letter, so 11 * 3 = 33px longer. +_assertSame(width_with_spacing, width_normal + 33, "width_with_spacing", "width_normal + 33"); + +ctx.textWordSpacing = 5; +ctx.textLetterSpacing = 0; +_assertSame(ctx.textLetterSpacing, 0, "ctx.textLetterSpacing", "0"); +_assertSame(ctx.textWordSpacing, 5, "ctx.textWordSpacing", "5"); +// Add Word Spacing between "Hello" and "World", so it's 5px longer. +width_with_spacing = ctx.measureText('Hello World').width; +_assertSame(width_with_spacing, width_normal + 5, "width_with_spacing", "width_normal + 5"); + +ctx.textLetterSpacing = -2; +ctx.textWordSpacing = -1; +_assertSame(ctx.textLetterSpacing, -2, "ctx.textLetterSpacing", "-2"); +_assertSame(ctx.textWordSpacing, -1, "ctx.textWordSpacing", "-1"); +// Add Word Spacing and letter spacing, so it's -11*2 = -22px from +// letter spacing and -1px from word spacing. +width_with_spacing = ctx.measureText('Hello World').width; +_assertSame(width_with_spacing, width_normal - 23, "width_with_spacing", "width_normal - 23"); +t.done(); + +}); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.spacing.measure.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.spacing.measure.worker.js new file mode 100644 index 0000000..3a787b7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.spacing.measure.worker.js
@@ -0,0 +1,49 @@ +// DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. +// OffscreenCanvas test in a worker:2d.text.drawing.style.spacing.measure +// Description:Testing letter spacing and word spacing +// Note: + +importScripts("/resources/testharness.js"); +importScripts("/html/canvas/resources/canvas-tests.js"); + +var t = async_test("Testing letter spacing and word spacing"); +var t_pass = t.done.bind(t); +var t_fail = t.step_func(function(reason) { + throw reason; +}); +t.step(function() { + +var offscreenCanvas = new OffscreenCanvas(100, 50); +var ctx = offscreenCanvas.getContext('2d'); + +_assertSame(ctx.textLetterSpacing, 0, "ctx.textLetterSpacing", "0"); +_assertSame(ctx.textWordSpacing, 0, "ctx.textWordSpacing", "0"); +var width_normal = ctx.measureText('Hello World').width; + +ctx.textLetterSpacing = 3; +_assertSame(ctx.textLetterSpacing, 3, "ctx.textLetterSpacing", "3"); +_assertSame(ctx.textWordSpacing, 0, "ctx.textWordSpacing", "0"); +var width_with_spacing = ctx.measureText('Hello World').width; +// Add letter spacing after each letter, so 11 * 3 = 33px longer. +_assertSame(width_with_spacing, width_normal + 33, "width_with_spacing", "width_normal + 33"); + +ctx.textWordSpacing = 5; +ctx.textLetterSpacing = 0; +_assertSame(ctx.textLetterSpacing, 0, "ctx.textLetterSpacing", "0"); +_assertSame(ctx.textWordSpacing, 5, "ctx.textWordSpacing", "5"); +// Add Word Spacing between "Hello" and "World", so it's 5px longer. +width_with_spacing = ctx.measureText('Hello World').width; +_assertSame(width_with_spacing, width_normal + 5, "width_with_spacing", "width_normal + 5"); + +ctx.textLetterSpacing = -2; +ctx.textWordSpacing = -1; +_assertSame(ctx.textLetterSpacing, -2, "ctx.textLetterSpacing", "-2"); +_assertSame(ctx.textWordSpacing, -1, "ctx.textWordSpacing", "-1"); +// Add Word Spacing and letter spacing, so it's -11*2 = -22px from +// letter spacing and -1px from word spacing. +width_with_spacing = ctx.measureText('Hello World').width; +_assertSame(width_with_spacing, width_normal - 23, "width_with_spacing", "width_normal - 23"); +t.done(); + +}); +done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.spacing.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.spacing.worker.js index 0499b310..1dac9f5 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.spacing.worker.js +++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/text/2d.text.drawing.style.spacing.worker.js
@@ -1,12 +1,12 @@ // DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. // OffscreenCanvas test in a worker:2d.text.drawing.style.spacing -// Description:Testing baselines +// Description:Testing letter spacing and word spacing // Note: importScripts("/resources/testharness.js"); importScripts("/html/canvas/resources/canvas-tests.js"); -var t = async_test("Testing baselines"); +var t = async_test("Testing letter spacing and word spacing"); var t_pass = t.done.bind(t); var t_fail = t.step_func(function(reason) { throw reason;
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml/element/drawing-text-to-the-canvas.yaml b/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml/element/drawing-text-to-the-canvas.yaml index a00caef17..921464e 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml/element/drawing-text-to-the-canvas.yaml +++ b/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml/element/drawing-text-to-the-canvas.yaml
@@ -739,7 +739,7 @@ }); - name: 2d.text.drawing.style.spacing - desc: Testing baselines + desc: Testing letter spacing and word spacing testing: - 2d.text.drawing.style.spacing code: | @@ -759,6 +759,39 @@ @assert ctx.textLetterSpacing === -1; @assert ctx.textWordSpacing === -1; +- name: 2d.text.drawing.style.spacing.measure + desc: Testing letter spacing and word spacing + testing: + - 2d.text.drawing.style.spacing + code: | + @assert ctx.textLetterSpacing === 0; + @assert ctx.textWordSpacing === 0; + var width_normal = ctx.measureText('Hello World').width; + + ctx.textLetterSpacing = 3; + @assert ctx.textLetterSpacing === 3; + @assert ctx.textWordSpacing === 0; + var width_with_spacing = ctx.measureText('Hello World').width; + // Add letter spacing after each letter, so 11 * 3 = 33px longer. + @assert width_with_spacing === width_normal + 33; + + ctx.textWordSpacing = 5; + ctx.textLetterSpacing = 0; + @assert ctx.textLetterSpacing === 0; + @assert ctx.textWordSpacing === 5; + // Add Word Spacing between "Hello" and "World", so it's 5px longer. + width_with_spacing = ctx.measureText('Hello World').width; + @assert width_with_spacing === width_normal + 5; + + ctx.textLetterSpacing = -2; + ctx.textWordSpacing = -1; + @assert ctx.textLetterSpacing === -2; + @assert ctx.textWordSpacing === -1; + // Add Word Spacing and letter spacing, so it's -11*2 = -22px from + // letter spacing and -1px from word spacing. + width_with_spacing = ctx.measureText('Hello World').width; + @assert width_with_spacing === width_normal - 23; + - name: 2d.text.drawing.style.fontKerning desc: Testing basic functionalities of fontKerning for canvas testing:
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml/offscreen/text.yaml b/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml/offscreen/text.yaml index 280f4335..1618739 100644 --- a/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml/offscreen/text.yaml +++ b/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml/offscreen/text.yaml
@@ -1236,7 +1236,7 @@ }).then(t_pass, t_fail); - name: 2d.text.drawing.style.spacing - desc: Testing baselines + desc: Testing letter spacing and word spacing testing: - 2d.text.drawing.style.spacing code: | @@ -1257,6 +1257,40 @@ @assert ctx.textWordSpacing === -1; t.done(); +- name: 2d.text.drawing.style.spacing.measure + desc: Testing letter spacing and word spacing + testing: + - 2d.text.drawing.style.spacing + code: | + @assert ctx.textLetterSpacing === 0; + @assert ctx.textWordSpacing === 0; + var width_normal = ctx.measureText('Hello World').width; + + ctx.textLetterSpacing = 3; + @assert ctx.textLetterSpacing === 3; + @assert ctx.textWordSpacing === 0; + var width_with_spacing = ctx.measureText('Hello World').width; + // Add letter spacing after each letter, so 11 * 3 = 33px longer. + @assert width_with_spacing === width_normal + 33; + + ctx.textWordSpacing = 5; + ctx.textLetterSpacing = 0; + @assert ctx.textLetterSpacing === 0; + @assert ctx.textWordSpacing === 5; + // Add Word Spacing between "Hello" and "World", so it's 5px longer. + width_with_spacing = ctx.measureText('Hello World').width; + @assert width_with_spacing === width_normal + 5; + + ctx.textLetterSpacing = -2; + ctx.textWordSpacing = -1; + @assert ctx.textLetterSpacing === -2; + @assert ctx.textWordSpacing === -1; + // Add Word Spacing and letter spacing, so it's -11*2 = -22px from + // letter spacing and -1px from word spacing. + width_with_spacing = ctx.measureText('Hello World').width; + @assert width_with_spacing === width_normal - 23; + t.done(); + - name: 2d.text.drawing.style.fontKerning desc: Testing basic functionalities of fontKerning for canvas testing:
diff --git a/third_party/blink/web_tests/fast/media/media-query-serialization.html b/third_party/blink/web_tests/fast/media/media-query-serialization.html deleted file mode 100644 index eb885a4..0000000 --- a/third_party/blink/web_tests/fast/media/media-query-serialization.html +++ /dev/null
@@ -1,25 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> -<html> -<head> -<link rel="help" href="http://dev.w3.org/csswg/cssom/" /> -<style type="text/css" media="NOT braille, tv and (orientation: landscape) AND (min-WIDTH:100px) and (max-width: 200px ), all and (color) and (color)"> -</style> -<script src="../../resources/js-test.js"></script> -</head> -<body> - - -<script> - -description( -'Test media query serialization. <a href="https://bugs.webkit.org/show_bug.cgi?id=39220">https://bugs.webkit.org/show_bug.cgi?id=39220</a>' -); - - -var expected = "not braille, tv and (max-width: 200px) and (min-width: 100px) and (orientation: landscape), (color)"; -shouldBe("document.styleSheets[0].media.mediaText", "expected"); - -</script> - -</body> -</html>
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/fetch/intercept-after-failure-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/fetch/intercept-after-failure-expected.txt new file mode 100644 index 0000000..371b9929 --- /dev/null +++ b/third_party/blink/web_tests/http/tests/inspector-protocol/fetch/intercept-after-failure-expected.txt
@@ -0,0 +1,18 @@ +Tests that we intercept errors reported instead of response when intercepting responses. +[mock fetcher] Request to http://127.0.0.1:8000/inspector-protocol/resources/inspector-protocol-page.html, type: Document +Testing continuing failed request... +[mock fetcher] Request to http://127.0.0.1:8000/devtools/network/resources/resource-deny.php, type: XHR +Intercepted GET http://127.0.0.1:8000/devtools/network/resources/resource-deny.php at response, error: AccessDenied +Fetched responsed with: Error: {} +Testing failing failed request... +[mock fetcher] Request to http://127.0.0.1:8000/devtools/network/resources/resource-deny.php, type: XHR +Intercepted GET http://127.0.0.1:8000/devtools/network/resources/resource-deny.php at response, error: AccessDenied +Fetched responsed with: Error: {} +Testing fulfilling failed request... +[mock fetcher] Request to http://127.0.0.1:8000/devtools/network/resources/resource-deny.php, type: XHR +Intercepted GET http://127.0.0.1:8000/devtools/network/resources/resource-deny.php at response, error: AccessDenied +Fetched responsed with: overriden response body +Testing we're not pausing on errors when only intercepting requests... +[mock fetcher] Request to http://127.0.0.1:8000/devtools/network/resources/resource-deny.php, type: XHR +Fetched responsed with: Error: {} +
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/fetch/intercept-after-failure.js b/third_party/blink/web_tests/http/tests/inspector-protocol/fetch/intercept-after-failure.js new file mode 100644 index 0000000..450765ef --- /dev/null +++ b/third_party/blink/web_tests/http/tests/inspector-protocol/fetch/intercept-after-failure.js
@@ -0,0 +1,93 @@ +(async function(testRunner) { + const {page, session, dp} = await testRunner.startBlank( + `Tests that we intercept errors reported instead of response when intercepting responses.`); + + function isResponse(params) { + return "responseErrorReason" in params || "responseStatusCode" in params; + } + + async function requestAndDump(expectResponse) { + const url = '/devtools/network/resources/resource-deny.php'; + const responsePromise = session.evaluateAsync(` + fetch("${url}").then(r => r.text()). + catch(error => 'Error: ' + JSON.stringify(error)) + `).then(response => testRunner.log(`Fetched responsed with: ${response}`)); + + const requestParams = (await dp.Fetch.onceRequestPaused()).params; + if (!requestParams.request.url.endsWith(url)) { + testRunner.fail(`Paused at wrong request, got ${requestParams.request.url}, expected ${url}`); + return; + } + if (isResponse(requestParams)) { + testRunner.fail(`Paused at wrong phase, expected request, got response`); + return; + } + dp.Fetch.continueRequest({requestId: requestParams.requestId}); + + if (expectResponse) { + const responseParams = (await dp.Fetch.onceRequestPaused()).params; + const phase = isResponse(responseParams) ? "response" : "request"; + const message = `Intercepted ${responseParams.request.method} ${responseParams.request.url} at ${phase}`; + const maybeError = responseParams.responseErrorReason ? `, error: ${responseParams.responseErrorReason}` : ''; + testRunner.log(message + maybeError); + } + return {requestId: requestParams.requestId, responsePromise}; + } + + // This browser-level FetchHelper is only for mocking error responses to the + // Fetch handler under test, which is on the renderer target (and gets + // inserted on top of the browser one). + const FetchHelper = await testRunner.loadScript('resources/fetch-test.js'); + const helper = new FetchHelper(testRunner, testRunner.browserP()); + await helper.enable(); + helper.onceRequest().continueRequest(); + helper.setLogPrefix("[mock fetcher] "); + + dp.Page.enable(); + dp.Page.reload(); + await dp.Page.onceLoadEventFired(); + + helper.onRequest(/resource-deny/).fail({ + errorReason: 'AccessDenied' + }); + + await dp.Fetch.enable({patterns: [{requestStage: 'Request'}, {requestStage: 'Response'}]}); + + { + testRunner.log(`Testing continuing failed request...`); + const {requestId, responsePromise} = await requestAndDump(true); + dp.Fetch.continueRequest({requestId}); + await responsePromise; + } + + { + testRunner.log(`Testing failing failed request...`); + const {requestId, responsePromise} = await requestAndDump(true); + dp.Fetch.failRequest({requestId, errorReason: 'Aborted'}); + await responsePromise; + } + + { + testRunner.log(`Testing fulfilling failed request...`); + const {requestId, responsePromise} = await requestAndDump(true); + dp.Fetch.fulfillRequest({ + requestId, + responseCode: 200, + responseHeaders: [], + body: btoa("overriden response body") + }); + await responsePromise; + } + + { + testRunner.log(`Testing we're not pausing on errors when only intercepting requests...`); + await dp.Fetch.enable({patterns: [{requestStage: 'Request'}]}); + dp.Fetch.onRequestPaused(event => { + if (isResponse(event.params)) + testRunner.fail(`Unexpected Fetch.requestPaused event for error response`); + }); + const {responsePromise} = await requestAndDump(false); + await responsePromise; + } + testRunner.completeTest(); +})
diff --git a/third_party/blink/web_tests/http/tests/mojo/deserializer.html b/third_party/blink/web_tests/http/tests/mojo/deserializer.html index ce8f252d..8603fca 100644 --- a/third_party/blink/web_tests/http/tests/mojo/deserializer.html +++ b/third_party/blink/web_tests/http/tests/mojo/deserializer.html
@@ -17,7 +17,7 @@ const s = deserializer.TestStruct_Deserialize(dataview); assert_equals(s.v1, 8899); assert_equals(s.v2, 9988); - assert_equals(s.v3, 7777); + assert_equals(s.v3, 7777n); }, 'deserializer'); </script>
diff --git a/third_party/blink/web_tests/http/tests/mojo/lite/constants.html b/third_party/blink/web_tests/http/tests/mojo/lite/constants.html index 4c94386..e8cb80e 100644 --- a/third_party/blink/web_tests/http/tests/mojo/lite/constants.html +++ b/third_party/blink/web_tests/http/tests/mojo/lite/constants.html
@@ -35,17 +35,14 @@ expectedValue: 4294967295, type: 'uint32' }, { - // TODO(crbug.com/1009262): Re-enable once we generate the right value for - // 64-bit constants. - // - // constant: mojo.tstest.kInt64Value, - // expectedValue: -9223372036854775807n, - // type: 'int64' - //}, { - // constant: mojo.tstest.kUint64Value, - // expectedValue: 9999999999999999999n, - // type: 'uint64' - //}, { + constant: mojo.tstest.INT64_VALUE, + expectedValue: -9223372036854775807n, + type: 'int64' +}, { + constant: mojo.tstest.UINT64_VALUE, + expectedValue: 9999999999999999999n, + type: 'uint64' +}, { constant: mojo.tstest.DOUBLE_VALUE, expectedValue: 3.14159, type: 'double'
diff --git a/third_party/blink/web_tests/inspector-protocol/css/css-get-media-queries-expected.txt b/third_party/blink/web_tests/inspector-protocol/css/css-get-media-queries-expected.txt index d7f9aba..ae7394a0a 100644 --- a/third_party/blink/web_tests/inspector-protocol/css/css-get-media-queries-expected.txt +++ b/third_party/blink/web_tests/inspector-protocol/css/css-get-media-queries-expected.txt
@@ -33,22 +33,6 @@ unit: em computed length: 1152 mediaRule #2 - text: (max-width: 10px) and (min-width: 20px) - source: mediaRule - range: {"endColumn":46,"endLine":13,"startColumn":7,"startLine":13} - computedText: (min-width: 20px) and (max-width: 10px) - mediaQuery #0 active: false - mediaExpression #0 - feature: max-width - value: 10 - unit: px - computed length: 10 - mediaExpression #1 - feature: min-width - value: 20 - unit: px - computed length: 20 -mediaRule #3 text: (max-width: 200px) and (min-width: 100px) source: mediaRule range: {"endColumn":52,"endLine":6,"startColumn":11,"startLine":6} @@ -64,7 +48,7 @@ value: 100 unit: px computed length: 100 -mediaRule #4 +mediaRule #3 text: (min-monochrome: 8) source: mediaRule range: {"endColumn":38,"endLine":22,"startColumn":11,"startLine":22} @@ -74,6 +58,17 @@ feature: min-monochrome value: 8 unit: +mediaRule #4 + text: (min-width: 100px) + source: mediaRule + range: {"endColumn":25,"endLine":4,"startColumn":7,"startLine":4} + computedText: (min-width: 100px) + mediaQuery #0 + mediaExpression #0 + feature: min-width + value: 100 + unit: px + computed length: 100 mediaRule #5 text: (min-width: 100px) source: mediaRule @@ -97,17 +92,6 @@ unit: px computed length: 100 mediaRule #7 - text: (min-width: 100px) - source: mediaRule - range: {"endColumn":25,"endLine":4,"startColumn":7,"startLine":4} - computedText: (min-width: 100px) - mediaQuery #0 - mediaExpression #0 - feature: min-width - value: 100 - unit: px - computed length: 100 -mediaRule #8 text: (min-width: 1px), (max-width: 1000em) source: mediaRule range: {"endColumn":1,"endLine":9,"startColumn":7,"startLine":1} @@ -124,6 +108,22 @@ value: 1000 unit: em computed length: 16000 +mediaRule #8 + text: (min-width: 20px) and (max-width: 10px) + source: mediaRule + range: {"endColumn":46,"endLine":13,"startColumn":7,"startLine":13} + computedText: (min-width: 20px) and (max-width: 10px) + mediaQuery #0 active: false + mediaExpression #0 + feature: min-width + value: 20 + unit: px + computed length: 20 + mediaExpression #1 + feature: max-width + value: 10 + unit: px + computed length: 10 mediaRule #9 text: (orientation: landscape), handheld and (max-resolution: 3dppx) source: importRule @@ -186,22 +186,6 @@ computedText: screen and (device-aspect-ratio: 16/9), screen and (device-aspect-ratio: 16/10) mediaList is empty mediaRule #16 - text: screen and (max-height: 4000px) and (min-width: 10px) - source: importRule - range: {"endColumn":42,"endLine":1,"startColumn":37,"startLine":0} - computedText: screen and\n(min-width: 10px) and (max-height: 4000px) - mediaQuery #0 - mediaExpression #0 - feature: max-height - value: 4000 - unit: px - computed length: 4000 - mediaExpression #1 - feature: min-width - value: 10 - unit: px - computed length: 10 -mediaRule #17 text: screen and (min-resolution: 2dppx) source: mediaRule range: {"endColumn":41,"endLine":7,"startColumn":7,"startLine":7} @@ -211,4 +195,20 @@ feature: min-resolution value: 2 unit: dppx +mediaRule #17 + text: screen and (min-width: 10px) and (max-height: 4000px) + source: importRule + range: {"endColumn":42,"endLine":1,"startColumn":37,"startLine":0} + computedText: screen and\n(min-width: 10px) and (max-height: 4000px) + mediaQuery #0 + mediaExpression #0 + feature: min-width + value: 10 + unit: px + computed length: 10 + mediaExpression #1 + feature: max-height + value: 4000 + unit: px + computed length: 4000
diff --git a/third_party/blink/web_tests/platform/win/virtual/text-antialias/hyphens/can-hyphenate-locale-expected.txt b/third_party/blink/web_tests/platform/win/virtual/text-antialias/hyphens/can-hyphenate-locale-expected.txt deleted file mode 100644 index f0064dc..0000000 --- a/third_party/blink/web_tests/platform/win/virtual/text-antialias/hyphens/can-hyphenate-locale-expected.txt +++ /dev/null
@@ -1,7 +0,0 @@ -This is a testharness.js-based test. -PASS This test requires "internals.canHyphenate" -FAIL "en-us" can hyphenate assert_true: expected true got false -FAIL "en-gu" can hyphenate assert_true: expected true got false -PASS "ja-jp" cannot hyphenate -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/virtual/composite-relative-keyframes/README.md b/third_party/blink/web_tests/virtual/composite-relative-keyframes/README.md new file mode 100644 index 0000000..7ae75f4 --- /dev/null +++ b/third_party/blink/web_tests/virtual/composite-relative-keyframes/README.md
@@ -0,0 +1,6 @@ +Tests for compositing transform animations with relative keyframes +(containing percentages), currently in-devellopment behind a flag. +Failures are currently expected due to incomplete invalidation checks. + +See design doc at +https://docs.google.com/document/d/1zgr5CHRMpvlqodn1e0eM9J3MjL2eEMfAHrHsZUK7gMM/
diff --git a/third_party/openxr/BUILD.gn b/third_party/openxr/BUILD.gn index 7c1161da..0577fcfd 100644 --- a/third_party/openxr/BUILD.gn +++ b/third_party/openxr/BUILD.gn
@@ -24,7 +24,6 @@ "src/src/common/extra_algorithms.h", "src/src/common/filesystem_utils.cpp", "src/src/common/filesystem_utils.hpp", - "src/src/common/hex_and_handles.cpp", "src/src/common/hex_and_handles.h", "src/src/common/loader_interfaces.h", "src/src/common/object_info.cpp", @@ -73,6 +72,7 @@ "-Wno-microsoft-cast", "-Wno-microsoft-include", "-Wno-unused-function", + "-Wno-extra-semi", ] }
diff --git a/third_party/openxr/README.chromium b/third_party/openxr/README.chromium index 9500a9d..d0853be 100644 --- a/third_party/openxr/README.chromium +++ b/third_party/openxr/README.chromium
@@ -1,8 +1,8 @@ Name: OpenXR SDK Short Name: OpenXR URL: https://github.com/KhronosGroup/OpenXR-SDK -Version: 1.0.5sd -Revision: 9e97b73e7dd2bfc07745489d728f6a36665c648f +Version: 1.0.9sd +Revision: 97cfe495bb7a3853266b646d1c79e169387f9c7a License: Apache 2.0 License File: src/LICENSE Security Critical: yes
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index dd00297..1cd2daaa 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -29950,6 +29950,7 @@ <int value="3704" label="NewLayoutOverflowDifferentAndAlreadyScrollsBlock"/> <int value="3705" label="NewLayoutOverflowDifferentAndAlreadyScrollsFlex"/> <int value="3706" label="UnicodeBidiPlainText"/> + <int value="3707" label="ColorSchemeDarkSupportedOnRoot"/> </enum> <enum name="FeaturePolicyAllowlistType"> @@ -42016,6 +42017,7 @@ <int value="-1645071473" label="ChromeColors:disabled"/> <int value="-1643933608" label="SyncAutofillWalletOfferData:enabled"/> <int value="-1641832607" label="DragToPinTabs:enabled"/> + <int value="-1639050182" label="NavigationPredictorRendererWarmup:enabled"/> <int value="-1638815914" label="enable-experimental-productivity-features"/> <int value="-1634878515" label="ChromeHomeModernLayout:enabled"/> <int value="-1634490190" @@ -43479,6 +43481,7 @@ <int value="-208587977" label="OmniboxMaterialDesignWeatherIcons:enabled"/> <int value="-208435024" label="EnableUsernameCorrection:enabled"/> <int value="-206393363" label="enable-scroll-prediction"/> + <int value="-205975637" label="WebUIDarkMode:enabled"/> <int value="-204355195" label="secondary-ui-md"/> <int value="-203968600" label="SyncSupportSecondaryAccount:disabled"/> <int value="-202007318" label="AndroidAIAFetching:enabled"/> @@ -44809,6 +44812,7 @@ <int value="1142788238" label="FontCacheScaling:disabled"/> <int value="1142970266" label="SignedExchangePrefetchCacheForNavigations:disabled"/> + <int value="1147924185" label="enable-navigation-predictor-renderer-warmup"/> <int value="1148284632" label="NewTabPageUIMd:disabled"/> <int value="1149417604" label="StreamlinedUsbPrinterSetup:disabled"/> <int value="1149731024" label="MultiDisplayOverviewAndSplitView:enabled"/> @@ -45075,6 +45079,7 @@ <int value="1393722373" label="SaveEditedPDFForm:disabled"/> <int value="1394896630" label="PrinterStatusDialog:enabled"/> <int value="1397069250" label="NetworkService:disabled"/> + <int value="1398049903" label="WebUIDarkMode:disabled"/> <int value="1398148960" label="LanguageSettingsUpdate:disabled"/> <int value="1398333721" label="ForceEnableDevicesPage:disabled"/> <int value="1399950951" label="AutofillTokenPrefixMatching:disabled"/> @@ -45513,6 +45518,7 @@ <int value="1851358497" label="enable-ash-sidebar"/> <int value="1851746253" label="ReducedReferrerGranularity:disabled"/> <int value="1852630189" label="NTPBookmarkSuggestions:disabled"/> + <int value="1854017276" label="NavigationPredictorRendererWarmup:disabled"/> <int value="1854048611" label="OmniboxSuggestionsRecyclerView:disabled"/> <int value="1854226565" label="AutofillNoLocalSaveOnUnmaskSuccess:enabled"/> <int value="1854646491" label="DetailedLanguageSettings:disabled"/> @@ -54393,6 +54399,8 @@ <int value="24" label="Wi-Fi: Metered Network"/> <int value="25" label="Cellular: Metered Network"/> <int value="26" label="Cellular: Add Network"/> + <int value="27" label="Cellular: Remove Network eSIM Profile"/> + <int value="28" label="Cellular: Rename Network eSIM Profile"/> <int value="100" label="Bluetooth: On/Off"/> <int value="101" label="Bluetooth: Connect To Device"/> <int value="102" label="Bluetooth: Disconnect From Device"/> @@ -61063,6 +61071,11 @@ <int value="166" label="HTTP_GOAWAY_INVALID_STREAM_ID"/> <int value="167" label="HTTP_GOAWAY_ID_LARGER_THAN_PREVIOUS"/> <int value="168" label="SILENT_IDLE_TIMEOUT"/> + <int value="169" label="QUIC_HTTP_RECEIVE_SPDY_SETTING"/> + <int value="170" label="QUIC_MISSING_WRITE_KEYS"/> + <int value="171" label="QUIC_HTTP_RECEIVE_SPDY_FRAME"/> + <int value="172" label="QUIC_KEY_UPDATE_ERROR"/> + <int value="173" label="QUIC_AEAD_LIMIT_REACHED"/> </enum> <enum name="QuicFailToSerializePacketLocation">
diff --git a/tools/metrics/histograms/histograms_xml/android/histograms.xml b/tools/metrics/histograms/histograms_xml/android/histograms.xml index 80a57b2..ec08e1f 100644 --- a/tools/metrics/histograms/histograms_xml/android/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/android/histograms.xml
@@ -179,7 +179,7 @@ </histogram> <histogram name="Android.BackgroundTaskScheduler.TaskLoadedNative" - enum="BackgroundTaskId" expires_after="2021-01-31"> + enum="BackgroundTaskId" expires_after="2021-04-18"> <owner>fgorski@chromium.org</owner> <owner>nyquist@chromium.org</owner> <summary>Records that a specific background task has loaded native.</summary> @@ -843,7 +843,7 @@ </histogram> <histogram base="true" name="Android.FeatureModules.InstallingStatus" - enum="FeatureModuleInstallingStatus" expires_after="2021-01-31"> + enum="FeatureModuleInstallingStatus" expires_after="2021-04-18"> <!-- Name completed by histogram_suffixes name="AndroidFeatureModuleName" -->
diff --git a/tools/metrics/histograms/histograms_xml/apps/histograms.xml b/tools/metrics/histograms/histograms_xml/apps/histograms.xml index 0dfc3a7..9f9ea8a7 100644 --- a/tools/metrics/histograms/histograms_xml/apps/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/apps/histograms.xml
@@ -358,7 +358,7 @@ </histogram> <histogram name="Apps.AppList.OsSettingsProvider.Error" - enum="OsSettingsProviderError" expires_after="2021-02-14"> + enum="OsSettingsProviderError" expires_after="2021-04-18"> <owner>jiameng@chromium.org</owner> <owner>tby@chromium.org</owner> <summary> @@ -553,7 +553,7 @@ </histogram> <histogram name="Apps.AppList.ZeroStateResults.ReceivedScore.DriveQuickAccess" - units="score" expires_after="2021-02-07"> + units="score" expires_after="2021-04-18"> <owner>wrong@chromium.org</owner> <owner>tby@chromium.org</owner> <owner>jiameng@chromium.org</owner> @@ -767,7 +767,7 @@ </histogram> <histogram name="Apps.AppListFolderOpened" enum="AppListFolderOpened" - expires_after="2021-01-31"> + expires_after="2021-04-18"> <owner>mmourgos@chromium.org</owner> <owner>newcomer@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/arc/histograms.xml b/tools/metrics/histograms/histograms_xml/arc/histograms.xml index bac9bb7..abd7b552 100644 --- a/tools/metrics/histograms/histograms_xml/arc/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/arc/histograms.xml
@@ -635,7 +635,7 @@ </histogram> <histogram name="Arc.OptInResult" enum="ArcOptInResult" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>elijahtaylor@google.com</owner> <owner>khmel@google.com</owner> <summary>Arc OptIn flow result.</summary>
diff --git a/tools/metrics/histograms/histograms_xml/ash/histograms.xml b/tools/metrics/histograms/histograms_xml/ash/histograms.xml index 10b668d..3705b05 100644 --- a/tools/metrics/histograms/histograms_xml/ash/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/ash/histograms.xml
@@ -628,7 +628,7 @@ </histogram> <histogram name="Ash.DragWindowFromShelf.PresentationTime.MaxLatency" - units="ms" expires_after="2021-02-03"> + units="ms" expires_after="2021-04-18"> <owner>tbarzic@chromium.org</owner> <owner>xdai@chromium.org</owner> <summary> @@ -827,7 +827,7 @@ </histogram> <histogram name="Ash.Login.OOBE.UserClicks" enum="OobeUserClickTarget" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>raleksandrov@google.com</owner> <owner>cros-oac@google.com</owner> <summary>What shelf buttons or trays are clicked in the OOBE.</summary> @@ -1175,7 +1175,7 @@ </histogram> <histogram name="Ash.Shelf.NumberOfItems" units="Icons" - expires_after="2021-01-17"> + expires_after="2021-04-18"> <owner>anasalazar@google.com</owner> <owner>mmourgos@google.com</owner> <summary> @@ -1461,7 +1461,7 @@ </histogram> <histogram base="true" name="Ash.SplitViewResize.PresentationTime" units="ms" - expires_after="2020-12-12"> + expires_after="2021-04-18"> <!-- Name completed by histogram_suffixes name="SplitViewResizeModes" --> <owner>amusbach@chromium.org</owner> @@ -1576,7 +1576,7 @@ </histogram> <histogram name="Ash.TabletMode.AnimationSmoothness.Exit" units="%" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>oshima@chromium.org</owner> <owner>sammiequon@chromium.org</owner> <summary> @@ -1655,7 +1655,7 @@ </histogram> <histogram name="Ash.TouchView.TouchViewInactiveTotal" units="minutes" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>girard@chromium.org</owner> <summary> The total time that TouchView is not active during a session.
diff --git a/tools/metrics/histograms/histograms_xml/assistant/histograms.xml b/tools/metrics/histograms/histograms_xml/assistant/histograms.xml index e11a284..510849f 100644 --- a/tools/metrics/histograms/histograms_xml/assistant/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/assistant/histograms.xml
@@ -81,7 +81,7 @@ </histogram> <histogram name="Assistant.ExitPoint" enum="AssistantExitPoint" - expires_after="2021-01-24"> + expires_after="2021-04-18"> <owner>xiaohuic@chromium.org</owner> <owner>meilinw@chromium.org</owner> <summary> @@ -140,7 +140,7 @@ </histogram> <histogram name="Assistant.QueryCountPerEntryPoint" enum="AssistantEntryPoint" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>xiaohuic@chromium.org</owner> <owner>meilinw@chromium.org</owner> <summary>Number of queries fired for each entry point.</summary> @@ -202,7 +202,7 @@ </histogram> <histogram name="Assistant.VoiceSearch.UserEligibility" enum="BooleanEligible" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>wylieb@chromium.org</owner> <owner>fgorski@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/autofill/histograms.xml b/tools/metrics/histograms/histograms_xml/autofill/histograms.xml index 7551d5a..b0fd7cea 100644 --- a/tools/metrics/histograms/histograms_xml/autofill/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/autofill/histograms.xml
@@ -170,7 +170,7 @@ </histogram> <histogram name="Autofill.BetterAuth.CardUnmaskDuration.Fido" units="ms" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>jsaul@google.com</owner> <owner>manasverma@google.com</owner> <owner>autofill-auth-team@google.com</owner> @@ -224,7 +224,7 @@ </histogram> <histogram name="Autofill.BetterAuth.FlowEvents" - enum="AutofillCreditCardAuthenticationEvents" expires_after="2021-02-14"> + enum="AutofillCreditCardAuthenticationEvents" expires_after="2021-04-18"> <owner>jsaul@google.com</owner> <owner>manasverma@google.com</owner> <owner>autofill-auth-team@google.com</owner> @@ -238,7 +238,7 @@ </histogram> <histogram base="true" name="Autofill.BetterAuth.OptInCalled" - enum="AutofillCreditCardWebauthnOptInParameters" expires_after="2021-02-14"> + enum="AutofillCreditCardWebauthnOptInParameters" expires_after="2021-04-18"> <owner>jsaul@google.com</owner> <owner>manasverma@google.com</owner> <owner>autofill-auth-team@google.com</owner> @@ -366,7 +366,7 @@ </histogram> <histogram base="true" name="Autofill.BetterAuth.WebauthnResult" - enum="AutofillCreditCardWebauthnResultMetric" expires_after="2021-02-14"> + enum="AutofillCreditCardWebauthnResultMetric" expires_after="2021-04-18"> <owner>jsaul@google.com</owner> <owner>manasverma@google.com</owner> <owner>autofill-auth-team@google.com</owner>
diff --git a/tools/metrics/histograms/histograms_xml/back_forward_cache/histograms.xml b/tools/metrics/histograms/histograms_xml/back_forward_cache/histograms.xml index 5855b98..01eaf98 100644 --- a/tools/metrics/histograms/histograms_xml/back_forward_cache/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/back_forward_cache/histograms.xml
@@ -38,7 +38,7 @@ </histogram> <histogram name="BackForwardCache.AllSites.HistoryNavigationOutcome" - enum="BackForwardCacheHistoryNavigationOutcome" expires_after="2021-02-14"> + enum="BackForwardCacheHistoryNavigationOutcome" expires_after="2021-04-18"> <owner>hajimehoshi@chromium.org</owner> <owner>bfcache-dev@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/blink/histograms.xml b/tools/metrics/histograms/histograms_xml/blink/histograms.xml index 099f562..7e20897 100644 --- a/tools/metrics/histograms/histograms_xml/blink/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/blink/histograms.xml
@@ -52,7 +52,7 @@ </histogram> <histogram name="Blink.Animation.CompositedAnimationFailureReason" - enum="CompositorAnimationsFailureReason" expires_after="2021-02-14"> + enum="CompositorAnimationsFailureReason" expires_after="2021-04-18"> <owner>smcgruer@chromium.org</owner> <owner>animations-dev@chromium.org</owner> <summary> @@ -558,7 +558,7 @@ </histogram> <histogram name="Blink.DecodedImage.WebPFileFormat" enum="WebPFileFormat" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>mcasas@chromium.org</owner> <owner>andrescj@chromium.org</owner> <summary> @@ -1347,7 +1347,7 @@ </histogram> <histogram name="Blink.MainFrame.UpdateTime" units="microseconds" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <!-- Name completed by histogram_suffixes name="BlinkUpdateTimePreFCPSuffixes" --> <!-- Name completed by histogram_suffixes name="BlinkUpdateTimePostFCPSuffixes" --> @@ -1972,7 +1972,7 @@ </histogram> <histogram name="Blink.UseCounter.FeaturePolicy.HeaderAllowlistType" - enum="FeaturePolicyAllowlistType" expires_after="2021-01-03"> + enum="FeaturePolicyAllowlistType" expires_after="2021-04-18"> <owner>iclelland@chromium.org</owner> <owner>feature-control@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/browser/histograms.xml b/tools/metrics/histograms/histograms_xml/browser/histograms.xml index 02be1c9..c5e2edb 100644 --- a/tools/metrics/histograms/histograms_xml/browser/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/browser/histograms.xml
@@ -63,7 +63,7 @@ </histogram> <histogram name="Browser.PaintPreview.Capture.CompressedOnDiskSize" units="KB" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>ckitagawa@chromium.org</owner> <owner>mahmoudi@chromium.org</owner> <owner>fredmello@chromium.org</owner> @@ -158,7 +158,7 @@ </histogram> <histogram name="Browser.PaintPreview.Player.LinkClicked" - units="BooleanSuccess" expires_after="2021-02-14"> + units="BooleanSuccess" expires_after="2021-04-18"> <owner>ckitagawa@chromium.org</owner> <owner>mahmoudi@chromium.org</owner> <owner>fredmello@chromium.org</owner> @@ -166,7 +166,7 @@ </histogram> <histogram name="Browser.PaintPreview.Player.TimeToFirstBitmap" units="ms" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>ckitagawa@chromium.org</owner> <owner>mahmoudi@chromium.org</owner> <owner>fredmello@chromium.org</owner> @@ -189,7 +189,7 @@ </histogram> <histogram name="Browser.PaintPreview.TabbedPlayer.ExitCause" - enum="TabbedPaintPreviewExitCause" expires_after="2021-02-14"> + enum="TabbedPaintPreviewExitCause" expires_after="2021-04-18"> <owner>ckitagawa@chromium.org</owner> <owner>mahmoudi@chromium.org</owner> <owner>fredmello@chromium.org</owner> @@ -245,7 +245,7 @@ </histogram> <histogram base="true" name="Browser.PaintPreview.TabbedPlayer.UpTime" - units="ms" expires_after="2021-02-14"> + units="ms" expires_after="2021-04-18"> <owner>ckitagawa@chromium.org</owner> <owner>mahmoudi@chromium.org</owner> <owner>fredmello@chromium.org</owner> @@ -494,7 +494,7 @@ </histogram> <histogram name="BrowserRenderProcessHost.ChildKills.OOM" enum="RendererType" - expires_after="2021-01-03"> + expires_after="2021-04-18"> <owner>oshima@chromium.org</owner> <summary> Out of BrowserRenderProcessHost.ChildKills, numer of kills due to SIGKILL,
diff --git a/tools/metrics/histograms/histograms_xml/chromeos/histograms.xml b/tools/metrics/histograms/histograms_xml/chromeos/histograms.xml index 6ccc73e..1e845d4 100644 --- a/tools/metrics/histograms/histograms_xml/chromeos/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/chromeos/histograms.xml
@@ -251,7 +251,7 @@ </histogram> <histogram name="ChromeOS.CWP.CollectPerf" - enum="ChromeOSProfileCollectionStatus" expires_after="2021-02-14"> + enum="ChromeOSProfileCollectionStatus" expires_after="2021-04-18"> <owner>aalexand@google.com</owner> <owner>gmx@chromium.org</owner> <summary> @@ -282,7 +282,7 @@ </histogram> <histogram name="ChromeOS.CWP.ParseCPUFrequencies" - enum="ChromeOSParseCPUFrequencyStatus" expires_after="2021-02-14"> + enum="ChromeOSParseCPUFrequencyStatus" expires_after="2021-04-18"> <owner>gmx@chromium.org</owner> <owner>cwp-team@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/compositing/histograms.xml b/tools/metrics/histograms/histograms_xml/compositing/histograms.xml index 7176dd4..fc6ba91 100644 --- a/tools/metrics/histograms/histograms_xml/compositing/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/compositing/histograms.xml
@@ -179,7 +179,7 @@ </histogram> <histogram name="Compositing.DirectRenderer.PartialSwap.TotalDamage" units="%" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>vasilyt@chromium.org</owner> <owner>backer@chromium.org</owner> <summary> @@ -329,7 +329,7 @@ </histogram> <histogram name="Compositing.Display.VizScheduledDrawToGpuStartedDrawUs" - units="microseconds" expires_after="2021-02-14"> + units="microseconds" expires_after="2021-04-18"> <owner>vasilyt@chromium.org</owner> <owner>backer@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/content/histograms.xml b/tools/metrics/histograms/histograms_xml/content/histograms.xml index 0a37d5a..566d71d 100644 --- a/tools/metrics/histograms/histograms_xml/content/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/content/histograms.xml
@@ -633,7 +633,7 @@ </histogram> <histogram name="ContentSuggestions.Feed.DisplayStatusOnOpen" - enum="ContentSuggestionsDisplayStatus" expires_after="2021-02-14"> + enum="ContentSuggestionsDisplayStatus" expires_after="2021-04-18"> <owner>carlosk@chromium.org</owner> <owner>harringtond@chromium.org</owner> <owner>feed@chromium.org</owner> @@ -846,7 +846,7 @@ </histogram> <histogram name="ContentSuggestions.Feed.Network.RequestStatusCode" - enum="CombinedHttpResponseAndNetErrorCode" expires_after="2021-02-14"> + enum="CombinedHttpResponseAndNetErrorCode" expires_after="2021-04-18"> <owner>carlosk@chromium.org</owner> <owner>harringtond@chromium.org</owner> <owner>feed@chromium.org</owner> @@ -1140,7 +1140,7 @@ </histogram> <histogram name="ContentSuggestions.Feed.UploadActionsBatchStatus" - enum="FeedUploadActionsBatchStatus" expires_after="2021-02-14"> + enum="FeedUploadActionsBatchStatus" expires_after="2021-04-18"> <owner>iwells@chromium.org</owner> <owner>harringtond@chromium.org</owner> <owner>feed@chromium.org</owner>
diff --git a/tools/metrics/histograms/histograms_xml/cras/histograms.xml b/tools/metrics/histograms/histograms_xml/cras/histograms.xml index 0bf37744..2c0d8188 100644 --- a/tools/metrics/histograms/histograms_xml/cras/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/cras/histograms.xml
@@ -58,7 +58,7 @@ </histogram> <histogram name="Cras.DeviceTypeOutput" enum="CrasDeviceType" - expires_after="2021-01-31"> + expires_after="2021-04-18"> <owner>yuhsuan@chromium.org</owner> <owner>chromeos-audio@google.com</owner> <summary> @@ -122,7 +122,7 @@ </histogram> <histogram name="Cras.HfpWidebandSpeechSupported" units="BooleanSupported" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>hychao@chromium.org</owner> <owner>chromeos-audio@google.com</owner> <summary> @@ -404,7 +404,7 @@ </histogram> <histogram name="Cras.kHfpWidebandSpeechSelectedCodec" enum="CrasHfpCodec" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>hychao@chromium.org</owner> <owner>chromeos-audio@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/crostini/histograms.xml b/tools/metrics/histograms/histograms_xml/crostini/histograms.xml index 5a058b1..03c73c9 100644 --- a/tools/metrics/histograms/histograms_xml/crostini/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/crostini/histograms.xml
@@ -279,7 +279,7 @@ </histogram> <histogram name="Crostini.SettingsEvent" enum="CrostiniSettingsEvent" - expires_after="2021-01-31"> + expires_after="2021-04-18"> <owner>clumptini@google.com</owner> <owner>tbuckley@chromium.org</owner> <owner>victorhsieh@chromium.org</owner> @@ -349,7 +349,7 @@ </histogram> <histogram name="Crostini.TimeToInstallCancel" units="ms" - expires_after="2021-01-31"> + expires_after="2021-04-18"> <owner>clumptini@google.com</owner> <owner>tbuckley@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/download/histograms.xml b/tools/metrics/histograms/histograms_xml/download/histograms.xml index a371f73..c3e28a8 100644 --- a/tools/metrics/histograms/histograms_xml/download/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/download/histograms.xml
@@ -55,7 +55,7 @@ </histogram> <histogram name="Download.ContentType.Audio" enum="DownloadAudioType" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>xingliu@chromium.org</owner> <summary>Types of audio files that are downloaded.</summary> </histogram>
diff --git a/tools/metrics/histograms/histograms_xml/event/histograms.xml b/tools/metrics/histograms/histograms_xml/event/histograms.xml index ade4fc5..0ca229fb 100644 --- a/tools/metrics/histograms/histograms_xml/event/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/event/histograms.xml
@@ -316,7 +316,7 @@ </histogram> <histogram name="Event.Latency.EndToEnd.TouchpadPinch2" units="microseconds" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>nzolghadr@chromium.org</owner> <owner>input-dev@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/extensions/histograms.xml b/tools/metrics/histograms/histograms_xml/extensions/histograms.xml index 17544f4..da9222d 100644 --- a/tools/metrics/histograms/histograms_xml/extensions/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/extensions/histograms.xml
@@ -1319,7 +1319,7 @@ </histogram> <histogram name="Extensions.ForceInstalledCreationStage" - enum="ExtensionInstallCreationStage" expires_after="2021-01-24"> + enum="ExtensionInstallCreationStage" expires_after="2021-04-18"> <owner>swapnilgupta@google.com</owner> <owner>burunduk@chromium.org</owner> <owner>managed-devices@google.com</owner> @@ -1471,7 +1471,7 @@ <histogram name="Extensions.ForceInstalledFailureWithCrxHeaderInvalidIsCWS" enum="IsForceInstalledExtensionFailedWithCrxHeaderInvalidFromCWSBoolean" - expires_after="2021-01-24"> + expires_after="2021-04-18"> <owner>swapnilgupta@google.com</owner> <owner>burunduk@chromium.org</owner> <owner>managed-devices@google.com</owner> @@ -1513,7 +1513,7 @@ </histogram> <histogram name="Extensions.ForceInstalledHttpErrorCode2" - enum="HttpResponseCode" expires_after="2021-01-24"> + enum="HttpResponseCode" expires_after="2021-04-18"> <owner>burunduk@chromium.org</owner> <owner>swapnilgupta@google.com</owner> <owner>managed-devices@google.com</owner>
diff --git a/tools/metrics/histograms/histograms_xml/gcm/histograms.xml b/tools/metrics/histograms/histograms_xml/gcm/histograms.xml index 20b8856..1663291 100644 --- a/tools/metrics/histograms/histograms_xml/gcm/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/gcm/histograms.xml
@@ -389,7 +389,7 @@ </histogram> <histogram name="GCM.SendWebPushMessageResult" enum="SendWebPushMessageResult" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>alexchau@chromium.org</owner> <owner>peter@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/histogram_suffixes_list.xml b/tools/metrics/histograms/histograms_xml/histogram_suffixes_list.xml index ae89c2e..7e8db6b 100644 --- a/tools/metrics/histograms/histograms_xml/histogram_suffixes_list.xml +++ b/tools/metrics/histograms/histograms_xml/histogram_suffixes_list.xml
@@ -718,14 +718,6 @@ <affected-histogram name="Arc.boot_progress_system_run"/> </histogram_suffixes> -<histogram_suffixes name="AndroidCrashUploadTypes" separator="_"> - <suffix name="Browser" label="Measures browser crash uploads."/> - <suffix name="GPU" label="Measures GPU crash uploads."/> - <suffix name="Other" label="Measures other crash uploads."/> - <suffix name="Renderer" label="Measures renderer crash uploads."/> - <affected-histogram name="Tab.AndroidCrashUpload"/> -</histogram_suffixes> - <histogram_suffixes name="AndroidDownloadTypes" separator="."> <suffix name="Audio" label=""/> <suffix name="Document" label=""/> @@ -7374,18 +7366,6 @@ <affected-histogram name="Net.DNS.HTTPSSVC.RecordIntegrity.ResolveTimeRatio"/> </histogram_suffixes> -<histogram_suffixes name="HubAndSpokeNavigationUsageType" separator="."> - <suffix name="FromDefaultSearchEngine" - label="User navigates to a new page from default search engine result - page"/> - <suffix name="FromFormSubmit" - label="User navigates to a new page from a form submit page"/> - <suffix name="FromOther" - label="User navigates to a new page from a page other than a default - search engine result page or a form submit page"/> - <affected-histogram name="Tabs.Tasks.HubAndSpokeNavigationUsage"/> -</histogram_suffixes> - <histogram_suffixes name="IdleSktToImpact" separator="_"> <suffix name="idle_timeout_5" label="with 5-second unused idle socket timeout"/> @@ -7501,17 +7481,6 @@ <affected-histogram name="InputMethod.Commit.Type"/> </histogram_suffixes> -<histogram_suffixes name="IMEVKLatency" separator="."> - <suffix name="BackgroundSettingsFetched" - label="Latency for settings fetched from background"/> - <suffix name="HtmlLoaded" label="Latency for the page is loaded"/> - <suffix name="KeyboardCreated" label="Latency for the keyboard is created"/> - <suffix name="KeyboardShown" label="Latency for keyboard is shown"/> - <suffix name="KeysetLoaded" label="Latency for keyset config is loaded"/> - <suffix name="LayoutLoaded" label="Latency for layout definition is loaded"/> - <affected-histogram name="InputMethod.VirtualKeyboard.InitLatency"/> -</histogram_suffixes> - <histogram_suffixes name="ImmediatePageLoadTiming" separator="."> <obsolete> Removed by PageLoad.PaintTiming.NavigationToFirstContentfulPaint. @@ -8495,15 +8464,6 @@ name="ResourceCoordinator.LocalDB.ObservationTimeBeforeFirstUse"/> </histogram_suffixes> -<histogram_suffixes name="LocalStorageContextOpenReasons" separator=""> - <suffix name="CommitErrors" label="After too many commit errors."/> - <suffix name="InvalidVersion" label="After an invalid version was read."/> - <suffix name="OpenFailed" label="After opening the DB failed."/> - <suffix name="ReadVersionError" - label="After reading the schema version failed."/> - <affected-histogram name="LocalStorageContext.OpenResultAfter"/> -</histogram_suffixes> - <histogram_suffixes name="LocationAttachedStatus" separator="."> <suffix name="LocationAttached" label="This histogram is for when the location was successfully @@ -11845,15 +11805,6 @@ <affected-histogram name="OfflinePages.Prefetching.ActionRetryAttempts"/> </histogram_suffixes> -<histogram_suffixes name="OffTheRecordType" separator="."> - <obsolete> - Removed March 2019 - </obsolete> - <suffix name="NonOTR" label="Non off-the-record profile"/> - <suffix name="OTR" label="Off-the-record profile"/> - <affected-histogram name="Tab.TabUnderAction"/> -</histogram_suffixes> - <histogram_suffixes name="Omnibox_BitmapFetchLatencyCacheSplit" separator="."> <suffix name="Cached" label="Bitmaps returned from cache"/> <suffix name="Uncached" label="Bitmaps not returned from cache"/> @@ -18560,45 +18511,6 @@ <affected-histogram name="Browser.PaintPreview.TabbedPlayer.UpTime"/> </histogram_suffixes> -<histogram_suffixes name="TabCountMetrics" separator="."> - <suffix name="ByTabCount.0Tabs" - label="Recorded with 0 tabs open in the browser."/> - <suffix name="ByTabCount.1Tab" - label="Recorded with 1 tab open in the browser."/> - <suffix name="ByTabCount.2Tabs" - label="Recorded with 2 tabs open in the browser."/> - <suffix name="ByTabCount.3To4Tabs" - label="Recorded with between 3 and 4 tabs open in the browser."/> - <suffix name="ByTabCount.5To7Tabs" - label="Recorded with between 5 and 7 tabs open in the browser."/> - <suffix name="ByTabCount.8To19Tabs" - label="Recorded with between 8 and 19 tabs open in the browser."/> - <suffix name="ByTabCount.20To39Tabs" - label="Recorded with between 20 and 39 tabs open in the browser."/> - <suffix name="ByTabCount.40OrMoreTabs" - label="Recorded with 40 or more tabs open in the browser."/> - <affected-histogram name="TabHoverCards.TabHoverCardsSeenBeforeTabSelection"/> -</histogram_suffixes> - -<histogram_suffixes name="TabCreatedReason" separator="."> - <suffix name="FromExternalApp" - label="This bucket is for any tabs that are created because of custom - tabs or intends from other apps. This includes tab creation via - intent from other app, creation via homescreen link, creation - via custom tab."/> - <suffix name="FromManuallyCreated" - label="This bucket is for any tabs that are created manually. This - includes new tab creation from toolbar menu, creation from long - press open, creation at tab switcher, creation from launcher - shortcut menu by long press the Chrome icon."/> - <suffix name="FromOthers" label="This is the default bucket."/> - <suffix name="FromTargetBlank" - label="This bucket is for any tabs that were created from a target - blank link. e.g. tehchmeme.com will create tabs this way."/> - <affected-histogram name="Tabs.Tasks.TabCreated.Count"/> - <affected-histogram name="Tabs.Tasks.TabCreated.Percent"/> -</histogram_suffixes> - <histogram_suffixes name="TabletOrClamshellMode" separator="."> <suffix name="ClamshellMode" label="Clamshell Mode Enabled"/> <suffix name="TabletMode" label="Tablet Mode Enabled"/> @@ -18639,88 +18551,6 @@ <affected-histogram name="Ash.Overview.WindowDrag.PresentationTime"/> </histogram_suffixes> -<histogram_suffixes name="TabNewTabOnload" separator="."> - <suffix name="Google" label="New Tab page for Google."> - <obsolete> - Removed 07/2020, base histogram no longer recorded on dektop. - </obsolete> - </suffix> - <suffix name="Local" label="Local New Tab page."> - <obsolete> - Removed 07/2020, base histogram no longer recorded on dektop. - </obsolete> - </suffix> - <suffix name="LocalGoogle" label="Local New Tab page for Google."> - <obsolete> - Removed 06/2017, never worked correctly. - </obsolete> - </suffix> - <suffix name="LocalOther" - label="Local New Tab page for a non-Google provider."> - <obsolete> - Removed 06/2017, never worked correctly. - </obsolete> - </suffix> - <suffix name="Other" label="New Tab page for a non-Google provider."> - <obsolete> - Removed 07/2020, base histogram no longer recorded on dektop. - </obsolete> - </suffix> - <affected-histogram name="Tab.NewTabOnload"/> -</histogram_suffixes> - -<histogram_suffixes name="TabOffsetOfSwitchComponentList" separator="."> - <suffix name="GridTabSwitcher" label="Tab switcher in grid layout"/> - <suffix name="TabGridSheet" - label="The bottom sheet that show a list of Tabs in a grid"> - <obsolete> - Unused as of 11/2019, sheet UI is no longer used. - </obsolete> - </suffix> - <suffix name="TabStrip" label="The TabStrip componets"/> - <affected-histogram name="Tabs.TabOffsetOfSwitch"/> -</histogram_suffixes> - -<histogram_suffixes name="Tabs_SwitchLatency" separator="_"> - <suffix name="Actual" - label="The time it takes to show a real live frame from the renderer on - the screen after the user selects a tab. This doesn not include - fake snapshots or other tricks, but the actual time to get real - interactable content displayed."/> - <suffix name="Perceived" - label="The time it takes to show something on the screen after the user - selects a tab. This might be a fake snapshot or it might just be - the time it takes to show the real content if no snapshot was - available."/> - <affected-histogram name="Tabs.SwitchFromCloseLatency"/> - <affected-histogram name="Tabs.SwitchFromExitLatency"/> - <affected-histogram name="Tabs.SwitchFromNewLatency"/> - <affected-histogram name="Tabs.SwitchFromUserLatency"/> -</histogram_suffixes> - -<histogram_suffixes name="Tabs_TabUsageIntervalLength" separator="_"> - <suffix name="30" label="30 seconds"/> - <suffix name="60" label="1 minute"/> - <suffix name="600" label="10 minutes"/> - <suffix name="3600" label="1 hour"/> - <suffix name="18000" label="5 hours"/> - <suffix name="43200" label="12 hours"/> - <affected-histogram name="Tabs.UnusedAndClosedInInterval.Count"/> - <affected-histogram name="Tabs.UnusedInInterval.Count"/> - <affected-histogram name="Tabs.UsedAndClosedInInterval.Count"/> - <affected-histogram name="Tabs.UsedInInterval.Count"/> -</histogram_suffixes> - -<histogram_suffixes name="TabSuggestionType" separator="."> - <suffix name="ClosingSuggestion" - label="This bukect is for the closing suggestion. It suggests users to - close the recommended tabs."/> - <suffix name="GroupingSuggestion" - label="This bukect is for the grouping suggestion. It suggests users to - group the recommended tabs."/> - <affected-histogram name="Tabs.Suggestions.NumSuggestionsChanged"/> -</histogram_suffixes> - <histogram_suffixes name="TabSwitchingType" separator="."> <suffix name="NoSavedFrames" label="The time from the input timestamp on a tab switch, until the @@ -19403,20 +19233,6 @@ <affected-histogram name="Media.Video.Roughness"/> </histogram_suffixes> -<histogram_suffixes name="Visibility" separator="."> - <suffix name="Hidden" - label="The tab is not visible because it is in a minimized window - (desktop) or background app (mobile), or because it isn't active - in its tab strip."/> - <suffix name="Occluded" - label="The tab is fully covered by other windows. ChromeOS and Mac OS X - only."/> - <suffix name="Visible" - label="The tab is visible. Except on ChromeOS and Mac OS X, a tab fully - covered by other windows is considered visible."/> - <affected-histogram name="Tab.Visibility"/> -</histogram_suffixes> - <histogram_suffixes name="VR_Mode" separator="."> <obsolete> Removed 06/2020.
diff --git a/tools/metrics/histograms/histograms_xml/input/histograms.xml b/tools/metrics/histograms/histograms_xml/input/histograms.xml index 68cae5f..9233adc2 100644 --- a/tools/metrics/histograms/histograms_xml/input/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/input/histograms.xml
@@ -596,15 +596,6 @@ </summary> </histogram> -<histogram name="InputMethod.VirtualKeyboard.InitLatency" units="ms" - expires_after="M95"> - <owner>shend@chromium.org</owner> - <owner>essential-inputs-team@google.com</owner> - <summary> - The on-screen keyboard initialization latency in milliseconds. - </summary> -</histogram> - <histogram name="InputMethod.VirtualKeyboard.InitLatency.KeyboardShownLongTail" units="ms" expires_after="2021-03-28"> <owner>jopalmer@chromium.org</owner> @@ -616,6 +607,29 @@ </summary> </histogram> +<histogram name="InputMethod.VirtualKeyboard.InitLatency{IMEVKLatency}" + units="ms" expires_after="M95"> + <owner>shend@chromium.org</owner> + <owner>essential-inputs-team@google.com</owner> + <summary> + The on-screen keyboard initialization latency in milliseconds. + {IMEVKLatency} + </summary> + <token key="IMEVKLatency"> + <variant name=""/> + <variant name=".BackgroundSettingsFetched" + summary="Latency for settings fetched from background"/> + <variant name=".HtmlLoaded" summary="Latency for the page is loaded"/> + <variant name=".KeyboardCreated" + summary="Latency for the keyboard is created"/> + <variant name=".KeyboardShown" summary="Latency for keyboard is shown"/> + <variant name=".KeysetLoaded" + summary="Latency for keyset config is loaded"/> + <variant name=".LayoutLoaded" + summary="Latency for layout definition is loaded"/> + </token> +</histogram> + <histogram name="InputMethod.VirtualKeyboard.Layout" enum="IMEVKLayout" expires_after="M95"> <owner>shend@chromium.org</owner>
diff --git a/tools/metrics/histograms/histograms_xml/ios/histograms.xml b/tools/metrics/histograms/histograms_xml/ios/histograms.xml index bfccb0ac..9bb123b 100644 --- a/tools/metrics/histograms/histograms_xml/ios/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/ios/histograms.xml
@@ -357,6 +357,16 @@ </summary> </histogram> +<histogram name="IOS.Incognito.TimeSpent" units="ms" expires_after="2020-12-25"> + <owner>olivierrobin@chromium.org</owner> + <owner>thegreenfrog@chromium.org</owner> + <summary> + The time incognito profile is displayed to the user. Incognito sessions + during less than 10 seconds are not reported. Incognito session paused for + less than 10 seconds is resumed. + </summary> +</histogram> + <histogram name="IOS.IPHBubbleDismissalReason" enum="BubbleDismissalReason" expires_after="M77"> <owner>pkl@chromium.org</owner> @@ -559,7 +569,7 @@ </histogram> <histogram name="IOS.PageLoadCount.LoadingStarted" units="units" - expires_after="2020-12-20"> + expires_after="2021-04-18"> <owner>danyao@chromium.org</owner> <summary> The "true" value of this boolean histogram counts the number of @@ -589,7 +599,7 @@ </histogram> <histogram name="IOS.Reauth.Password.Autofill" enum="ReauthenticationEvent" - expires_after="2021-02-01"> + expires_after="2021-04-18"> <owner>javierrobles@chromium.org</owner> <owner>bling-team@google.com</owner> <summary> @@ -599,7 +609,7 @@ </histogram> <histogram name="IOS.Reauth.Password.ManualFallback" - enum="ReauthenticationEvent" expires_after="2021-02-01"> + enum="ReauthenticationEvent" expires_after="2021-04-18"> <owner>javierrobles@chromium.org</owner> <owner>bling-team@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/local/histograms.xml b/tools/metrics/histograms/histograms_xml/local/histograms.xml index 33812b8..efccf40 100644 --- a/tools/metrics/histograms/histograms_xml/local/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/local/histograms.xml
@@ -315,14 +315,27 @@ </summary> </histogram> -<histogram base="true" name="LocalStorageContext.OpenResultAfter" +<histogram + name="LocalStorageContext.OpenResultAfter{LocalStorageContextOpenReasons}" enum="LocalStorageOpenError" expires_after="M87"> -<!-- Name completed by histogram_suffixes name="LocalStorageContextOpenReasons" --> - <owner>mek@chromium.org</owner> <summary> The result of opening the LevelDB database that backs LocalStorage. + {LocalStorageContextOpenReasons} </summary> + <token key="LocalStorageContextOpenReasons"> + <variant name=""> + <obsolete> + Base histogram. Use suffixes of this histogram instead. + </obsolete> + </variant> + <variant name="CommitErrors" summary="After too many commit errors."/> + <variant name="InvalidVersion" + summary="After an invalid version was read."/> + <variant name="OpenFailed" summary="After opening the DB failed."/> + <variant name="ReadVersionError" + summary="After reading the schema version failed."/> + </token> </histogram> <histogram name="LocalStorageContext.ReadVersionError" enum="LevelDBStatus"
diff --git a/tools/metrics/histograms/histograms_xml/login/histograms.xml b/tools/metrics/histograms/histograms_xml/login/histograms.xml index 066c1e9e..a64b7782 100644 --- a/tools/metrics/histograms/histograms_xml/login/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/login/histograms.xml
@@ -199,7 +199,7 @@ </histogram> <histogram name="Login.SuccessReason" enum="LoginSuccessReason" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>achuith@chromium.org</owner> <summary>Chrome OS login success reason.</summary> </histogram>
diff --git a/tools/metrics/histograms/histograms_xml/media/histograms.xml b/tools/metrics/histograms/histograms_xml/media/histograms.xml index 1316912f..f0f7ce0 100644 --- a/tools/metrics/histograms/histograms_xml/media/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/media/histograms.xml
@@ -814,7 +814,7 @@ </histogram> <histogram name="Media.AudioInputCbErrorMac" units="OSStatus" - expires_after="2021-01-21"> + expires_after="2021-04-18"> <owner>henrika@chromium.org</owner> <owner>webrtc-audio@google.com</owner> <summary> @@ -1876,7 +1876,7 @@ </histogram> <histogram name="Media.GlobalMediaControls.DismissReason" - enum="GlobalMediaControlsDismissReason" expires_after="2021-02-14"> + enum="GlobalMediaControlsDismissReason" expires_after="2021-04-18"> <owner>steimel@chromium.org</owner> <owner>media-dev@chromium.org</owner> <summary> @@ -1910,7 +1910,7 @@ </histogram> <histogram name="Media.GlobalMediaControls.RepeatUsage" enum="BooleanIsRepeat" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>steimel@chromium.org</owner> <owner>media-dev@chromium.org</owner> <summary> @@ -2242,7 +2242,7 @@ </histogram> <histogram name="Media.LinuxAudioIO" enum="LinuxAudioIO" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>dalecurtis@chromium.org</owner> <summary> Audio IO layer used by the Linux OS, sampled once at startup of the browser. @@ -2440,7 +2440,7 @@ </histogram> <histogram name="Media.MojoVideoDecoder.InitialPlaybackErrorCodecCounter" - units="instances" expires_after="2021-02-14"> + units="instances" expires_after="2021-04-18"> <owner>eugene@chromium.org</owner> <owner>liberato@chromium.org</owner> <summary> @@ -2451,7 +2451,7 @@ </histogram> <histogram name="Media.MojoVideoDecoder.InitialPlaybackSuccessCodecCounter" - units="instances" expires_after="2021-02-14"> + units="instances" expires_after="2021-04-18"> <owner>eugene@chromium.org</owner> <owner>liberato@chromium.org</owner> <summary> @@ -2499,7 +2499,7 @@ </histogram> <histogram name="Media.MSE.DetectedShakaPackagerInMp4" enum="BooleanDetected" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>dalecurtis@chromium.org</owner> <owner>media-dev@chromium.org</owner> <summary> @@ -2613,7 +2613,7 @@ </histogram> <histogram name="Media.Notification.ArtworkPresent" enum="Boolean" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>beccahughes@chromium.org</owner> <owner>media-dev@chromium.org</owner> <summary> @@ -2680,7 +2680,7 @@ </histogram> <histogram name="Media.Notification.Count" units="count" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>beccahughes@chromium.org</owner> <owner>media-dev@chromium.org</owner> <summary> @@ -2691,7 +2691,7 @@ </histogram> <histogram name="Media.Notification.MetadataPresent" - enum="MediaNotificationMetadata" expires_after="2021-02-14"> + enum="MediaNotificationMetadata" expires_after="2021-04-18"> <owner>beccahughes@chromium.org</owner> <owner>media-dev@chromium.org</owner> <summary> @@ -2702,7 +2702,7 @@ </histogram> <histogram name="Media.Notification.Source" enum="MediaNotificationSource" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>beccahughes@chromium.org</owner> <owner>media-dev@chromium.org</owner> <summary> @@ -2713,7 +2713,7 @@ </histogram> <histogram name="Media.Notification.UserAction" enum="MediaSessionAction" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>beccahughes@chromium.org</owner> <owner>media-dev@chromium.org</owner> <summary> @@ -4017,7 +4017,7 @@ </summary> </histogram> -<histogram name="Media.WatchTime" units="ms" expires_after="2021-02-14"> +<histogram name="Media.WatchTime" units="ms" expires_after="2021-04-18"> <owner>dalecurtis@chromium.org</owner> <summary> Watch time is defined as the amount of elapsed media time for audio+video @@ -4491,7 +4491,7 @@ </histogram> <histogram name="MediaRouter.Dial.TerminateRoute" - enum="MediaRouterDialTerminateRouteResult" expires_after="2021-02-01"> + enum="MediaRouterDialTerminateRouteResult" expires_after="2021-04-18"> <owner>takumif@chromium.org</owner> <owner>mfoltz@chromium.org</owner> <owner>openscreen-eng@google.com</owner>
diff --git a/tools/metrics/histograms/histograms_xml/memory/histograms.xml b/tools/metrics/histograms/histograms_xml/memory/histograms.xml index 04707c3b..d21e68c3 100644 --- a/tools/metrics/histograms/histograms_xml/memory/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/memory/histograms.xml
@@ -995,7 +995,7 @@ </histogram> <histogram base="true" name="Memory.Experimental.Renderer" units="MB" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <!-- Name completed by histogram_suffixes name="RendererMemoryAllocator" --> <owner>keishi@chromium.org</owner> @@ -1038,7 +1038,7 @@ </histogram> <histogram name="Memory.Experimental.Renderer.Uptime" units="ms" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>keishi@chromium.org</owner> <summary> The uptime of a render process in time ticks (excludes extensions). Emitted @@ -1146,7 +1146,7 @@ <histogram name="Memory.Experimental.UserLevelMemoryPressureSignal.RendererPrivateMemoryFootprintBefore" - units="MB" expires_after="2021-02-14"> + units="MB" expires_after="2021-04-18"> <owner>keishi@chromium.org</owner> <owner>tasak@chromium.org</owner> <summary> @@ -1283,7 +1283,7 @@ </histogram> <histogram base="true" name="Memory.GPU.PeakMemoryAllocationSource" units="KB" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <!-- Name completed by a combination of the following two histogram_suffixes: --> <!-- histogram_suffixes name="GPU.PeakMemoryAllocationSourceBase" --> @@ -1301,7 +1301,7 @@ </histogram> <histogram base="true" name="Memory.GPU.PeakMemoryUsage" units="KB" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <!-- Name completed by histogram_suffixes name="GPU.PeakMemoryUsage" --> <owner>jonross@chromium.org</owner> @@ -1407,7 +1407,7 @@ <histogram name="Memory.NativeLibrary.MappedAndResidentMemoryFootprintCollectionStatus" - enum="MappedAndResidentPagesDumpState" expires_after="2021-02-14"> + enum="MappedAndResidentPagesDumpState" expires_after="2021-04-18"> <owner>lizeb@chromium.org</owner> <owner>pasko@chromium.org</owner> <summary> @@ -1941,7 +1941,7 @@ </histogram> <histogram name="Memory.PressureLevel" enum="MemoryPressureLevel" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>chrisha@chromium.org</owner> <summary> The memory pressure level, which is recorded periodically. This shows the @@ -1960,7 +1960,7 @@ </histogram> <histogram base="true" name="Memory.PressureWindowDuration" units="ms" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <!-- Name completed by histogram_suffixes name="Memory.Pressure.TransitionType" --> <owner>sebmarchand@chromium.org</owner> @@ -2053,7 +2053,7 @@ </histogram> <histogram name="Memory.RendererProcessCount" units="processes" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>creis@chromium.org</owner> <owner>nasko@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/mobile/histograms.xml b/tools/metrics/histograms/histograms_xml/mobile/histograms.xml index 4b07bf5..601445a 100644 --- a/tools/metrics/histograms/histograms_xml/mobile/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/mobile/histograms.xml
@@ -719,7 +719,7 @@ </histogram> <histogram name="MobileFre.Progress" enum="MobileFreProgress" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>bsazonov@chromium.org</owner> <owner>msarda@chromium.org</owner> <owner>droger@chromium.org</owner> @@ -842,7 +842,7 @@ </histogram> <histogram name="MobileOmnibox.LongPressPasteAge" units="ms" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>gangwu@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> <summary> @@ -865,7 +865,7 @@ </histogram> <histogram name="MobileOmnibox.PressedClipboardSuggestionAge" units="ms" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>jdonnelly@chromium.org</owner> <owner>mpearson@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/net/histograms.xml b/tools/metrics/histograms/histograms_xml/net/histograms.xml index feade0e..9417565 100644 --- a/tools/metrics/histograms/histograms_xml/net/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/net/histograms.xml
@@ -2769,15 +2769,6 @@ </summary> </histogram> -<histogram name="Net.QuicSession.FailToSerializePacketLocation" - enum="QuicFailToSerializePacketLocation" expires_after="2021-05-21"> - <owner>renjietang@chromium.org</owner> - <owner>src/net/quic/OWNERS</owner> - <summary> - Record where exactly packet serialization fails for investigation. - </summary> -</histogram> - <histogram name="Net.QuicSession.FinalTcpCwnd" units="units" expires_after="2021-05-11"> <owner>dschinazi@chromium.org</owner>
diff --git a/tools/metrics/histograms/histograms_xml/obsolete_histograms.xml b/tools/metrics/histograms/histograms_xml/obsolete_histograms.xml index 0ff5c6c..eaa2d6c 100644 --- a/tools/metrics/histograms/histograms_xml/obsolete_histograms.xml +++ b/tools/metrics/histograms/histograms_xml/obsolete_histograms.xml
@@ -42079,6 +42079,18 @@ </summary> </histogram> +<histogram name="Net.QuicSession.FailToSerializePacketLocation" + enum="QuicFailToSerializePacketLocation" expires_after="2021-05-21"> + <obsolete> + Deprecated 10/2020 because it's no longer needed for analysis. + </obsolete> + <owner>renjietang@chromium.org</owner> + <owner>src/net/quic/OWNERS</owner> + <summary> + Record where exactly packet serialization fails for investigation. + </summary> +</histogram> + <histogram name="Net.QuicSession.HandshakeRoundTrips" units="RTTs" expires_after="2014-01-22"> <obsolete>
diff --git a/tools/metrics/histograms/histograms_xml/optimization/histograms.xml b/tools/metrics/histograms/histograms_xml/optimization/histograms.xml index 65bcdef..c65e1f86 100644 --- a/tools/metrics/histograms/histograms_xml/optimization/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/optimization/histograms.xml
@@ -87,7 +87,7 @@ <histogram name="OptimizationGuide.HintCacheLevelDBStore.Status" enum="OptimizationGuideHintCacheLevelDBStoreStatus" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>dougarnett@chromium.org</owner> <owner>sophiechang@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/others/histograms.xml b/tools/metrics/histograms/histograms_xml/others/histograms.xml index c6bd93b..52e44f53 100644 --- a/tools/metrics/histograms/histograms_xml/others/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/others/histograms.xml
@@ -1545,7 +1545,7 @@ </histogram> <histogram name="Bookmarks.LaunchLocation" enum="BookmarkLaunchLocation" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>ianwen@chromium.org</owner> <summary>Logs a UI location from which a bookmark is launched.</summary> </histogram> @@ -2485,7 +2485,7 @@ </histogram> <histogram name="ConfigureDisplays.External.Modeset.RefreshRate" units="Hz" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>dcastagna@chromium.org</owner> <owner>marcheu@chromium.org</owner> <owner>chromeos-gfx@chromium.org</owner> @@ -2652,7 +2652,7 @@ </histogram> <histogram name="ContextMenu.CancelSystemTouches" enum="BooleanHit" - expires_after="2020-12-11"> + expires_after="2021-04-18"> <owner>michaeldo@chromium.org</owner> <owner>src/ios/web/web_state/ui/OWNERS</owner> <summary> @@ -2685,7 +2685,7 @@ </histogram> <histogram name="ContextMenu.iOS.CopyImage" enum="ContextMenuIOSCopyImage" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>mrsuyi@chromium.org</owner> <owner>gambard@chromium.org</owner> <summary> @@ -2787,7 +2787,7 @@ </histogram> <histogram name="ContextMenu.Shown" enum="BooleanPresent" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>mpearson@chromium.org</owner> <summary> Recorded when a context menu is shown, sliced by whether a web contents was @@ -4328,7 +4328,7 @@ </histogram> <histogram name="DrmUtil.CreateDisplaySnapshot.HasEdidBlob" enum="Boolean" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>andrescj@chromium.org</owner> <owner>mcasas@chromium.org</owner> <owner>chromeos-gfx@google.com</owner> @@ -4600,7 +4600,7 @@ </histogram> <histogram name="ExploreSites.CatalogRequestResult" - enum="ExploreSitesCatalogUpdateRequestResult" expires_after="2021-02-14"> + enum="ExploreSitesCatalogUpdateRequestResult" expires_after="2021-04-18"> <owner>dewittj@chromium.org</owner> <owner>petewil@chromium.org</owner> <summary>Results of the Explore Sites network request for a catalog.</summary> @@ -4675,7 +4675,7 @@ </histogram> <histogram name="ExploreSites.MonthlyHostCount" units="hosts" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>dimich@chromium.org</owner> <summary> Number of unique hosts visited by the user during the last 30 days. Reported @@ -4718,7 +4718,7 @@ </histogram> <histogram name="ExploreSites.SiteTilesClickIndex2" units="units" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>dewittj@chromium.org</owner> <owner>petewil@chromium.org</owner> <summary> @@ -7456,7 +7456,7 @@ </histogram> <histogram name="Launch.HomeScreen" enum="LaunchFromHomeScreen" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>dominickn@chromium.org</owner> <owner>hartmanng@chromium.org</owner> <owner>peconn@chromium.org</owner> @@ -7954,7 +7954,7 @@ <histogram name="LoadingPredictor.OptimizationHintsReceiveStatus" enum="LoadingPredictorOptimizationHintsReceiveStatus" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>sophiechang@chromium.org</owner> <owner>tbansal@chromium.org</owner> <summary> @@ -8008,7 +8008,7 @@ </histogram> <histogram base="true" name="LoadingPredictor.PreconnectLearningRecall" - units="%" expires_after="2021-02-14"> + units="%" expires_after="2021-04-18"> <owner>alexilin@chromium.org</owner> <owner>tbansal@chromium.org</owner> <summary> @@ -8606,7 +8606,7 @@ </histogram> <histogram name="Mojo.Connector.MaxUnreadMessageQuotaUsed" units="messages" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>siggi@chromium.org</owner> <owner>rockot@chromium.org</owner> <summary> @@ -8689,7 +8689,7 @@ </histogram> <histogram name="MPArch.ChildProcessLaunchFirst" units="units" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>ppi@chromium.org</owner> <summary> The time it takes to spawn the first child subprocess (including sandbox @@ -8797,7 +8797,7 @@ </histogram> <histogram name="MultiProfile.UsersPerSessionIncremental" units="units" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>skuhne@chromium.org</owner> <summary> The number of users simultaneously signed into a multiprofile session on @@ -10877,7 +10877,7 @@ </histogram> <histogram name="ProtoDB.SharedDbInitStatus" enum="ProtoDatabaseInitState" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>ssid@chromium.org</owner> <owner>salg@chromium.org</owner> <summary> @@ -11169,7 +11169,7 @@ </histogram> <histogram name="QuickAnswers.ActiveImpression" enum="QuickAnswersResultType" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>llin@google.com</owner> <owner>croissant-eng@chromium.org</owner> <summary> @@ -11179,7 +11179,7 @@ </histogram> <histogram name="QuickAnswers.ActiveImpression.Duration" units="ms" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>llin@google.com</owner> <owner>croissant-eng@chromium.org</owner> <summary> @@ -11208,7 +11208,7 @@ </histogram> <histogram name="QuickAnswers.Consent" units="impressions" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>llin@google.com</owner> <owner>croissant-eng@chromium.org</owner> <summary> @@ -11228,7 +11228,7 @@ </histogram> <histogram base="true" name="QuickAnswers.Consent.Impression" - units="impressions" expires_after="2021-02-14"> + units="impressions" expires_after="2021-04-18"> <owner>llin@google.com</owner> <owner>croissant-eng@chromium.org</owner> <summary> @@ -11238,7 +11238,7 @@ </histogram> <histogram name="QuickAnswers.Intent" enum="QuickAnswersIntentType" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>llin@google.com</owner> <owner>croissant-eng@chromium.org</owner> <summary> @@ -11258,7 +11258,7 @@ </histogram> <histogram name="QuickAnswers.Loading.Status" enum="QuickAnswersLoadStatus" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>llin@google.com</owner> <owner>croissant-eng@chromium.org</owner> <summary> @@ -11267,7 +11267,7 @@ </histogram> <histogram name="QuickAnswers.Result" enum="QuickAnswersResultType" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>llin@google.com</owner> <owner>croissant-eng@chromium.org</owner> <summary> @@ -11277,7 +11277,7 @@ </histogram> <histogram name="QuickAnswers.Result.Duration" units="ms" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>llin@google.com</owner> <owner>croissant-eng@chromium.org</owner> <summary> @@ -11287,7 +11287,7 @@ </histogram> <histogram name="QuickAnswers.SelectedContent.Length" units="characters" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>llin@google.com</owner> <owner>croissant-eng@chromium.org</owner> <summary> @@ -11912,7 +11912,7 @@ </histogram> <histogram name="Rollback.OobeRestoreResult" enum="Rollback_OobeRestoreResult" - expires_after="2021-01-01"> + expires_after="2021-04-18"> <owner>mpolzer@google.com</owner> <owner>managed-platforms@google.com</owner> <summary> @@ -13312,7 +13312,7 @@ </histogram> <histogram name="SiteEngagementService.EngagementScoreBucket" units="%" - expires_after="2021-01-01"> + expires_after="2021-04-18"> <owner>calamity@chromium.org</owner> <owner>dominickn@chromium.org</owner> <summary> @@ -13333,7 +13333,7 @@ </histogram> <histogram name="SiteEngagementService.MeanEngagement" units="units" - expires_after="2021-01-01"> + expires_after="2021-04-18"> <owner>calamity@chromium.org</owner> <owner>dominickn@chromium.org</owner> <summary> @@ -14130,6 +14130,9 @@ <histogram name="Suggestions.LocalBlacklistSize" units="URLcount" expires_after="M77"> + <obsolete> + Removed some time before 10/2020. + </obsolete> <owner>siggi@chromium.org</owner> <summary> Number of URLs present in the Suggestions local blacklist when the @@ -15661,7 +15664,7 @@ </histogram> <histogram name="UpgradeDetector.RollbackReason" - enum="UpgradeDetectorRollbackReason" expires_after="2021-01-01"> + enum="UpgradeDetectorRollbackReason" expires_after="2021-04-18"> <owner>mpolzer@google.com</owner> <owner>managed-platforms@google.com</owner> <summary> @@ -16969,7 +16972,7 @@ </histogram> <histogram name="WebsiteSettings.AllSitesAction2" - enum="WebSiteSettingsAllSitesAction2" expires_after="2021-02-13"> + enum="WebSiteSettingsAllSitesAction2" expires_after="2021-04-18"> <owner>jarrydg@chromium.org</owner> <owner>mxcai@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/page/histograms.xml b/tools/metrics/histograms/histograms_xml/page/histograms.xml index 97f2086c..66498aa 100644 --- a/tools/metrics/histograms/histograms_xml/page/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/page/histograms.xml
@@ -227,7 +227,7 @@ </histogram> <histogram name="PageLoad.Clients.Ads.Memory.MainFrame.Max" units="KiB" - expires_after="2021-01-31"> + expires_after="2021-04-18"> <owner>cammie@chromium.org</owner> <owner>jkarlin@chromium.org</owner> <owner>johnidel@chromium.org</owner> @@ -243,7 +243,7 @@ </histogram> <histogram name="PageLoad.Clients.Ads.Memory.MissedMeasurementCount" - units="count" expires_after="2021-01-31"> + units="count" expires_after="2021-04-18"> <owner>cammie@chromium.org</owner> <owner>jkarlin@chromium.org</owner> <owner>johnidel@chromium.org</owner> @@ -256,7 +256,7 @@ </histogram> <histogram name="PageLoad.Clients.Ads.Memory.UpdateCount" units="count" - expires_after="2021-01-31"> + expires_after="2021-04-18"> <owner>cammie@chromium.org</owner> <owner>jkarlin@chromium.org</owner> <owner>johnidel@chromium.org</owner> @@ -616,7 +616,7 @@ <histogram name="PageLoad.Clients.ThirdParty.Frames.NavigationToFirstContentfulPaint3" - units="ms" expires_after="2021-02-14"> + units="ms" expires_after="2021-04-18"> <owner>jkarlin@chromium.org</owner> <owner>johnidel@chromium.org</owner> <summary> @@ -950,7 +950,7 @@ </histogram> <histogram name="PageLoad.Experimental.InputTiming.InputToNavigationStart" - units="ms" expires_after="2021-02-14"> + units="ms" expires_after="2021-04-18"> <owner>sullivan@chromium.org</owner> <owner>tdresser@chromium.org</owner> <summary> @@ -1500,7 +1500,7 @@ </histogram> <histogram name="PageLoad.Internal.ClientRedirect.NavigationWithoutPaint" - enum="Boolean" expires_after="2021-02-14"> + enum="Boolean" expires_after="2021-04-18"> <owner>bmcquade@chromium.org</owner> <summary> Counts how often a client-side redirect was initiated from a page that did @@ -1898,7 +1898,7 @@ <histogram name="PageLoad.PaintTiming.NavigationToExperimentalLargestContentfulPaint" - units="ms" expires_after="2021-02-14"> + units="ms" expires_after="2021-04-18"> <owner>npm@chromium.org</owner> <owner>speed-metrics-dev@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/password/histograms.xml b/tools/metrics/histograms/histograms_xml/password/histograms.xml index 2b641c0..1c35a36 100644 --- a/tools/metrics/histograms/histograms_xml/password/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/password/histograms.xml
@@ -187,7 +187,7 @@ </histogram> <histogram base="true" name="PasswordManager.AccountsPerSiteHiRes" - units="units" expires_after="2021-01-24"> + units="units" expires_after="2021-04-18"> <owner>jdoerrie@chromium.org</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -293,7 +293,7 @@ </histogram> <histogram base="true" name="PasswordManager.AccountStorageUserStateDuration" - units="ms" expires_after="2020-12-01"> + units="ms" expires_after="M90"> <!-- Name completed by histogram_suffixes name="PasswordAccountStorageUserState" --> <owner>mamir@chromium.org</owner> @@ -2077,7 +2077,7 @@ </histogram> <histogram base="true" name="PasswordManager.TotalAccountsHiRes.ByType" - units="units" expires_after="2021-02-14"> + units="units" expires_after="2021-04-18"> <owner>battre@chromium.org</owner> <owner>vasilii@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/permissions/histograms.xml b/tools/metrics/histograms/histograms_xml/permissions/histograms.xml index a9cabde..ada465c7 100644 --- a/tools/metrics/histograms/histograms_xml/permissions/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/permissions/histograms.xml
@@ -178,7 +178,7 @@ </histogram> <histogram name="Permissions.CrowdDeny.PreloadData.WarningOnly" enum="Boolean" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>andypaicu@chromium.org</owner> <owner>engedy@chromium.org</owner> <owner>hkamila@chromium.org</owner>
diff --git a/tools/metrics/histograms/histograms_xml/plugin/histograms.xml b/tools/metrics/histograms/histograms_xml/plugin/histograms.xml index b3dddbd..75cd4ef 100644 --- a/tools/metrics/histograms/histograms_xml/plugin/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/plugin/histograms.xml
@@ -112,7 +112,7 @@ </histogram> <histogram name="PluginVm.AppsInstalledAtLogin" units="apps" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>timloh@google.com</owner> <owner>joelhockey@google.com</owner> <summary> @@ -129,7 +129,7 @@ </histogram> <histogram name="PluginVm.EngagementTime.Background" units="ms" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>timloh@google.com</owner> <owner>joelhockey@google.com</owner> <summary> @@ -140,7 +140,7 @@ </histogram> <histogram name="PluginVm.EngagementTime.Foreground" units="ms" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>timloh@google.com</owner> <owner>joelhockey@google.com</owner> <summary> @@ -150,7 +150,7 @@ </histogram> <histogram name="PluginVm.EngagementTime.PluginVmTotal" units="ms" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>timloh@google.com</owner> <owner>joelhockey@google.com</owner> <summary> @@ -161,7 +161,7 @@ </histogram> <histogram name="PluginVm.EngagementTime.Total" units="ms" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>timloh@google.com</owner> <owner>joelhockey@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/power/histograms.xml b/tools/metrics/histograms/histograms_xml/power/histograms.xml index 48a76e8..148e808 100644 --- a/tools/metrics/histograms/histograms_xml/power/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/power/histograms.xml
@@ -674,7 +674,7 @@ </histogram> <histogram name="Power.KernelSuspendTimeOnBattery" units="ms" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>tbroch@chromium.org</owner> <summary> The time that the kernel took to suspend-to-RAM the Chrome OS device when @@ -726,7 +726,7 @@ </histogram> <histogram name="Power.Mac.AppleSMCOpened" enum="BooleanSuccess" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>lgrey@chromium.org</owner> <summary> When metrics collection started, records true if a handle to the System @@ -842,7 +842,7 @@ </histogram> <histogram name="Power.PowerButtonPressInLaptopMode" - enum="PowerButtonPressType" expires_after="2021-01-29"> + enum="PowerButtonPressType" expires_after="2021-04-18"> <owner>minch@chromium.org</owner> <owner>xdai@chromium.org</owner> <summary> @@ -980,7 +980,7 @@ </histogram> <histogram name="Power.UserBrightnessAdjustmentsPerSessionOnBattery" - units="units" expires_after="2021-02-14"> + units="units" expires_after="2021-04-18"> <owner>tbroch@chromium.org</owner> <owner>jiameng@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/profile/histograms.xml b/tools/metrics/histograms/histograms_xml/profile/histograms.xml index 7bd11cd..630a943 100644 --- a/tools/metrics/histograms/histograms_xml/profile/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/profile/histograms.xml
@@ -266,7 +266,7 @@ </histogram> <histogram name="Profile.NumberOfAccountsPerProfile" units="units" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>msarda@chromium.org</owner> <owner>droger@chromium.org</owner> <summary> @@ -611,7 +611,7 @@ </histogram> <histogram name="ProfileChooser.HasProfilesShown" enum="BooleanShown" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>vasilii@chromium.org</owner> <owner>ewald@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/quota/histograms.xml b/tools/metrics/histograms/histograms_xml/quota/histograms.xml index 9021d99..d4e24e5 100644 --- a/tools/metrics/histograms/histograms_xml/quota/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/quota/histograms.xml
@@ -32,7 +32,7 @@ </histogram> <histogram name="Quota.AgeOfOriginInDays" units="days" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>jarrydg@chromium.org</owner> <summary> How many days it's been since an origin's temporary storage has been
diff --git a/tools/metrics/histograms/histograms_xml/renderer/histograms.xml b/tools/metrics/histograms/histograms_xml/renderer/histograms.xml index 31afa81..1d3af62 100644 --- a/tools/metrics/histograms/histograms_xml/renderer/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/renderer/histograms.xml
@@ -104,7 +104,7 @@ </histogram> <histogram name="Renderer.PaintPreview.Capture.MainFrameSuccess" - enum="BooleanSuccess" expires_after="2021-02-14"> + enum="BooleanSuccess" expires_after="2021-04-18"> <owner>ckitagawa@chromium.org</owner> <owner>mahmoudi@chromium.org</owner> <owner>fredmello@chromium.org</owner>
diff --git a/tools/metrics/histograms/histograms_xml/sb_client/histograms.xml b/tools/metrics/histograms/histograms_xml/sb_client/histograms.xml index e33a8cb..dcef4f4 100644 --- a/tools/metrics/histograms/histograms_xml/sb_client/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/sb_client/histograms.xml
@@ -541,7 +541,7 @@ </histogram> <histogram name="SBClientPhishing.TermFeatureTotalTime" units="ms" - expires_after="2021-01-27"> + expires_after="2021-04-18"> <owner>drubery@chromium.org</owner> <owner>chrome-safebrowsing-alerts@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/service/histograms.xml b/tools/metrics/histograms/histograms_xml/service/histograms.xml index da2f6d0..813c6e7 100644 --- a/tools/metrics/histograms/histograms_xml/service/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/service/histograms.xml
@@ -670,7 +670,7 @@ </histogram> <histogram name="ServiceWorker.PageLoad" enum="ServiceWorkerSite" - expires_after="2021-02-16"> + expires_after="2021-04-18"> <owner>falken@chromium.org</owner> <owner>chrome-worker@google.com</owner> <summary>Counts page loads controlled by a service worker.</summary> @@ -1028,7 +1028,7 @@ </histogram> <histogram name="ServiceWorker.StartWorker.StatusByPurpose" - enum="ServiceWorkerStatusCode" expires_after="2021-01-31"> + enum="ServiceWorkerStatusCode" expires_after="2021-04-18"> <owner>falken@chromium.org</owner> <owner>chrome-worker@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/stability/histograms.xml b/tools/metrics/histograms/histograms_xml/stability/histograms.xml index 3e55308a8..3f56414 100644 --- a/tools/metrics/histograms/histograms_xml/stability/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/stability/histograms.xml
@@ -259,6 +259,9 @@ <histogram name="Stability.Internals.DataDiscardCount" units="counts" expires_after="M77"> + <obsolete> + Removed on 10/2020. + </obsolete> <owner>siggi@chromium.org</owner> <summary> Number of times stability data was discarded. This is accumulated since the @@ -292,6 +295,9 @@ <histogram name="Stability.Internals.InitialStabilityLogDeferredCount" units="counts" expires_after="M77"> + <obsolete> + Removed on 10/2020. + </obsolete> <owner>siggi@chromium.org</owner> <summary> Number of times the initial stability log upload was deferred to the next @@ -312,6 +318,9 @@ <histogram name="Stability.Internals.VersionMismatchCount" units="counts" expires_after="M77"> + <obsolete> + Removed on 10/2020. + </obsolete> <owner>siggi@chromium.org</owner> <summary> Number of times the version number stored in prefs did not match the
diff --git a/tools/metrics/histograms/histograms_xml/startup/histograms.xml b/tools/metrics/histograms/histograms_xml/startup/histograms.xml index 48fa2f9..2070d545 100644 --- a/tools/metrics/histograms/histograms_xml/startup/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/startup/histograms.xml
@@ -162,7 +162,7 @@ </histogram> <histogram name="Startup.Android.StartupTabPreloader.TabLoaded" units="Boolean" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>skyostil@chromium.org</owner> <summary> Android: Whether or not creation of a profile lead to the @@ -197,7 +197,7 @@ </histogram> <histogram name="Startup.Android.TimeToGTSFirstMeaningfulPaint" units="ms" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>yusufo@chromium.org</owner> <owner>yfriedman@chromium.org</owner> <summary> @@ -223,7 +223,7 @@ </histogram> <histogram name="Startup.Android.TimeToGTSFirstMeaningfulPaint.Warm" units="ms" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>yusufo@chromium.org</owner> <owner>yfriedman@chromium.org</owner> <summary> @@ -256,7 +256,7 @@ </histogram> <histogram name="Startup.BrowserMainRunnerImplInitializeLongTime" units="ms" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>robliao@chromium.org</owner> <summary> The amount of time that elapsed during BrowserMainRunnerImpl::Initialize. @@ -393,7 +393,7 @@ </histogram> <histogram name="Startup.ColdStartFromProcessCreationTime" units="ms" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>djean@chromium.org</owner> <owner>eugenebut@chromium.org</owner> <summary> @@ -405,7 +405,7 @@ </histogram> <histogram name="Startup.ColdStartWithExternalURLTime" units="ms" - expires_after="2021-01-24"> + expires_after="2021-04-18"> <owner>jif@chromium.org</owner> <summary> The duration of all initializations in a cold start triggered by an external
diff --git a/tools/metrics/histograms/histograms_xml/sync/histograms.xml b/tools/metrics/histograms/histograms_xml/sync/histograms.xml index f9be682d..048b23e 100644 --- a/tools/metrics/histograms/histograms_xml/sync/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/sync/histograms.xml
@@ -267,7 +267,7 @@ </histogram> <histogram name="Sync.CryptographerPendingKeys" - enum="SyncCryptographerPendingKeysState" expires_after="2021-02-14"> + enum="SyncCryptographerPendingKeysState" expires_after="2021-04-18"> <owner>mastiz@chromium.org</owner> <owner>treib@chromium.org</owner> <summary> @@ -603,7 +603,7 @@ </histogram> <histogram name="Sync.PassphraseType" enum="SyncPassphraseType" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>treib@chromium.org</owner> <owner>mastiz@chromium.org</owner> <summary>The active sync passphrase type at sync startup.</summary>
diff --git a/tools/metrics/histograms/histograms_xml/tab/histograms.xml b/tools/metrics/histograms/histograms_xml/tab/histograms.xml index 941ce251..d82f91a5 100644 --- a/tools/metrics/histograms/histograms_xml/tab/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/tab/histograms.xml
@@ -21,6 +21,45 @@ <histograms> +<variants name="TabCreatedReason"> + <variant name=".FromExternalApp" + summary="This bucket is for any tabs that are created because of custom + tabs or intends from other apps. This includes tab creation + via intent from other app, creation via homescreen link, + creation via custom tab."/> + <variant name=".FromManuallyCreated" + summary="This bucket is for any tabs that are created manually. This + includes new tab creation from toolbar menu, creation from + long press open, creation at tab switcher, creation from + launcher shortcut menu by long press the Chrome icon."/> + <variant name=".FromOthers" summary="This is the default bucket."/> + <variant name=".FromTargetBlank" + summary="This bucket is for any tabs that were created from a target + blank link. e.g. tehchmeme.com will create tabs this way."/> +</variants> + +<variants name="Tabs_SwitchLatency"> + <variant name="_Actual" + summary="The time it takes to show a real live frame from the renderer + on the screen after the user selects a tab. This doesn not + include fake snapshots or other tricks, but the actual time to + get real interactable content displayed."/> + <variant name="_Perceived" + summary="The time it takes to show something on the screen after the + user selects a tab. This might be a fake snapshot or it might + just be the time it takes to show the real content if no + snapshot was available."/> +</variants> + +<variants name="Tabs_TabUsageIntervalLength"> + <variant name="_30" summary="30 seconds"/> + <variant name="_60" summary="1 minute"/> + <variant name="_600" summary="10 minutes"/> + <variant name="_3600" summary="1 hour"/> + <variant name="_18000" summary="5 hours"/> + <variant name="_43200" summary="12 hours"/> +</variants> + <histogram name="Tab.AgeUponRestoreFromColdStart" units="minutes" expires_after="M88"> <owner>dtrainor@chromium.org</owner> @@ -35,10 +74,24 @@ </summary> </histogram> -<histogram base="true" name="Tab.AndroidCrashUpload" enum="BooleanSuccess" - expires_after="M85"> +<histogram name="Tab.AndroidCrashUpload{AndroidCrashUploadTypes}" + enum="BooleanSuccess" expires_after="M85"> <owner>wnwen@chromium.org</owner> - <summary>[Android] Count of upload success/failures by crash type.</summary> + <summary> + [Android] Count of upload success/failures by crash type. + {AndroidCrashUploadTypes} + </summary> + <token key="AndroidCrashUploadTypes"> + <variant name=""> + <obsolete> + Base histogram. Use suffixes of this histogram instead. + </obsolete> + </variant> + <variant name="_Browser" summary="Measures browser crash uploads."/> + <variant name="_GPU" summary="Measures GPU crash uploads."/> + <variant name="_Other" summary="Measures other crash uploads."/> + <variant name="_Renderer" summary="Measures renderer crash uploads."/> + </token> </histogram> <histogram name="Tab.BackgroundLoadStatus" enum="TabBackgroundLoadStatus" @@ -109,13 +162,44 @@ </summary> </histogram> -<histogram name="Tab.NewTabOnload" units="ms" expires_after="2021-03-07"> +<histogram name="Tab.NewTabOnload{TabNewTabOnload}" units="ms" + expires_after="2021-03-07"> <owner>carlosk@chromium.org</owner> <owner>harringtond@chromium.org</owner> <summary> The time for the new tab page to load. Only recorded on Android. Recorded only once per tab, i.e. excluding back/forward navigations. + {TabNewTabOnload} </summary> + <token key="TabNewTabOnload"> + <variant name=""/> + <variant name=".Google" summary="New Tab page for Google."> + <obsolete> + Removed 07/2020, base histogram no longer recorded on dektop. + </obsolete> + </variant> + <variant name=".Local" summary="Local New Tab page."> + <obsolete> + Removed 07/2020, base histogram no longer recorded on dektop. + </obsolete> + </variant> + <variant name=".LocalGoogle" summary="Local New Tab page for Google."> + <obsolete> + Removed 06/2017, never worked correctly. + </obsolete> + </variant> + <variant name=".LocalOther" + summary="Local New Tab page for a non-Google provider."> + <obsolete> + Removed 06/2017, never worked correctly. + </obsolete> + </variant> + <variant name=".Other" summary="New Tab page for a non-Google provider."> + <obsolete> + Removed 07/2020, base histogram no longer recorded on dektop. + </obsolete> + </variant> + </token> </histogram> <histogram name="Tab.PageLoadInHorizontalSizeClass" @@ -440,12 +524,26 @@ </summary> </histogram> -<histogram name="Tab.TabUnderAction" enum="TabUnderAction" expires_after="M85"> +<histogram name="Tab.TabUnderAction{OffTheRecordType}" enum="TabUnderAction" + expires_after="M85"> <owner>csharrison@chromium.org</owner> <summary> Various actions related to the tab under intervention, logged during main - frame navigation. + frame navigation. {OffTheRecordType} </summary> + <token key="OffTheRecordType"> + <variant name=""/> + <variant name=".NonOTR" summary="Non off-the-record profile"> + <obsolete> + Removed March 2019 + </obsolete> + </variant> + <variant name=".OTR" summary="Off-the-record profile"> + <obsolete> + Removed March 2019 + </obsolete> + </variant> + </token> </histogram> <histogram name="Tab.TotalTabCount.BeforeLeavingApp" units="tabs" @@ -459,12 +557,25 @@ </summary> </histogram> -<histogram name="Tab.Visibility" units="ms" expires_after="M85"> +<histogram name="Tab.Visibility{Visibility}" units="ms" expires_after="M85"> <owner>fdoray@chromium.org</owner> <summary> Time spent by a tab in a given visibility state. Recorded when the - visibility changes and when the tab is closed. + visibility changes and when the tab is closed. {Visibility} </summary> + <token key="Visibility"> + <variant name=""/> + <variant name=".Hidden" + summary="The tab is not visible because it is in a minimized window + (desktop) or background app (mobile), or because it isn't + active in its tab strip."/> + <variant name=".Occluded" + summary="The tab is fully covered by other windows. ChromeOS and Mac + OS X only."/> + <variant name=".Visible" + summary="The tab is visible. Except on ChromeOS and Mac OS X, a tab + fully covered by other windows is considered visible."/> + </token> </histogram> <histogram name="Tab.VisibleTime" units="ms" expires_after="M77"> @@ -560,14 +671,34 @@ </summary> </histogram> -<histogram name="TabHoverCards.TabHoverCardsSeenBeforeTabSelection" +<histogram + name="TabHoverCards.TabHoverCardsSeenBeforeTabSelection{TabCountMetrics}" units="units" expires_after="2020-10-01"> <owner>corising@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> This histogram records the number of tab hover cards seen between the last - active tab change and a tab change by mouse click. + active tab change and a tab change by mouse click. {TabCountMetrics} </summary> + <token key="TabCountMetrics"> + <variant name=""/> + <variant name=".ByTabCount.0Tabs" + summary="Recorded with 0 tabs open in the browser."/> + <variant name=".ByTabCount.1Tab" + summary="Recorded with 1 tab open in the browser."/> + <variant name=".ByTabCount.2Tabs" + summary="Recorded with 2 tabs open in the browser."/> + <variant name=".ByTabCount.3To4Tabs" + summary="Recorded with between 3 and 4 tabs open in the browser."/> + <variant name=".ByTabCount.5To7Tabs" + summary="Recorded with between 5 and 7 tabs open in the browser."/> + <variant name=".ByTabCount.8To19Tabs" + summary="Recorded with between 8 and 19 tabs open in the browser."/> + <variant name=".ByTabCount.20To39Tabs" + summary="Recorded with between 20 and 39 tabs open in the browser."/> + <variant name=".ByTabCount.40OrMoreTabs" + summary="Recorded with 40 or more tabs open in the browser."/> + </token> </histogram> <histogram name="TabHoverCards.TimeSinceLastVisible" units="ms" @@ -1592,7 +1723,7 @@ </details> </histogram> -<histogram base="true" name="Tabs.Suggestions.NumSuggestionsChanged" +<histogram name="Tabs.Suggestions.NumSuggestionsChanged{TabSuggestionType}" units="count" expires_after="2020-11-01"> <owner>yusufo@chromium.org</owner> <owner>davidjm@chromium.org</owner> @@ -1609,44 +1740,73 @@ performing 1) or 2). Note: Adding and removing the same Tab, or vice versa, would be counted as - 0. + 0. {TabSuggestionType} </summary> + <token key="TabSuggestionType"> + <variant name=""> + <obsolete> + Base histogram. Use suffixes of this histogram instead. + </obsolete> + </variant> + <variant name=".ClosingSuggestion" + summary="This bukect is for the closing suggestion. It suggests users + to close the recommended tabs."/> + <variant name=".GroupingSuggestion" + summary="This bukect is for the grouping suggestion. It suggests + users to group the recommended tabs."/> + </token> </histogram> -<histogram name="Tabs.SwitchFromCloseLatency" units="ms" expires_after="M88"> +<histogram name="Tabs.SwitchFromCloseLatency{Tabs_SwitchLatency}" units="ms" + expires_after="M88"> <owner>dtrainor@chromium.org</owner> <owner>yusufo@chromium.org</owner> <summary> [Android] Time between the event that closes a tab and the start of - rendering. + rendering. {Tabs_SwitchLatency} </summary> + <token key="Tabs_SwitchLatency" variants="Tabs_SwitchLatency"> + <variant name=""/> + </token> </histogram> -<histogram name="Tabs.SwitchFromExitLatency" units="ms" expires_after="M88"> +<histogram name="Tabs.SwitchFromExitLatency{Tabs_SwitchLatency}" units="ms" + expires_after="M88"> <owner>dtrainor@chromium.org</owner> <owner>yusufo@chromium.org</owner> <summary> [Android] Time between the event that exits an app and the start of - rendering. + rendering. {Tabs_SwitchLatency} </summary> + <token key="Tabs_SwitchLatency" variants="Tabs_SwitchLatency"> + <variant name=""/> + </token> </histogram> -<histogram name="Tabs.SwitchFromNewLatency" units="ms" expires_after="M88"> +<histogram name="Tabs.SwitchFromNewLatency{Tabs_SwitchLatency}" units="ms" + expires_after="M88"> <owner>dtrainor@chromium.org</owner> <owner>yusufo@chromium.org</owner> <summary> [Android] Time between the event that creates a tab and the start of - rendering. + rendering. {Tabs_SwitchLatency} </summary> + <token key="Tabs_SwitchLatency" variants="Tabs_SwitchLatency"> + <variant name=""/> + </token> </histogram> -<histogram name="Tabs.SwitchFromUserLatency" units="ms" expires_after="M88"> +<histogram name="Tabs.SwitchFromUserLatency{Tabs_SwitchLatency}" units="ms" + expires_after="M88"> <owner>dtrainor@chromium.org</owner> <owner>yusufo@chromium.org</owner> <summary> [Android] Time between the event that selects a tab and the start of - rendering. + rendering. {Tabs_SwitchLatency} </summary> + <token key="Tabs_SwitchLatency" variants="Tabs_SwitchLatency"> + <variant name=""/> + </token> </histogram> <histogram name="Tabs.TabCount" units="tabs" expires_after="never"> @@ -1766,11 +1926,12 @@ </details> </histogram> -<histogram base="true" name="Tabs.TabOffsetOfSwitch" units="units" - expires_after="M85"> +<histogram name="Tabs.TabOffsetOfSwitch{TabOffsetOfSwitchComponentList}" + units="units" expires_after="M85"> <owner>yusufo@chromium.org</owner> <summary> How many tabs a user moved forward or backward in the Android tab switcher. + {TabOffsetOfSwitchComponentList} </summary> <details> Logged by the Android tab switcher when a user switches tabs (other than by @@ -1781,6 +1942,21 @@ different stack (i.e. they switch from normal to incognito or vice-versa), we don't log a value. </details> + <token key="TabOffsetOfSwitchComponentList"> + <variant name=""> + <obsolete> + Base histogram. Use suffixes of this histogram instead. + </obsolete> + </variant> + <variant name=".GridTabSwitcher" summary="Tab switcher in grid layout"/> + <variant name=".TabGridSheet" + summary="The bottom sheet that show a list of Tabs in a grid"> + <obsolete> + Unused as of 11/2019, sheet UI is no longer used. + </obsolete> + </variant> + <variant name=".TabStrip" summary="The TabStrip componets"/> + </token> </histogram> <histogram name="Tabs.TabSearch.CloseAction" enum="TabSearchCloseActions" @@ -1976,10 +2152,9 @@ </summary> </histogram> -<histogram name="Tabs.Tasks.HubAndSpokeNavigationUsage" units="spokes" - expires_after="2020-06-01"> -<!-- Name completed by histogram_suffixes name="HubAndSpokeNavigationUsageType" --> - +<histogram + name="Tabs.Tasks.HubAndSpokeNavigationUsage{HubAndSpokeNavigationUsageType}" + units="spokes" expires_after="2020-06-01"> <owner>yusufo@chromium.org</owner> <owner>wychen@chromium.org</owner> <summary> @@ -1988,27 +2163,42 @@ and a "spoke" is a page that's navigated to. The "spokes" count is incremented and recorded each time the user navigates back to a "hub" page via navigation back button and then - navigates to a new "spoke". + navigates to a new "spoke". {HubAndSpokeNavigationUsageType} </summary> + <token key="HubAndSpokeNavigationUsageType"> + <variant name=""/> + <variant name=".FromDefaultSearchEngine" + summary="User navigates to a new page from default search engine + result page"/> + <variant name=".FromFormSubmit" + summary="User navigates to a new page from a form submit page"/> + <variant name=".FromOther" + summary="User navigates to a new page from a page other than a + default search engine result page or a form submit page"/> + </token> </histogram> -<histogram base="true" name="Tabs.Tasks.TabCreated.Count" units="tabs" +<histogram name="Tabs.Tasks.TabCreated.Count{TabCreatedReason}" units="tabs" expires_after="2020-06-30"> -<!-- Name completed by histogram_suffixes name="TabCreatedReason" --> - <owner>yusufo@chromium.org</owner> <owner>wychen@chromium.org</owner> <owner>zea@chromium.org</owner> <summary> This recorded value is the number of currently open tabs that were created from a given source. This is recorded when entering the tab switcher mode. + {TabCreatedReason} </summary> + <token key="TabCreatedReason" variants="TabCreatedReason"> + <variant name=""> + <obsolete> + Base histogram. Use suffixes of this histogram instead. + </obsolete> + </variant> + </token> </histogram> -<histogram base="true" name="Tabs.Tasks.TabCreated.Percent" units="%" +<histogram name="Tabs.Tasks.TabCreated.Percent{TabCreatedReason}" units="%" expires_after="2020-06-30"> -<!-- Name completed by histogram_suffixes name="TabCreatedReason" --> - <owner>yusufo@chromium.org</owner> <owner>wychen@chromium.org</owner> <owner>zea@chromium.org</owner> @@ -2016,7 +2206,15 @@ The recorded value is the percentage of the number of currently open tabs that are created from a given source, relative to the total number of currently open tabs. This is recorded when entering the tab switcher mode. + {TabCreatedReason} </summary> + <token key="TabCreatedReason" variants="TabCreatedReason"> + <variant name=""> + <obsolete> + Base histogram. Use suffixes of this histogram instead. + </obsolete> + </variant> + </token> </histogram> <histogram name="Tabs.Tasks.TabGroupCount" units="groups" expires_after="M85"> @@ -2086,48 +2284,82 @@ </summary> </histogram> -<histogram base="true" name="Tabs.UnusedAndClosedInInterval.Count" units="tabs" - expires_after="M95"> +<histogram + name="Tabs.UnusedAndClosedInInterval.Count{Tabs_TabUsageIntervalLength}" + units="tabs" expires_after="M95"> <owner>sebmarchand@chromium.org</owner> <owner>catan-team@chromium.org</owner> <summary> The number of tabs that haven't been interacted with, visible or audible over a given interval time, but which no longer exist at all at the end of - this interval. + this interval. {Tabs_TabUsageIntervalLength} </summary> + <token key="Tabs_TabUsageIntervalLength" + variants="Tabs_TabUsageIntervalLength"> + <variant name=""> + <obsolete> + Base histogram. Use suffixes of this histogram instead. + </obsolete> + </variant> + </token> </histogram> -<histogram base="true" name="Tabs.UnusedInInterval.Count" units="tabs" - expires_after="M95"> +<histogram name="Tabs.UnusedInInterval.Count{Tabs_TabUsageIntervalLength}" + units="tabs" expires_after="M95"> <owner>sebmarchand@chromium.org</owner> <owner>catan-team@chromium.org</owner> <summary> The number of tabs that haven't been interacted with, visible or audible or visible during a given interval of time and still exist at the end of this - interval. + interval. {Tabs_TabUsageIntervalLength} </summary> + <token key="Tabs_TabUsageIntervalLength" + variants="Tabs_TabUsageIntervalLength"> + <variant name=""> + <obsolete> + Base histogram. Use suffixes of this histogram instead. + </obsolete> + </variant> + </token> </histogram> -<histogram base="true" name="Tabs.UsedAndClosedInInterval.Count" units="tabs" - expires_after="M95"> +<histogram + name="Tabs.UsedAndClosedInInterval.Count{Tabs_TabUsageIntervalLength}" + units="tabs" expires_after="M95"> <owner>sebmarchand@chromium.org</owner> <owner>catan-team@chromium.org</owner> <summary> The number of tabs that have been interacted with, visible or audible over a given interval of time, but which no longer exist at all at the end of this - interval. + interval. {Tabs_TabUsageIntervalLength} </summary> + <token key="Tabs_TabUsageIntervalLength" + variants="Tabs_TabUsageIntervalLength"> + <variant name=""> + <obsolete> + Base histogram. Use suffixes of this histogram instead. + </obsolete> + </variant> + </token> </histogram> -<histogram base="true" name="Tabs.UsedInInterval.Count" units="tabs" - expires_after="M95"> +<histogram name="Tabs.UsedInInterval.Count{Tabs_TabUsageIntervalLength}" + units="tabs" expires_after="M95"> <owner>sebmarchand@chromium.org</owner> <owner>catan-team@chromium.org</owner> <summary> The number of tabs that have been interacted with, visible or audible during a given interval of time, includes tabs that don't exist at the end of this - interval. + interval. {Tabs_TabUsageIntervalLength} </summary> + <token key="Tabs_TabUsageIntervalLength" + variants="Tabs_TabUsageIntervalLength"> + <variant name=""> + <obsolete> + Base histogram. Use suffixes of this histogram instead. + </obsolete> + </variant> + </token> </histogram> <histogram name="Tabs.WindowCount" units="tabs" expires_after="never">
diff --git a/tools/metrics/histograms/histograms_xml/translate/histograms.xml b/tools/metrics/histograms/histograms_xml/translate/histograms.xml index 1cf05a3..afe1e7e8 100644 --- a/tools/metrics/histograms/histograms_xml/translate/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/translate/histograms.xml
@@ -260,7 +260,7 @@ </histogram> <histogram name="Translate.HrefHint.Status" enum="HrefTranslateStatus" - expires_after="2021-02-07"> + expires_after="2021-04-18"> <owner>megjablon@google.com</owner> <owner>chrome-language@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/ukm/histograms.xml b/tools/metrics/histograms/histograms_xml/ukm/histograms.xml index b1d268e..2d0e661 100644 --- a/tools/metrics/histograms/histograms_xml/ukm/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/ukm/histograms.xml
@@ -80,7 +80,7 @@ </histogram> <histogram name="UKM.Entries.Dropped.ByEntryHash" enum="UkmEventNameHash" - expires_after="2021-02-07"> + expires_after="2021-04-18"> <owner>jwd@chromium.org</owner> <owner>ukm-team@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/uma/histograms.xml b/tools/metrics/histograms/histograms_xml/uma/histograms.xml index a3be2bc..db0ad45 100644 --- a/tools/metrics/histograms/histograms_xml/uma/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/uma/histograms.xml
@@ -571,7 +571,7 @@ </histogram> <histogram name="UMA.TruncatedEvents.UserAction" units="events" - expires_after="2021-04-11"> + expires_after="2021-04-18"> <owner>rkaplow@chromium.org</owner> <owner>src/base/metrics/OWNERS</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/v8/histograms.xml b/tools/metrics/histograms/histograms_xml/v8/histograms.xml index 8bafc3f..fe70b520 100644 --- a/tools/metrics/histograms/histograms_xml/v8/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/v8/histograms.xml
@@ -46,7 +46,7 @@ </summary> </histogram> -<histogram name="V8.CodeCacheSizeRatio" units="%" expires_after="2021-02-14"> +<histogram name="V8.CodeCacheSizeRatio" units="%" expires_after="2021-04-18"> <owner>yangguo@chromium.org</owner> <summary>Cache size to source size ratio when caching compiled code.</summary> </histogram> @@ -80,7 +80,7 @@ </histogram> <histogram name="V8.CompileDeserializeMicroSeconds" units="microseconds" - expires_after="2021-02-14"> + expires_after="2021-04-18"> <owner>vogelheim@chromium.org</owner> <summary> Time spent deseriailzing code, used by V8 code caching.
diff --git a/tools/metrics/histograms/histograms_xml/web_audio/histograms.xml b/tools/metrics/histograms/histograms_xml/web_audio/histograms.xml index a8413d5..4933494 100644 --- a/tools/metrics/histograms/histograms_xml/web_audio/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/web_audio/histograms.xml
@@ -22,7 +22,7 @@ <histograms> <histogram name="WebAudio.AudioBuffer.Length" units="frames" - expires_after="2021-01-06"> + expires_after="2021-04-18"> <owner>rtoy@chromium.org</owner> <owner>hongchan@chromium.org</owner> <summary> @@ -42,7 +42,7 @@ </histogram> <histogram name="WebAudio.AudioBuffer.SampleRate384kHz" units="Hz" - expires_after="2021-01-06"> + expires_after="2021-04-18"> <owner>rtoy@chromium.org</owner> <owner>hongchan@chromium.org</owner> <summary> @@ -84,7 +84,7 @@ </histogram> <histogram name="WebAudio.AudioContextOptions.sampleRate" units="Hz" - expires_after="2021-02-16"> + expires_after="2021-04-18"> <owner>rtoy@chromium.org</owner> <owner>hongchan@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/histograms_xml/web_rtc/histograms.xml b/tools/metrics/histograms/histograms_xml/web_rtc/histograms.xml index 790eca7b..dc4e2938 100644 --- a/tools/metrics/histograms/histograms_xml/web_rtc/histograms.xml +++ b/tools/metrics/histograms/histograms_xml/web_rtc/histograms.xml
@@ -205,7 +205,7 @@ </histogram> <histogram name="WebRTC.Audio.ApmCaptureOutputLevelPeakRms" - units="dBFS (negated)" expires_after="2021-02-14"> + units="dBFS (negated)" expires_after="2021-04-18"> <owner>peah@chromium.org</owner> <summary> This histogram reports the peak RMS of the signal in the output of WebRTC's
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json index 7ab30c3..8dfea9b1 100644 --- a/tools/perf/core/perfetto_binary_roller/binary_deps.json +++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -6,11 +6,11 @@ }, "mac": { "hash": "e77496c8966fa19fab26e6004a57d6eb119421db", - "remote_path": "perfetto_binaries/trace_processor_shell/mac/e6f794f1dc5dcb51696a9c70ba882081f91859e7/trace_processor_shell" + "remote_path": "perfetto_binaries/trace_processor_shell/mac/be6747613d78aa1a7d88423b063d7a74fa3899e0/trace_processor_shell" }, "linux": { "hash": "ffc8f91e15cd30c405b48b566f4fe03e0b6ff011", - "remote_path": "perfetto_binaries/trace_processor_shell/linux/5f6b5e4dbaf550b6b17d0288a71e0fa4aa7b19ef/trace_processor_shell" + "remote_path": "perfetto_binaries/trace_processor_shell/linux/be6747613d78aa1a7d88423b063d7a74fa3899e0/trace_processor_shell" } }, "power_profile.sql": {
diff --git a/ui/accessibility/extensions/strings/accessibility_extensions_strings_iw.xtb b/ui/accessibility/extensions/strings/accessibility_extensions_strings_iw.xtb index ebe51db..e296336 100644 --- a/ui/accessibility/extensions/strings/accessibility_extensions_strings_iw.xtb +++ b/ui/accessibility/extensions/strings/accessibility_extensions_strings_iw.xtb
@@ -8,7 +8,7 @@ <translation id="1588438908519853928">רגיל</translation> <translation id="1591070050619849194">השבת כליל אנימציה בתמונות.</translation> <translation id="1703735871906654364">דפדוף עם סמן</translation> -<translation id="1791496371305830581">אפשר את כל התמונות המכילות אנימציה.</translation> +<translation id="1791496371305830581">הפעלת כל התמונות המכילות אנימציה.</translation> <translation id="1996252509865389616">האם להפעיל?</translation> <translation id="2079545284768500474">ביטול הפעולה</translation> <translation id="2179565792157161713">פתיחת תיאור ארוך בכרטיסייה חדשה</translation> @@ -22,11 +22,11 @@ <translation id="3252573918265662711">הגדרות</translation> <translation id="3410969471888629217">שכח התאמות אישיות של אתר</translation> <translation id="3435896845095436175">הפעלה</translation> -<translation id="3622586652998721735">הגדר כברירת מחדל של ערכת צבעים</translation> +<translation id="3622586652998721735">הגדרה כברירת מחדל של ערכת צבעים</translation> <translation id="3812541808639806898">מציג טקסט Alt של תמונה</translation> <translation id="381767806621926835">לחץ לחיצה ארוכה על כל פריט עם המאפיין "longdesc" או "aria-describedat" כדי לגשת לתיאור הארוך שלו.</translation> <translation id="4023902424053835668">דפדף בטקסט של דפי אינטרנט באמצעות מקשי החצים.</translation> -<translation id="4388820049312272371">הדגש את מיקום הסמן באמצעות הבהוב מהיר.</translation> +<translation id="4388820049312272371">הדגשת מיקום הסמן באמצעות הבהוב מהיר.</translation> <translation id="4394049700291259645">השבת</translation> <translation id="4769065380738716500">תמונות הוחלפו על-ידי טקסט ה-alt שלהן.</translation> <translation id="4896660567607030658">אין משוב, פשוט הצג את הסמן.</translation> @@ -40,7 +40,7 @@ <translation id="5331422999063554397">צבע הפוך</translation> <translation id="5555153510860501336">ניגודיות גבוהה מושבתת</translation> <translation id="5558600050691192317">פקודות מקלדת</translation> -<translation id="5594989420907487559">הפעל אנימציות פעם אחת בלבד, או השבת אנימציות לחלוטין.</translation> +<translation id="5594989420907487559">הפעלה של אנימציות פעם אחת בלבד, או השבתת אנימציות לחלוטין.</translation> <translation id="5631241868147802353">ברירת מחדל של ערכת צבעים:</translation> <translation id="5650358096585648000">משוב חזותי</translation> <translation id="5710185147685935461">שנה או הפוך את ערכת הצבעים כך שדפי אינטרנט יהיו קלים לקריאה.</translation> @@ -58,7 +58,7 @@ <translation id="7384431257964758081">ניגודיות גבוהה מופעלת</translation> <translation id="7586636300921797327">שלב 2: כוון את המחוון עד שכל הכוכבים יוצגו בשורה שנבחרה</translation> <translation id="7658239707568436148">ביטול</translation> -<translation id="786423340267544509">הוסף גבול לאלמנטים עם מסגרות aria-describedat או longdesc.</translation> +<translation id="786423340267544509">הוספת גבול לאלמנטים עם מסגרות aria-describedat או longdesc.</translation> <translation id="7942349550061667556">אדום</translation> <translation id="8260673944985561857">אפשרויות דפדוף עם סמן</translation> <translation id="8321034316479930120">מדיניות בנושא אנימציה</translation>
diff --git a/ui/aura/BUILD.gn b/ui/aura/BUILD.gn index 76a5742..193de1bb 100644 --- a/ui/aura/BUILD.gn +++ b/ui/aura/BUILD.gn
@@ -322,6 +322,7 @@ sources = [ "../compositor_extra/shadow_unittest.cc", + "client/screen_position_client_unittest.cc", "gestures/gesture_recognizer_unittest.cc", "test/aura_test_suite.h", "test/run_all_unittests.cc",
diff --git a/ui/aura/client/screen_position_client.cc b/ui/aura/client/screen_position_client.cc index b40ff46..7bc23e4 100644 --- a/ui/aura/client/screen_position_client.cc +++ b/ui/aura/client/screen_position_client.cc
@@ -30,6 +30,28 @@ *point = gfx::ToFlooredPoint(point_float); } +void ScreenPositionClient::ConvertPointToRootWindowIgnoringTransforms( + const Window* window, + gfx::Point* point) { + DCHECK(window); + DCHECK(window->GetRootWindow()); + Window* ancestor = const_cast<Window*>(window); + while (ancestor && !ancestor->IsRootWindow()) { + const gfx::Point origin = ancestor->bounds().origin(); + point->Offset(origin.x(), origin.y()); + ancestor = ancestor->parent(); + } +} + +void ScreenPositionClient::ConvertPointToScreenIgnoringTransforms( + const aura::Window* window, + gfx::Point* point) { + const aura::Window* root_window = window->GetRootWindow(); + ConvertPointToRootWindowIgnoringTransforms(window, point); + gfx::Point origin = GetRootWindowOriginInScreen(root_window); + point->Offset(origin.x(), origin.y()); +} + void SetScreenPositionClient(Window* root_window, ScreenPositionClient* client) { DCHECK_EQ(root_window->GetRootWindow(), root_window);
diff --git a/ui/aura/client/screen_position_client.h b/ui/aura/client/screen_position_client.h index 24e22be..f2d7a44 100644 --- a/ui/aura/client/screen_position_client.h +++ b/ui/aura/client/screen_position_client.h
@@ -45,6 +45,18 @@ virtual void SetBounds(Window* window, const gfx::Rect& bounds, const display::Display& display) = 0; + // Converts |point| from |window|'s coordinate space into screen coordinate + // space. Ignores any transforms that may be applied on |window| or its window + // hieraichy. + void ConvertPointToScreenIgnoringTransforms(const Window* window, + gfx::Point* point); + void ConvertPointToRootWindowIgnoringTransforms(const Window* window, + gfx::Point* point); + + protected: + // Returns the origin of the host platform-window in system DIP coordinates. + virtual gfx::Point GetRootWindowOriginInScreen( + const aura::Window* root_window) = 0; }; // Sets/Gets the activation client on the Window.
diff --git a/ui/aura/client/screen_position_client_unittest.cc b/ui/aura/client/screen_position_client_unittest.cc new file mode 100644 index 0000000..834b73b --- /dev/null +++ b/ui/aura/client/screen_position_client_unittest.cc
@@ -0,0 +1,65 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ui/aura/client/screen_position_client.h" + +#include <memory> + +#include "ui/aura/test/aura_test_base.h" + +namespace aura { +namespace client { + +using ScreenPositionClientTest = test::AuraTestBase; + +class TestScreenPositionClient : public ScreenPositionClient { + public: + TestScreenPositionClient() = default; + TestScreenPositionClient(const TestScreenPositionClient&) = delete; + TestScreenPositionClient& operator=(const TestScreenPositionClient&) = delete; + ~TestScreenPositionClient() override = default; + + // ScreenPositionClient: + void ConvertPointToScreen(const Window* window, gfx::PointF* point) override { + } + void ConvertPointFromScreen(const Window* window, + gfx::PointF* point) override {} + void ConvertHostPointToScreen(Window* root_window, + gfx::Point* point) override {} + void SetBounds(Window* window, + const gfx::Rect& bounds, + const display::Display& display) override {} + + protected: + // ScreenPositionClient: + gfx::Point GetRootWindowOriginInScreen( + const aura::Window* root_window) override { + return gfx::Point(); + } +}; + +TEST_F(ScreenPositionClientTest, ConvertPointToRootWindowIgnoringTransforms) { + std::unique_ptr<Window> parent(CreateNormalWindow(1, root_window(), nullptr)); + std::unique_ptr<Window> child(CreateNormalWindow(2, parent.get(), nullptr)); + + parent->SetBounds(gfx::Rect(50, 50, 200, 200)); + child->SetBounds(gfx::Rect(150, 150, 200, 200)); + + TestScreenPositionClient test_client; + gfx::Point point(100, 100); + test_client.ConvertPointToRootWindowIgnoringTransforms(parent.get(), &point); + EXPECT_EQ(gfx::Point(150, 150), point); + + point = gfx::Point(100, 100); + test_client.ConvertPointToRootWindowIgnoringTransforms(child.get(), &point); + EXPECT_EQ(gfx::Point(300, 300), point); + + point = gfx::Point(100, 100); + child->SetTransform(gfx::Transform(1, 0, 0, 1, 100, 100)); + test_client.ConvertPointToRootWindowIgnoringTransforms(child.get(), &point); + EXPECT_EQ(gfx::Point(300, 300), point); +} + +} // namespace client +} // namespace aura
diff --git a/ui/chromeos/translations/ui_chromeos_strings_hi.xtb b/ui/chromeos/translations/ui_chromeos_strings_hi.xtb index 1d94227..d2f6616 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_hi.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_hi.xtb
@@ -207,7 +207,7 @@ <translation id="3252266817569339921">फ़्रांसीसी</translation> <translation id="3254434849914415189"><ph name="FILE_TYPE" />की फ़ाइलों के लिए डिफ़ॉल्ट ऐप्लिकेशन चुनें:</translation> <translation id="3264582393905923483">प्रसंग</translation> -<translation id="3272909651715601089">"<ph name="PATH" />" को खोला नहीं जा सका</translation> +<translation id="3272909651715601089">"<ph name="PATH" />" को नहीं खोला जा सका</translation> <translation id="3280431534455935878">तैयार कर रहा है</translation> <translation id="3280987981688031357">विनाइल रिकॉर्ड</translation> <translation id="3296763833017966289">जॉर्जियाई</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_hy.xtb b/ui/chromeos/translations/ui_chromeos_strings_hy.xtb index bd8f3875..d8caf7d 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_hy.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_hy.xtb
@@ -636,7 +636,7 @@ <ph name="MARKUP_4" />ջնջեք ֆայլերը ձեր Ներբեռնումների պանակից<ph name="MARKUP_5" /></translation> <translation id="7794058097940213561">Ձևաչափել սարքը</translation> <translation id="7799329977874311193">HTML փաստաթուղթ</translation> -<translation id="7801354353640549019">Chromebook</translation> +<translation id="7801354353640549019">Chromebook սարքեր</translation> <translation id="7805768142964895445">Կարգավիճակ</translation> <translation id="7821462174190887129">Գտնվել է <ph name="FILE_COUNT" /> ֆայլ։ <ph name="LINE_BREAK1" />
diff --git a/ui/chromeos/translations/ui_chromeos_strings_iw.xtb b/ui/chromeos/translations/ui_chromeos_strings_iw.xtb index fefb25b..2f395f2 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_iw.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_iw.xtb
@@ -28,7 +28,7 @@ <translation id="1190144681599273207">הבאת קובץ זה תשתמש בערך ב-<ph name="FILE_SIZE" /> מחבילת הגלישה.</translation> <translation id="1201402288615127009">הבא</translation> <translation id="1208421848177517699">תעתוק (namaste → નમસ્તે)</translation> -<translation id="1243314992276662751">העלה</translation> +<translation id="1243314992276662751">העלאה</translation> <translation id="1249250836236328755">ז'אנר</translation> <translation id="1276362640455948667">פורטוגזית עם מקלדת בינלאומית של ארה"ב</translation> <translation id="1278813325885878377">מקלדת הונגרית בפריסת QWERTY</translation> @@ -43,7 +43,7 @@ <translation id="1352103415082130575">מקלדת תאילנדית (Pattachote)</translation> <translation id="1358735829858566124">לא ניתן להשתמש בקובץ או בספרייה.</translation> <translation id="1363028406613469049">רצועה</translation> -<translation id="1378727793141957596">ברוכים הבאים ל-Google Drive!</translation> +<translation id="1378727793141957596">ברוך בואך אל Google Drive!</translation> <translation id="1383876407941801731">חפש</translation> <translation id="1395262318152388157">מחוון חיפוש</translation> <translation id="1399648040768741453">מקלדת טלוגו (פונטית)</translation> @@ -59,7 +59,7 @@ <translation id="1497522201463361063">לא ניתן לשנות את השם של "<ph name="FILE_NAME" />". <ph name="ERROR_MESSAGE" /></translation> <translation id="1538729222189715449">מתבצעת פתיחה של קובצי Linux...</translation> <translation id="1547964879613821194">אנגלית קנדית</translation> -<translation id="1556189134700913550">החל על הכל</translation> +<translation id="1556189134700913550">החלה על הכול</translation> <translation id="1561842594491319104">מכשירי Chrome</translation> <translation id="1572585716423026576">הגדרה כטפט</translation> <translation id="158809615184981282">מקלדת פארואזית</translation> @@ -143,7 +143,7 @@ <translation id="2515586267016047495">Alt</translation> <translation id="2529133382850673012">מקלדת אנגלית (ארה"ב)</translation> <translation id="2542049655219295786">טבלה של Google</translation> -<translation id="2547921442987553570">הוסף אל <ph name="EXTENSION_NAME" /></translation> +<translation id="2547921442987553570">הוספה אל <ph name="EXTENSION_NAME" /></translation> <translation id="255937426064304553">ארה"ב - בינלאומית</translation> <translation id="2562685439590298522">Google Docs</translation> <translation id="2563185590376525700">צפרדע</translation> @@ -205,7 +205,7 @@ <translation id="3245321423178950146">אמן לא ידוע</translation> <translation id="3248185426436836442">בהמתנה</translation> <translation id="3252266817569339921">צרפתית</translation> -<translation id="3254434849914415189">בחר את יישום ברירת המחדל עבור קובצי <ph name="FILE_TYPE" />:</translation> +<translation id="3254434849914415189">יש לבחור את יישום ברירת המחדל עבור קובצי <ph name="FILE_TYPE" />:</translation> <translation id="3264582393905923483">הקשר</translation> <translation id="3272909651715601089">לא ניתן היה לפתוח את "<ph name="PATH" />"</translation> <translation id="3280431534455935878">מכין</translation> @@ -214,7 +214,7 @@ <translation id="3326821416087822643">מתבצע כיווץ של <ph name="FILE_NAME" />...</translation> <translation id="3335337277364016868">שנת הקלטה</translation> <translation id="3338239663705455570">מקלדת סלובנית</translation> -<translation id="3353984535370177728">בחר תיקיה להעלאה</translation> +<translation id="3353984535370177728">בחירת תיקייה להעלאה</translation> <translation id="3356580349448036450">בוצע</translation> <translation id="3399597614303179694">מקלדת מקדונית</translation> <translation id="3414856743105198592">פרמוט המדיה הנשלפת יגרום למחיקת כל הנתונים. האם ברצונך להמשיך?</translation> @@ -261,7 +261,7 @@ <translation id="3811494700605067549">בחרת קובץ אחד</translation> <translation id="3815016854028376614">שיטת קלט Zhuyin</translation> <translation id="3825863595139017598">מקלדת מונגולית</translation> -<translation id="38275787300541712">הקש על Enter בסיום</translation> +<translation id="38275787300541712">יש להקיש על Enter בסיום</translation> <translation id="3830674330436234648">לא ניתן להפעיל</translation> <translation id="3833761542219863804">תעתוק (mausam → ਮੌਸਮ)</translation> <translation id="383652340667548381">סרבית</translation> @@ -403,13 +403,13 @@ <translation id="5241298539944515331">מקלדת וייטנאמית (VIQR)</translation> <translation id="5253070652067921974">נוצר על ידי</translation> <translation id="5257456363153333584">שפירית</translation> -<translation id="5262311848634918433"><ph name="MARKUP_1" />היכנס לקבצים מכל מקום, אפילו כשאינך מחובר לאינטרנט.<ph name="MARKUP_2" /> +<translation id="5262311848634918433"><ph name="MARKUP_1" />גישה לקבצים מכל מקום, גם ללא חיבור לאינטרנט.<ph name="MARKUP_2" /> קבצים ב-Google Drive מעודכנים וזמינים בכל מכשיר.<ph name="MARKUP_3" /> - <ph name="MARKUP_4" /> שמור את הקבצים שלך במקום בטוח.<ph name="MARKUP_5" /> + <ph name="MARKUP_4" /> שמירת הקבצים שלך במקום בטוח.<ph name="MARKUP_5" /> גם אם יקרה משהו למכשיר שלך, הקבצים שלך שמורים בבטחה ב-Google Drive.<ph name="MARKUP_6" /> - <ph name="MARKUP_7" />שתף, צור ועבוד במשותף<ph name="MARKUP_8" /> - על קבצים עם אנשים נוספים - הכל במקום אחד.<ph name="MARKUP_9" /></translation> + <ph name="MARKUP_7" />שתף, יצירה ועבודה במשותף<ph name="MARKUP_8" /> + על קבצים עם אנשים נוספים - הכול במקום אחד.<ph name="MARKUP_9" /></translation> <translation id="5274350207900771082">ההעתקה הסתיימה.</translation> <translation id="5275973617553375938">קבצים ששוחזרו מ-Google Drive</translation> <translation id="5283140566205748520">צרפתית (בלגיה)</translation> @@ -434,7 +434,7 @@ <translation id="5465122519792752163">מקלדת נפאלית (InScript)</translation> <translation id="5469868506864199649">איטלקית</translation> <translation id="5484429245813572665">אינדונזית</translation> -<translation id="5494920125229734069">בחר הכל</translation> +<translation id="5494920125229734069">בחירת הכול</translation> <translation id="5500122897333236901">איסלנדית</translation> <translation id="5508696409934741614">נקודות</translation> <translation id="5522908512596376669">רשימת הקבצים מוצגת עכשיו בתצוגת רשימה.</translation> @@ -444,7 +444,7 @@ <translation id="5583640892426849032">Backspace</translation> <translation id="5605830556594064952">ארה"ב - Dvorak</translation> <translation id="5640179856859982418">מקלדת שוויצרית</translation> -<translation id="5649768706273821470">האזן</translation> +<translation id="5649768706273821470">האזנה</translation> <translation id="5678784840044122290">אפליקציית Linux תהיה זמינה דרך המסוף שלך, ובחלק מהמקרים הסמל שלה יופיע במרכז האפליקציות.</translation> <translation id="5686799162999241776"><ph name="BEGIN_BOLD" />לא ניתן להתנתק מהארכיון או מהדיסק הווירטואלי<ph name="END_BOLD" /> <ph name="LINE_BREAKS" /> @@ -502,7 +502,7 @@ <translation id="6205710420833115353">פעולות מסוימות נמשכות זמן רב מהצפוי. האם ברצונך לבטל אותן?</translation> <translation id="6224253798271602650">פירמוט של <ph name="DRIVE_NAME" /></translation> <translation id="6227235786875481728">לא ניתן להפעיל קובץ זה.</translation> -<translation id="6248400709929739064">הפעל כתוביות</translation> +<translation id="6248400709929739064">הפעלת כתוביות</translation> <translation id="6264347891387618177">תעתוק (selam → ሰላም)</translation> <translation id="6287852322318138013">בחירת אפליקציה לפתיחת הקובץ</translation> <translation id="6305012486838822927">מקלדת לאית</translation> @@ -525,7 +525,7 @@ <translation id="6527303717912515753">שיתוף</translation> <translation id="653019979737152879">מסנכרן את <ph name="FILE_NAME" />...</translation> <translation id="6549689063733911810">מהזמן האחרון</translation> -<translation id="6556866813142980365">בצע מחדש</translation> +<translation id="6556866813142980365">ביצוע מחדש</translation> <translation id="6558280019477628686">אירעה שגיאה. ייתכן שפריטים מסוימים לא נמחקו.</translation> <translation id="656398493051028875">מוחק את "<ph name="FILENAME" />"...</translation> <translation id="6581162200855843583">קישור ל-Google Drive</translation> @@ -540,7 +540,7 @@ <translation id="6718273304615422081">דוחס...</translation> <translation id="6751256176799620176">תיקייה אחת נבחרה</translation> <translation id="6760765581316020278">מקלדת וייטנאמית (VNI)</translation> -<translation id="6790428901817661496">הפעל</translation> +<translation id="6790428901817661496">הפעלה</translation> <translation id="6795884519221689054">פנדה</translation> <translation id="6806699711453372963">ניהול שיתוף ב-Linux</translation> <translation id="6808193438228982088">שועל</translation> @@ -565,7 +565,7 @@ נמצאו <ph name="FILE_COUNT" /></translation> <translation id="6935521024859866267">פרפר הפוך</translation> <translation id="6939777852457331078">מקלדת US Workman</translation> -<translation id="696203921837389374">הפעל סנכרון של חבילת הגלישה</translation> +<translation id="696203921837389374">הפעלת סנכרון של חבילת הגלישה</translation> <translation id="6965382102122355670">אישור</translation> <translation id="6970230597523682626">בולגרית</translation> <translation id="6973630695168034713">תיקיות</translation> @@ -613,7 +613,7 @@ <translation id="751507702149411736">ביילורוסית</translation> <translation id="7544853251252956727">ערבוב</translation> <translation id="7547811415869834682">הולנדית</translation> -<translation id="7551643184018910560">הצמד למדף</translation> +<translation id="7551643184018910560">הצמדה למדף</translation> <translation id="7576032389798113292">6x4</translation> <translation id="7589661784326793847">המתן מספר רגעים</translation> <translation id="7603724359189955920">רשתות</translation> @@ -629,7 +629,7 @@ <translation id="7706319470528945664">מקלדת פורטוגזית</translation> <translation id="7711920809702896782">פרטי התמונה</translation> <translation id="7724603315864178912">חתוך</translation> -<translation id="7730494089396812859">הצג פרטים של גיבוי בענן</translation> +<translation id="7730494089396812859">הצגת פרטים של גיבוי בענן</translation> <translation id="7748626145866214022">אפשרויות נוספות זמינות בסרגל הפעולות. הקשה על Alt + A תדגיש את סרגל הפעולות.</translation> <translation id="7765158879357617694">העברה</translation> <translation id="7774365994322694683">ציפור</translation> @@ -646,7 +646,7 @@ <ph name="LINE_BREAK2" /> אפשר לנסות לבחור פחות תמונות.</translation> <translation id="7825423931463735974">מקלדת טמילית (Tamil99)</translation> -<translation id="7827012282502221009">TB <ph name="NUMBER_OF_TB" /></translation> +<translation id="7827012282502221009"><ph name="NUMBER_OF_TB" />TB</translation> <translation id="7839804798877833423">הבאת קבצים אלה תשתמש בערך ב-<ph name="FILE_SIZE" /> מחבילת הגלישה.</translation> <translation id="7846076177841592234">בטל את הבחירה</translation> <translation id="7853966320808728790">BÉPO - צרפתית</translation> @@ -762,7 +762,7 @@ <translation id="912419004897138677">Codec</translation> <translation id="9129931661813833980">הצמדת התיקייה</translation> <translation id="9130775360844693113">חברים באחסון השיתופי '<ph name="DESTINATION_NAME" />' יקבלו גישה לפריטים האלה.</translation> -<translation id="9131598836763251128">בחר קובץ אחד או יותר</translation> +<translation id="9131598836763251128">יש לבחור קובץ אחד או יותר</translation> <translation id="9133055936679483811">הכיווץ נכשל. <ph name="ERROR_MESSAGE" /></translation> <translation id="9134524245363717059">קובץ זה מיועד למחשב המשתמש בתוכנה של Macintosh. הוא אינו מתאים למכשירך שעובד עם מערכת הפעלה של Chrome. חפש יישום חלופי בחנות האינטרנט של Chrome.</translation> <translation id="913758436357682283">מקדלת Myanmar Myansan</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_or.xtb b/ui/chromeos/translations/ui_chromeos_strings_or.xtb index c57a11c..e662903 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_or.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_or.xtb
@@ -310,7 +310,7 @@ <translation id="4477219268485577442">ବୁଲ୍ଗେରିଆନ୍ ଫୋନେଟିକ୍</translation> <translation id="4479812471636796472">US ଡଭୋର୍କ୍ କୀବୋର୍ଡ୍</translation> <translation id="4522570452068850558">ବିବରଣୀ</translation> -<translation id="4527800702232535228">Parallels Desktop ସହିତ ଏହି ଫୋଲ୍ଡର ସେୟାର୍ କରନ୍ତୁ</translation> +<translation id="4527800702232535228">Parallels Desktop ସହିତ ଏହି ଫୋଲ୍ଡରକୁ ସେୟାର୍ କରାଯାଇଛି</translation> <translation id="4552678318981539154">ଅଧିକ ଷ୍ଟୋରେଜ୍ କିଣନ୍ତୁ</translation> <translation id="4559767610552730302">ବୋକେ</translation> <translation id="4572815280350369984"><ph name="FILE_TYPE" /> ଫାଇଲ୍</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ta.xtb b/ui/chromeos/translations/ui_chromeos_strings_ta.xtb index f9a61ced..bc5f6ea5 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ta.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ta.xtb
@@ -310,7 +310,7 @@ <translation id="4477219268485577442">பல்கேரியன் ஒலிப்புமுறை</translation> <translation id="4479812471636796472">அமெரிக்க துவோரக் விசைப்பலகை</translation> <translation id="4522570452068850558">விவரங்கள்</translation> -<translation id="4527800702232535228">Parallels Desktopபுடன் இந்தக் கோப்புறை பகிரப்பட்டது</translation> +<translation id="4527800702232535228">Parallels Desktopபுடன் இந்தக் கோப்புறை பகிரப்பட்டுள்ளது</translation> <translation id="4552678318981539154">கூடுதல் சேமிப்பிடத்தை வாங்கு</translation> <translation id="4559767610552730302">பொக்கே</translation> <translation id="4572815280350369984"><ph name="FILE_TYPE" /> கோப்பு</translation>
diff --git a/ui/gl/generate_bindings.py b/ui/gl/generate_bindings.py index bfec8b6..6c30dfb 100755 --- a/ui/gl/generate_bindings.py +++ b/ui/gl/generate_bindings.py
@@ -1209,7 +1209,9 @@ 'GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length,' 'GLint* values', }, { 'return_type': 'void', - 'names': ['glGetTexLevelParameterfv'], + 'versions': [{ 'name': 'glGetTexLevelParameterfv' }, + {'name': 'glGetTexLevelParameterfvANGLE', + 'extensions': ['GL_ANGLE_get_tex_level_parameter']}], 'arguments': 'GLenum target, GLint level, GLenum pname, GLfloat* params', }, { 'return_type': 'void', 'versions': [{'name': 'glGetTexLevelParameterfvRobustANGLE', @@ -1218,7 +1220,9 @@ 'GLenum target, GLint level, GLenum pname, GLsizei bufSize, ' 'GLsizei* length, GLfloat* params', }, { 'return_type': 'void', - 'names': ['glGetTexLevelParameteriv'], + 'versions': [{ 'name': 'glGetTexLevelParameteriv' }, + {'name': 'glGetTexLevelParameterivANGLE', + 'extensions': ['GL_ANGLE_get_tex_level_parameter']}], 'arguments': 'GLenum target, GLint level, GLenum pname, GLint* params', }, { 'return_type': 'void', 'versions': [{'name': 'glGetTexLevelParameterivRobustANGLE',
diff --git a/ui/gl/gl_bindings_autogen_gl.cc b/ui/gl/gl_bindings_autogen_gl.cc index a9c9d7a..78c9592 100644 --- a/ui/gl/gl_bindings_autogen_gl.cc +++ b/ui/gl/gl_bindings_autogen_gl.cc
@@ -287,6 +287,8 @@ gfx::HasExtension(extensions, "GL_ANGLE_framebuffer_blit"); ext.b_GL_ANGLE_framebuffer_multisample = gfx::HasExtension(extensions, "GL_ANGLE_framebuffer_multisample"); + ext.b_GL_ANGLE_get_tex_level_parameter = + gfx::HasExtension(extensions, "GL_ANGLE_get_tex_level_parameter"); ext.b_GL_ANGLE_instanced_arrays = gfx::HasExtension(extensions, "GL_ANGLE_instanced_arrays"); ext.b_GL_ANGLE_memory_object_flags = @@ -1785,6 +1787,10 @@ fn.glGetTexLevelParameterfvFn = reinterpret_cast<glGetTexLevelParameterfvProc>( GetGLProcAddress("glGetTexLevelParameterfv")); + } else if (ext.b_GL_ANGLE_get_tex_level_parameter) { + fn.glGetTexLevelParameterfvFn = + reinterpret_cast<glGetTexLevelParameterfvProc>( + GetGLProcAddress("glGetTexLevelParameterfvANGLE")); } if (ext.b_GL_ANGLE_robust_client_memory) { @@ -1797,6 +1803,10 @@ fn.glGetTexLevelParameterivFn = reinterpret_cast<glGetTexLevelParameterivProc>( GetGLProcAddress("glGetTexLevelParameteriv")); + } else if (ext.b_GL_ANGLE_get_tex_level_parameter) { + fn.glGetTexLevelParameterivFn = + reinterpret_cast<glGetTexLevelParameterivProc>( + GetGLProcAddress("glGetTexLevelParameterivANGLE")); } if (ext.b_GL_ANGLE_robust_client_memory) {
diff --git a/ui/gl/gl_bindings_autogen_gl.h b/ui/gl/gl_bindings_autogen_gl.h index e28fa48..24ec149 100644 --- a/ui/gl/gl_bindings_autogen_gl.h +++ b/ui/gl/gl_bindings_autogen_gl.h
@@ -1955,6 +1955,7 @@ bool b_GL_ANGLE_base_vertex_base_instance; bool b_GL_ANGLE_framebuffer_blit; bool b_GL_ANGLE_framebuffer_multisample; + bool b_GL_ANGLE_get_tex_level_parameter; bool b_GL_ANGLE_instanced_arrays; bool b_GL_ANGLE_memory_object_flags; bool b_GL_ANGLE_memory_object_fuchsia;
diff --git a/ui/gl/gl_bindings_autogen_mock.cc b/ui/gl/gl_bindings_autogen_mock.cc index 27ce4e6c..49952b4 100644 --- a/ui/gl/gl_bindings_autogen_mock.cc +++ b/ui/gl/gl_bindings_autogen_mock.cc
@@ -2705,6 +2705,15 @@ } void GL_BINDING_CALL +MockGLInterface::Mock_glGetTexLevelParameterfvANGLE(GLenum target, + GLint level, + GLenum pname, + GLfloat* params) { + MakeGlMockFunctionUnique("glGetTexLevelParameterfvANGLE"); + interface_->GetTexLevelParameterfv(target, level, pname, params); +} + +void GL_BINDING_CALL MockGLInterface::Mock_glGetTexLevelParameterfvRobustANGLE(GLenum target, GLint level, GLenum pname, @@ -2726,6 +2735,15 @@ } void GL_BINDING_CALL +MockGLInterface::Mock_glGetTexLevelParameterivANGLE(GLenum target, + GLint level, + GLenum pname, + GLint* params) { + MakeGlMockFunctionUnique("glGetTexLevelParameterivANGLE"); + interface_->GetTexLevelParameteriv(target, level, pname, params); +} + +void GL_BINDING_CALL MockGLInterface::Mock_glGetTexLevelParameterivRobustANGLE(GLenum target, GLint level, GLenum pname, @@ -6132,12 +6150,18 @@ if (strcmp(name, "glGetTexLevelParameterfv") == 0) return reinterpret_cast<GLFunctionPointerType>( Mock_glGetTexLevelParameterfv); + if (strcmp(name, "glGetTexLevelParameterfvANGLE") == 0) + return reinterpret_cast<GLFunctionPointerType>( + Mock_glGetTexLevelParameterfvANGLE); if (strcmp(name, "glGetTexLevelParameterfvRobustANGLE") == 0) return reinterpret_cast<GLFunctionPointerType>( Mock_glGetTexLevelParameterfvRobustANGLE); if (strcmp(name, "glGetTexLevelParameteriv") == 0) return reinterpret_cast<GLFunctionPointerType>( Mock_glGetTexLevelParameteriv); + if (strcmp(name, "glGetTexLevelParameterivANGLE") == 0) + return reinterpret_cast<GLFunctionPointerType>( + Mock_glGetTexLevelParameterivANGLE); if (strcmp(name, "glGetTexLevelParameterivRobustANGLE") == 0) return reinterpret_cast<GLFunctionPointerType>( Mock_glGetTexLevelParameterivRobustANGLE);
diff --git a/ui/gl/gl_bindings_autogen_mock.h b/ui/gl/gl_bindings_autogen_mock.h index 39f9c8e..b53ea5a 100644 --- a/ui/gl/gl_bindings_autogen_mock.h +++ b/ui/gl/gl_bindings_autogen_mock.h
@@ -1159,6 +1159,10 @@ GLint level, GLenum pname, GLfloat* params); +static void GL_BINDING_CALL Mock_glGetTexLevelParameterfvANGLE(GLenum target, + GLint level, + GLenum pname, + GLfloat* params); static void GL_BINDING_CALL Mock_glGetTexLevelParameterfvRobustANGLE(GLenum target, GLint level, @@ -1170,6 +1174,10 @@ GLint level, GLenum pname, GLint* params); +static void GL_BINDING_CALL Mock_glGetTexLevelParameterivANGLE(GLenum target, + GLint level, + GLenum pname, + GLint* params); static void GL_BINDING_CALL Mock_glGetTexLevelParameterivRobustANGLE(GLenum target, GLint level,
diff --git a/ui/gl/gl_surface_glx.cc b/ui/gl/gl_surface_glx.cc index ab3b32e0..1efe079 100644 --- a/ui/gl/gl_surface_glx.cc +++ b/ui/gl/gl_surface_glx.cc
@@ -237,6 +237,10 @@ DCHECK(task_runner()->BelongsToCurrentThread()); if (context_) glXDestroyContext(GetConnection()->display(), context_); + // Release the connection from this thread's sequence so that a new + // SGIVideoSyncThread can reuse the connection. The connection must be + // reused since it can only be created before sandbox initialization. + GetConnection()->DetachFromSequence(); } GLXContext GetGLXContext() {
diff --git a/ui/gl/yuv_to_rgb_converter.cc b/ui/gl/yuv_to_rgb_converter.cc index 3047bf5..ca767d6 100644 --- a/ui/gl/yuv_to_rgb_converter.cc +++ b/ui/gl/yuv_to_rgb_converter.cc
@@ -189,6 +189,10 @@ if (has_vertex_array_objects) { glGenVertexArraysOES(1, &vertex_array_object_); } + + has_get_tex_level_parameter_ = + !gl_version_info.is_es || gl_version_info.IsAtLeastGLES(3, 1) || + g_current_gl_driver->ext.b_GL_ANGLE_get_tex_level_parameter; } YUVToRGBConverter::~YUVToRGBConverter() { @@ -234,8 +238,32 @@ // Allocate the rgb texture. glActiveTexture(old_active_texture); glBindTexture(target, rgb_texture); - glTexImage2D(target, 0, GL_RGB, size.width(), size.height(), 0, GL_RGB, - rgb_texture_type, nullptr); + + bool needs_texture_init = true; + if (has_get_tex_level_parameter_) { + GLint current_internal_format = 0; + glGetTexLevelParameteriv(target, 0, GL_TEXTURE_INTERNAL_FORMAT, + ¤t_internal_format); + + GLint current_type = 0; + glGetTexLevelParameteriv(target, 0, GL_TEXTURE_RED_TYPE, ¤t_type); + + GLint current_width = 0; + glGetTexLevelParameteriv(target, 0, GL_TEXTURE_WIDTH, ¤t_width); + + GLint current_height = 0; + glGetTexLevelParameteriv(target, 0, GL_TEXTURE_HEIGHT, ¤t_height); + + if (current_internal_format == GL_RGB && + static_cast<unsigned>(current_type) == rgb_texture_type && + current_width == size.width() && current_height == size.height()) { + needs_texture_init = false; + } + } + if (needs_texture_init) { + glTexImage2D(target, 0, GL_RGB, size.width(), size.height(), 0, GL_RGB, + rgb_texture_type, nullptr); + } // Set up and issue the draw call. glActiveTexture(GL_TEXTURE0);
diff --git a/ui/gl/yuv_to_rgb_converter.h b/ui/gl/yuv_to_rgb_converter.h index 2477a05..6076bbe 100644 --- a/ui/gl/yuv_to_rgb_converter.h +++ b/ui/gl/yuv_to_rgb_converter.h
@@ -42,6 +42,7 @@ unsigned uv_texture_ = 0; unsigned vertex_array_object_ = 0; unsigned source_texture_target_ = 0; + bool has_get_tex_level_parameter_ = false; }; } // namespace gl
diff --git a/ui/strings/translations/ui_strings_iw.xtb b/ui/strings/translations/ui_strings_iw.xtb index 3381ee7..1e39072 100644 --- a/ui/strings/translations/ui_strings_iw.xtb +++ b/ui/strings/translations/ui_strings_iw.xtb
@@ -9,7 +9,7 @@ <translation id="1181037720776840403">הסרה</translation> <translation id="1201402288615127009">הבא</translation> <translation id="1218444235442067213"><ph name="APP_NAME" />, אפליקציה מחנות Play</translation> -<translation id="1243314992276662751">העלה</translation> +<translation id="1243314992276662751">העלאה</translation> <translation id="1266864766717917324">לא ניתן היה לשתף את ה<ph name="CONTENT_TYPE" /></translation> <translation id="1269641567813814718">Win</translation> <translation id="1290982764014248209">העברת <ph name="DRAGGED_APP" /> אל התיקייה <ph name="FOLDER_NAME" />.</translation> @@ -31,7 +31,7 @@ <translation id="1761785978543082658"><ph name="QUANTITY" /> B</translation> <translation id="1801827354178857021">נקודה</translation> <translation id="1803208670097017349">{MONTHS,plural, =1{חודש אחד}two{חודשיים}many{# חודשים}other{# חודשים}}</translation> -<translation id="1809410197924942083"><ph name="QUANTITY" /> MB/s</translation> +<translation id="1809410197924942083"><ph name="QUANTITY" />MB/s</translation> <translation id="1830179671306812954">{HOURS,plural, =1{שעה אחת ו }two{שעתיים ו }many{# שעות ו }other{# שעות ו }}</translation> <translation id="1830308660060964064">ההצמדה של <ph name="ITEM_TITLE" /> בוטלה</translation> <translation id="1842960171412779397">בחירה</translation> @@ -54,7 +54,7 @@ <translation id="2267918077332197517">חסימת כל ההודעות מהאתר הזה</translation> <translation id="2289052229480071835">יש להקיש על יעדי המגע במסך.</translation> <translation id="2295140143284145483">סקר</translation> -<translation id="2297836609126180313"><ph name="QUANTITY" /> TB/s</translation> +<translation id="2297836609126180313"><ph name="QUANTITY" />TB/s</translation> <translation id="2353636109065292463">בדיקת חיבור האינטרנט</translation> <translation id="2388990488038464401">להתקשר למספר הזה מהטלפון שלך?</translation> <translation id="24452542372838207">הרחבת ההודעה</translation> @@ -86,7 +86,7 @@ <translation id="3087734570205094154">תחתית</translation> <translation id="3126026824346185272">Ctrl</translation> <translation id="3157931365184549694">שחזר</translation> -<translation id="3183922693828471536">גלול ל'כאן'</translation> +<translation id="3183922693828471536">גלילה ל'כאן'</translation> <translation id="3234408098842461169">חץ למטה</translation> <translation id="3291688615589870984">{DAYS,plural, =1{יום אחד}two{יומיים}many{# ימים}other{# ימים}}</translation> <translation id="3295886253693811851">התקשרות באמצעות</translation> @@ -103,12 +103,12 @@ <translation id="3660179305079774227">חץ למעלה</translation> <translation id="3670030362669914947">מספר</translation> <translation id="3740362395218339114"><ph name="QUANTITY" /> GB/s</translation> -<translation id="3757388668994797779"><ph name="QUANTITY" /> GB</translation> +<translation id="3757388668994797779"><ph name="QUANTITY" />GB</translation> <translation id="3842239759367498783">אפשר להמשיך לקרוא מהמכשיר הנייד <ph name="TITLE" /></translation> <translation id="385051799172605136">חזרה</translation> <translation id="3889424535448813030">חץ לימין</translation> <translation id="3897092660631435901">תפריט</translation> -<translation id="3909791450649380159">גז&ור</translation> +<translation id="3909791450649380159">גז&ירה</translation> <translation id="3990502903496589789">קצה ימני</translation> <translation id="40579289237549812">{UNREAD_NOTIFICATIONS,plural, =1{הודעה אחת שלא נקראה}two{2 הודעות שלא נקראו}many{# הודעות שלא נקראו}other{# הודעות שלא נקראו}}</translation> <translation id="4202807286478387388">קפיצה</translation> @@ -131,7 +131,7 @@ <translation id="5046499563572181734">הקש כאן</translation> <translation id="5076340679995252485">&הדבקה</translation> <translation id="5198715732953550718">האפליקציה <ph name="MOVED_APP_NAME" /> משולבת ביחד עם האפליקציה <ph name="IN_PLACE_APP" /> ליצירת תיקייה חדשה.</translation> -<translation id="520299402983819650"><ph name="QUANTITY" /> PB</translation> +<translation id="520299402983819650"><ph name="QUANTITY" />PB</translation> <translation id="5266161281976477809">משולש הצגה</translation> <translation id="5278860589123563674">השליחה נכשלה</translation> <translation id="5283099933536931082">האפליקציה <ph name="APP_ITEM_TITLE" /> מבקשת את תשומת לבך.</translation> @@ -171,7 +171,7 @@ <translation id="6351032674660237738">הצעות לאפליקציות</translation> <translation id="6364916375976753737">גלול שמאלה</translation> <translation id="6394627529324717982">פסיק</translation> -<translation id="6397363302884558537">הפסק לדבר</translation> +<translation id="6397363302884558537">יש להפסיק לדבר</translation> <translation id="6404817160109697034">{SECONDS,plural, =1{לפני שנ‘ אחת}two{לפני # שנ‘}many{לפני # שנ‘}other{לפני # שנ‘}}</translation> <translation id="6417265370957905582">Google Assistant</translation> <translation id="6430678249303439055">חסימת כל ההודעות מהאפליקציה הזו</translation> @@ -240,7 +240,7 @@ <translation id="8458811141851741261">{YEARS,plural, =1{שנה}two{# שנ}many{# שנ}other{# שנ}}</translation> <translation id="8602707065186045623">קובץ <ph name="SAVEAS_EXTENSION_TYPE" /> (<ph name="SAVEAS_EXTENSION_NAME" />.)</translation> <translation id="8649597172973390955">המדף תמיד מוצג</translation> -<translation id="8677655579646609597"><ph name="QUANTITY" /> KB/s</translation> +<translation id="8677655579646609597"><ph name="QUANTITY" />KB/s</translation> <translation id="8685326675965865247">אפשר לחפש במכשיר, באפליקציות, בהגדרות ובאינטרנט. בעזרת מקשי החיצים ניתן לעבור בין האפליקציות.</translation> <translation id="8725488761726303204">ועוד <ph name="NUMBER" /></translation> <translation id="8730621377337864115">בוצע</translation> @@ -251,7 +251,7 @@ <translation id="8841375032071747811">לחצן 'הקודם'</translation> <translation id="8867568208303837180">שולח...</translation> <translation id="8876215549894133151">פורמט:</translation> -<translation id="8901569739625249689"><ph name="QUANTITY" /> KB</translation> +<translation id="8901569739625249689"><ph name="QUANTITY" />KB</translation> <translation id="8926951137623668982">המדף תמיד מוסתר</translation> <translation id="8996630695507351249">יש לוודא ש-<ph name="TARGET_DEVICE_NAME" /> מחובר לאינטרנט.</translation> <translation id="9002566407876343676">פתיחה</translation>
diff --git a/ui/views/touchui/touch_selection_menu_views.cc b/ui/views/touchui/touch_selection_menu_views.cc index 6e0dfa4..ad3c452 100644 --- a/ui/views/touchui/touch_selection_menu_views.cc +++ b/ui/views/touchui/touch_selection_menu_views.cc
@@ -5,6 +5,7 @@ #include "ui/views/touchui/touch_selection_menu_views.h" #include <memory> +#include <utility> #include "base/stl_util.h" #include "base/strings/utf_string_conversions.h" @@ -123,27 +124,33 @@ void TouchSelectionMenuViews::CreateButtons() { for (const auto& command : kMenuCommands) { - if (!client_->IsCommandIdEnabled(command.command_id)) - continue; - - Button* button = - CreateButton(l10n_util::GetStringUTF16(command.message_id)); - button->set_tag(command.command_id); - AddChildView(button); + if (client_->IsCommandIdEnabled(command.command_id)) { + CreateButton( + l10n_util::GetStringUTF16(command.message_id), + base::BindRepeating(&TouchSelectionMenuViews::ButtonPressed, + base::Unretained(this), command.command_id)); + } } // Finally, add ellipsis button. - LabelButton* ellipsis_button = CreateButton(base::ASCIIToUTF16("...")); - ellipsis_button->SetID(ButtonViewId::kEllipsisButton); - AddChildView(ellipsis_button); + CreateButton(base::ASCIIToUTF16("..."), + base::BindRepeating( + [](TouchSelectionMenuViews* menu) { + menu->CloseMenu(); + menu->client_->RunContextMenu(); + }, + base::Unretained(this))) + ->SetID(ButtonViewId::kEllipsisButton); InvalidateLayout(); } LabelButton* TouchSelectionMenuViews::CreateButton( - const base::string16& title) { + const base::string16& title, + Button::PressedCallback callback) { base::string16 label = gfx::RemoveAcceleratorChar(title, '&', nullptr, nullptr); - LabelButton* button = new LabelButton(this, label, style::CONTEXT_TOUCH_MENU); + auto* button = AddChildView(std::make_unique<LabelButton>( + std::move(callback), label, style::CONTEXT_TOUCH_MENU)); constexpr gfx::Size kMenuButtonMinSize = gfx::Size(63, 38); button->SetMinSize(kMenuButtonMinSize); button->SetFocusForPlatform(); @@ -179,13 +186,10 @@ DisconnectOwner(); } -void TouchSelectionMenuViews::ButtonPressed(Button* sender, +void TouchSelectionMenuViews::ButtonPressed(int command, const ui::Event& event) { CloseMenu(); - if (sender->GetID() != ButtonViewId::kEllipsisButton) - client_->ExecuteCommand(sender->tag(), event.flags()); - else - client_->RunContextMenu(); + client_->ExecuteCommand(command, event.flags()); } BEGIN_METADATA(TouchSelectionMenuViews, BubbleDialogDelegateView)
diff --git a/ui/views/touchui/touch_selection_menu_views.h b/ui/views/touchui/touch_selection_menu_views.h index 77121939..9e1d0932 100644 --- a/ui/views/touchui/touch_selection_menu_views.h +++ b/ui/views/touchui/touch_selection_menu_views.h
@@ -7,7 +7,6 @@ #include "base/macros.h" #include "ui/views/bubble/bubble_dialog_delegate_view.h" -#include "ui/views/controls/button/button.h" #include "ui/views/touchui/touch_selection_menu_runner_views.h" namespace ui { @@ -19,8 +18,7 @@ // A bubble that contains actions available for the selected text. An object of // this type, as a BubbleDialogDelegateView, manages its own lifetime. -class VIEWS_EXPORT TouchSelectionMenuViews : public BubbleDialogDelegateView, - public ButtonListener { +class VIEWS_EXPORT TouchSelectionMenuViews : public BubbleDialogDelegateView { public: METADATA_HEADER(TouchSelectionMenuViews); @@ -47,14 +45,14 @@ virtual void CreateButtons(); // Helper method to create a single button. - LabelButton* CreateButton(const base::string16& title); - - // ButtonListener: - void ButtonPressed(Button* sender, const ui::Event& event) override; + LabelButton* CreateButton(const base::string16& title, + Button::PressedCallback callback); private: friend class TouchSelectionMenuRunnerViews::TestApi; + void ButtonPressed(int command, const ui::Event& event); + // Helper to disconnect this menu object from its owning menu runner. void DisconnectOwner();
diff --git a/ui/views/widget/desktop_aura/desktop_screen_position_client.cc b/ui/views/widget/desktop_aura/desktop_screen_position_client.cc index 2406d29..5a04e03 100644 --- a/ui/views/widget/desktop_aura/desktop_screen_position_client.cc +++ b/ui/views/widget/desktop_aura/desktop_screen_position_client.cc
@@ -46,7 +46,7 @@ gfx::Point origin = bounds.origin(); aura::Window::ConvertPointToTarget(window->parent(), root, &origin); - gfx::Point host_origin = GetOriginInScreen(root); + gfx::Point host_origin = GetRootWindowOriginInScreen(root); origin.Offset(-host_origin.x(), -host_origin.y()); window->SetBounds(gfx::Rect(origin, bounds.size())); return;
diff --git a/ui/views/widget/native_widget_aura.cc b/ui/views/widget/native_widget_aura.cc index 254be7a..9f5dff10 100644 --- a/ui/views/widget/native_widget_aura.cc +++ b/ui/views/widget/native_widget_aura.cc
@@ -472,6 +472,21 @@ if (restore_bounds) return *restore_bounds; } + + // Prefer getting the window bounds and converting them to screen bounds since + // Window::GetBoundsInScreen takes into the account the window transform. + auto* screen_position_client = + aura::client::GetScreenPositionClient(window_->GetRootWindow()); + if (screen_position_client) { + // |window_|'s bounds are in parent's coordinate system so use that when + // converting. + gfx::Rect bounds = window_->bounds(); + gfx::Point origin = bounds.origin(); + screen_position_client->ConvertPointToScreenIgnoringTransforms( + window_->parent(), &origin); + return gfx::Rect(origin, bounds.size()); + } + return window_->GetBoundsInScreen(); }
diff --git a/ui/views/widget/native_widget_aura_unittest.cc b/ui/views/widget/native_widget_aura_unittest.cc index ace63da7..39ba6823 100644 --- a/ui/views/widget/native_widget_aura_unittest.cc +++ b/ui/views/widget/native_widget_aura_unittest.cc
@@ -149,6 +149,25 @@ widget->CloseNow(); } +// Tests that GetRestoreBounds returns the window bounds even if the window is +// transformed. +TEST_F(NativeWidgetAuraTest, RestoreBounds) { + Widget::InitParams params(Widget::InitParams::TYPE_WINDOW); + params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; + params.parent = nullptr; + params.context = root_window(); + params.bounds.SetRect(0, 0, 400, 400); + auto widget = std::make_unique<Widget>(); + widget->Init(std::move(params)); + widget->Show(); + EXPECT_EQ(gfx::Rect(400, 400), widget->GetRestoredBounds()); + + gfx::Transform transform; + transform.Translate(100.f, 100.f); + widget->GetNativeWindow()->SetTransform(transform); + EXPECT_EQ(gfx::Rect(400, 400), widget->GetRestoredBounds()); +} + // A WindowObserver that counts kShowStateKey property changes. class TestWindowObserver : public aura::WindowObserver { public:
diff --git a/ui/views/widget/widget_delegate.cc b/ui/views/widget/widget_delegate.cc index 6c4cb04..7878662 100644 --- a/ui/views/widget/widget_delegate.cc +++ b/ui/views/widget/widget_delegate.cc
@@ -251,15 +251,21 @@ } void WidgetDelegate::SetCanMaximize(bool can_maximize) { - params_.can_maximize = can_maximize; + std::exchange(params_.can_maximize, can_maximize); + if (GetWidget() && params_.can_maximize != can_maximize) + GetWidget()->OnSizeConstraintsChanged(); } void WidgetDelegate::SetCanMinimize(bool can_minimize) { - params_.can_minimize = can_minimize; + std::exchange(params_.can_minimize, can_minimize); + if (GetWidget() && params_.can_minimize != can_minimize) + GetWidget()->OnSizeConstraintsChanged(); } void WidgetDelegate::SetCanResize(bool can_resize) { - params_.can_resize = can_resize; + std::exchange(params_.can_resize, can_resize); + if (GetWidget() && params_.can_resize != can_resize) + GetWidget()->OnSizeConstraintsChanged(); } void WidgetDelegate::SetOwnedByWidget(bool owned) {
diff --git a/ui/views/win/DEPS b/ui/views/win/DEPS index 71f96c7..e2eba5c 100644 --- a/ui/views/win/DEPS +++ b/ui/views/win/DEPS
@@ -13,6 +13,8 @@ "-ui/views", "+base", + "+services/tracing/public", + "+third_party/perfetto/protos/perfetto/trace/track_event", "+ui/base", "+ui/gfx", "+ui/latency",
diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc index 12328e0..bcf0235 100644 --- a/ui/views/win/hwnd_message_handler.cc +++ b/ui/views/win/hwnd_message_handler.cc
@@ -27,6 +27,8 @@ #include "base/win/scoped_gdi_object.h" #include "base/win/win_util.h" #include "base/win/windows_version.h" +#include "services/tracing/public/cpp/perfetto/macros.h" +#include "third_party/perfetto/protos/perfetto/trace/track_event/chrome_window_handle_event_info.pbzero.h" #include "third_party/skia/include/core/SkPath.h" #include "ui/accessibility/accessibility_switches.h" #include "ui/accessibility/platform/ax_fragment_root_win.h" @@ -988,7 +990,12 @@ LRESULT HWNDMessageHandler::OnWndProc(UINT message, WPARAM w_param, LPARAM l_param) { - TRACE_EVENT1("ui", "HWNDMessageHandler::OnWndProc", "message_id", message); + TRACE_EVENT("ui", "HWNDMessageHandler::OnWndProc", + [&](perfetto::EventContext ctx) { + perfetto::protos::pbzero::ChromeWindowHandleEventInfo* args = + ctx.event()->set_chrome_window_handle_event_info(); + args->set_message_id(message); + }); HWND window = hwnd(); LRESULT result = 0; @@ -1696,8 +1703,12 @@ if (LOWORD(w_param) != HIWORD(w_param)) NOTIMPLEMENTED() << "Received non-square scaling factors"; - TRACE_EVENT1("ui", "HWNDMessageHandler::OnDwmCompositionChanged", "dpi", - LOWORD(w_param)); + TRACE_EVENT("ui", "HWNDMessageHandler::OnDpiChanged", + [&](perfetto::EventContext ctx) { + perfetto::protos::pbzero::ChromeWindowHandleEventInfo* args = + ctx.event()->set_chrome_window_handle_event_info(); + args->set_dpi(LOWORD(w_param)); + }); int dpi; float scaling_factor;
diff --git a/ui/wm/core/default_screen_position_client.cc b/ui/wm/core/default_screen_position_client.cc index 1c532c27..fda4d85 100644 --- a/ui/wm/core/default_screen_position_client.cc +++ b/ui/wm/core/default_screen_position_client.cc
@@ -27,7 +27,7 @@ gfx::PointF* point) { const aura::Window* root_window = window->GetRootWindow(); aura::Window::ConvertPointToTarget(window, root_window, point); - gfx::Point origin = GetOriginInScreen(root_window); + gfx::Point origin = GetRootWindowOriginInScreen(root_window); point->Offset(origin.x(), origin.y()); } @@ -35,7 +35,7 @@ const aura::Window* window, gfx::PointF* point) { const aura::Window* root_window = window->GetRootWindow(); - gfx::Point origin = GetOriginInScreen(root_window); + gfx::Point origin = GetRootWindowOriginInScreen(root_window); point->Offset(-origin.x(), -origin.y()); aura::Window::ConvertPointToTarget(root_window, window, point); } @@ -52,7 +52,7 @@ window->SetBounds(bounds); } -gfx::Point DefaultScreenPositionClient::GetOriginInScreen( +gfx::Point DefaultScreenPositionClient::GetRootWindowOriginInScreen( const aura::Window* root_window) { aura::Window* window = const_cast<aura::Window*>(root_window); display::Screen* screen = display::Screen::GetScreen();
diff --git a/ui/wm/core/default_screen_position_client.h b/ui/wm/core/default_screen_position_client.h index 2e70ce2..f5b1befc 100644 --- a/ui/wm/core/default_screen_position_client.h +++ b/ui/wm/core/default_screen_position_client.h
@@ -31,8 +31,9 @@ const display::Display& display) override; protected: - // Returns the origin of the host platform-window in system DIP coordinates. - virtual gfx::Point GetOriginInScreen(const aura::Window* root_window); + // aura::client::ScreenPositionClient: + gfx::Point GetRootWindowOriginInScreen( + const aura::Window* root_window) override; private: aura::Window* root_window_;
diff --git a/weblayer/public/java/org/chromium/weblayer/ScrollOffsetCallback.java b/weblayer/public/java/org/chromium/weblayer/ScrollOffsetCallback.java index e0e5d724..f661b0f 100644 --- a/weblayer/public/java/org/chromium/weblayer/ScrollOffsetCallback.java +++ b/weblayer/public/java/org/chromium/weblayer/ScrollOffsetCallback.java
@@ -19,7 +19,10 @@ */ public abstract class ScrollOffsetCallback { /** - * Called when the scroll offset of the content of a Tab changes. + * Called when the vertical scroll location of the content of a Tab changes. + * + * @param scrollLocation The new vertical location. More specifically, the 'scrollTop' html + * property. */ - public abstract void onVerticalScrollOffsetChanged(int scrollOffset); + public abstract void onVerticalScrollOffsetChanged(int scrollLocation); }