Migrating ICU from 71 to 72

ICU72 release note https://icu.unicode.org/download/72
CLDR42 release note https://cldr.unicode.org/index/downloads/cldr-42
Unicode15 release note https://blog.unicode.org/2022/09/announcing-unicode-standard-version-150.html

Changing test expectation:
1. Use THIN SPACE (U+202F) for the space before "AM/PM" in
date formatting.
2. Bidi control code around some dash in date format output. Change the space around – \u2013 U+2013 "En Dash" from ASCII SPACE to \u2009 "Thin Space"
3. @ is now consider part of a word.


ICU 72 migration diary
https://docs.google.com/document/d/1bzme4zR_swaqMoJIYLL9wwk-rsjdAdjGrU073h0TJbo

Ref about 2009 https://www.compart.com/en/unicode/U+2009
Ref about 202f https://www.compart.com/en/unicode/U+202f

Size Impact due to increase of more unicode characters and localized patterns:
- Fuchsia web_engine +16384 bytes compressed
- Fuchsia chrome_fuchsia +24576 bytes compressed
- Android Normalized APK Size: +107854 bytes

Bug: 1371208
Binary-Size: Size increase is unavoidable (see above).
Fuchsia-Binary-Size: Size increase is unavoidable.
Change-Id: Ic8dccaceecbf348e74880286d903320ab6983541
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3995549
Reviewed-by: Orin Jaworski <orinj@chromium.org>
Reviewed-by: Daniel Libby <dlibby@microsoft.com>
Reviewed-by: Luca Hunkeler <hluca@google.com>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Pavol Marko <pmarko@chromium.org>
Reviewed-by: Jungshik Shin <jshin@chromium.org>
Reviewed-by: Thanh Nguyen <thanhdng@chromium.org>
Reviewed-by: Richard Chui <richui@chromium.org>
Reviewed-by: Toni Barzic <tbarzic@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Auto-Submit: Frank Tang <ftang@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1073687}
diff --git a/DEPS b/DEPS
index 6c99ee5f..85ad614 100644
--- a/DEPS
+++ b/DEPS
@@ -1404,7 +1404,7 @@
     Var('chromium_git') + '/chromium/deps/hunspell_dictionaries.git' + '@' + '41cdffd71c9948f63c7ad36e1fb0ff519aa7a37e',
 
   'src/third_party/icu':
-    Var('chromium_git') + '/chromium/deps/icu.git' + '@' + 'da07448619763d1cde255b361324242646f5b268',
+    Var('chromium_git') + '/chromium/deps/icu.git' + '@' + '1b7d391f0528fb3a4976b7541b387ee04f915f83',
 
   'src/third_party/icu4j': {
       'packages': [
diff --git a/ash/glanceables/glanceables_unittests.cc b/ash/glanceables/glanceables_unittests.cc
index 9d7ff438..967457f 100644
--- a/ash/glanceables/glanceables_unittests.cc
+++ b/ash/glanceables/glanceables_unittests.cc
@@ -346,7 +346,7 @@
   GlanceablesUpNextEventItemView view(CreateTestEvent());
 
   EXPECT_EQ(view.event_title_label_for_test()->GetText(), u"Test event 123");
-  EXPECT_EQ(view.event_time_label_for_test()->GetText(), u"6:00 PM");
+  EXPECT_EQ(view.event_time_label_for_test()->GetText(), u"6:00\u202fPM");
 }
 
 TEST_F(GlanceablesTest, UpNextEventItemViewRendersCorrectlyIn24HrClockFormat) {
diff --git a/ash/login/ui/lock_contents_view_unittest.cc b/ash/login/ui/lock_contents_view_unittest.cc
index 75d13f1..a0fdab0 100644
--- a/ash/login/ui/lock_contents_view_unittest.cc
+++ b/ash/login/ui/lock_contents_view_unittest.cc
@@ -2159,9 +2159,9 @@
                        base::Hours(1), true /*disable_lock_screen_media*/));
   EXPECT_FALSE(password_view->GetVisible());
   EXPECT_FALSE(pin_view->GetVisible());
-  EXPECT_EQ(
-      l10n_util::GetStringFUTF16(IDS_ASH_LOGIN_COME_BACK_MESSAGE, u"8:00 AM"),
-      auth_test_api.GetDisabledAuthMessageContent());
+  EXPECT_EQ(l10n_util::GetStringFUTF16(IDS_ASH_LOGIN_COME_BACK_MESSAGE,
+                                       u"8:00\u202fAM"),
+            auth_test_api.GetDisabledAuthMessageContent());
   // Setting auth disabled due to time usage limit.
   DataDispatcher()->DisableAuthForUser(
       kFirstUserAccountId,
diff --git a/ash/system/power/adaptive_charging_notification_controller_unittest.cc b/ash/system/power/adaptive_charging_notification_controller_unittest.cc
index 797aee4..e2cc30c 100644
--- a/ash/system/power/adaptive_charging_notification_controller_unittest.cc
+++ b/ash/system/power/adaptive_charging_notification_controller_unittest.cc
@@ -122,7 +122,8 @@
 
   // Current local time is 12:42 pm, so 5 hours after should be 5:30pm (rounding
   // from 5:42pm).
-  EXPECT_NE(notification->message().find(u"5:30 pm"), std::u16string::npos);
+  EXPECT_NE(notification->message().find(u"5:30\u202fpm"),
+            std::u16string::npos);
 }
 
 TEST_F(AdaptiveChargingNotificationControllerTest, TimeRoundingUpTest) {
@@ -152,7 +153,8 @@
 
   // Current local time is 12:45 pm, so 5 hours after should be 6:00pm (rounding
   // from 5:45pm).
-  EXPECT_NE(notification->message().find(u"6:00 pm"), std::u16string::npos);
+  EXPECT_NE(notification->message().find(u"6:00\u202fpm"),
+            std::u16string::npos);
 }
 
 TEST_F(AdaptiveChargingNotificationControllerTest,
diff --git a/ash/system/time/calendar_event_list_item_view_jelly_unittest.cc b/ash/system/time/calendar_event_list_item_view_jelly_unittest.cc
index 4820269..8545983 100644
--- a/ash/system/time/calendar_event_list_item_view_jelly_unittest.cc
+++ b/ash/system/time/calendar_event_list_item_view_jelly_unittest.cc
@@ -112,12 +112,13 @@
   const views::Label* summary_label = GetSummaryLabel();
   const views::Label* time_label = GetTimeLabel();
   EXPECT_EQ(u"summary_0", summary_label->GetText());
-  EXPECT_EQ(u"9:00 \x2013 10:00 AM", time_label->GetText());
-  EXPECT_EQ(u"summary_0, 9:00 \x2013 10:00 AM",
+  EXPECT_EQ(u"9:00\u2009\x2013\u200910:00\u202fAM", time_label->GetText());
+  EXPECT_EQ(u"summary_0, 9:00\u2009\x2013\u200910:00\u202fAM",
             summary_label->GetTooltipText());
-  EXPECT_EQ(u"summary_0, 9:00 \x2013 10:00 AM", time_label->GetTooltipText());
+  EXPECT_EQ(u"summary_0, 9:00\u2009\x2013\u200910:00\u202fAM",
+            time_label->GetTooltipText());
   EXPECT_EQ(
-      u"9:00 AM to\n        10:00 AM,\n        GMT+02:00,\n        "
+      u"9:00\u202fAM to\n        10:00\u202fAM,\n        GMT+02:00,\n        "
       u"summary_0. Select for more details in Google Calendar.",
       event_list_item_view()->GetAccessibleName());
 }
diff --git a/ash/system/time/calendar_event_list_view_unittest.cc b/ash/system/time/calendar_event_list_view_unittest.cc
index 1c25a77..6e709f2 100644
--- a/ash/system/time/calendar_event_list_view_unittest.cc
+++ b/ash/system/time/calendar_event_list_view_unittest.cc
@@ -217,12 +217,12 @@
   CreateEventListView(date);
 
   SetSelectedDate(date);
-  EXPECT_EQ(u"8:30 – 9:30 PM", GetTimeRange(0)->GetText());
-  EXPECT_EQ(u"11:30 – 11:59 PM", GetTimeRange(1)->GetText());
+  EXPECT_EQ(u"8:30\u2009–\u20099:30\u202fPM", GetTimeRange(0)->GetText());
+  EXPECT_EQ(u"11:30\u2009–\u200911:59\u202fPM", GetTimeRange(1)->GetText());
 
   // Select the second day of the multi-day event.
   SetSelectedDate(date_2);
-  EXPECT_EQ(u"12:00 – 12:30 AM", GetTimeRange(0)->GetText());
+  EXPECT_EQ(u"12:00\u2009–\u200912:30\u202fAM", GetTimeRange(0)->GetText());
 
   // Set the time in 24 hour format.
   Shell::Get()->system_tray_model()->SetUse24HourClock(true);
@@ -231,11 +231,11 @@
   CreateEventListView(date);
 
   SetSelectedDate(date);
-  EXPECT_EQ(u"20:30 – 21:30", GetTimeRange(0)->GetText());
-  EXPECT_EQ(u"23:30 – 23:59", GetTimeRange(1)->GetText());
+  EXPECT_EQ(u"20:30\u2009–\u200921:30", GetTimeRange(0)->GetText());
+  EXPECT_EQ(u"23:30\u2009–\u200923:59", GetTimeRange(1)->GetText());
 
   SetSelectedDate(date_2);
-  EXPECT_EQ(u"00:00 – 00:30", GetTimeRange(0)->GetText());
+  EXPECT_EQ(u"00:00\u2009–\u200900:30", GetTimeRange(0)->GetText());
 }
 
 TEST_F(CalendarViewEventListViewTest, RefreshEvents) {
diff --git a/ash/system/time/calendar_utils_unittest.cc b/ash/system/time/calendar_utils_unittest.cc
index f1a9c60..96fe3ac2 100644
--- a/ash/system/time/calendar_utils_unittest.cc
+++ b/ash/system/time/calendar_utils_unittest.cc
@@ -109,9 +109,9 @@
   ASSERT_TRUE(base::Time::FromString("1 Aug 2021 00:00 GMT", &midnight));
 
   // Return time in twelve hour clock format. (no '0' padding)
-  EXPECT_EQ(u"9:05 AM", calendar_utils::GetTwelveHourClockTime(am_time));
-  EXPECT_EQ(u"11:30 PM", calendar_utils::GetTwelveHourClockTime(pm_time));
-  EXPECT_EQ(u"12:00 AM", calendar_utils::GetTwelveHourClockTime(midnight));
+  EXPECT_EQ(u"9:05\u202fAM", calendar_utils::GetTwelveHourClockTime(am_time));
+  EXPECT_EQ(u"11:30\u202fPM", calendar_utils::GetTwelveHourClockTime(pm_time));
+  EXPECT_EQ(u"12:00\u202fAM", calendar_utils::GetTwelveHourClockTime(midnight));
 
   // Return time in twenty four hour clock format. (has '0' padding)
   EXPECT_EQ(u"09:05", calendar_utils::GetTwentyFourHourClockTime(am_time));
@@ -225,18 +225,18 @@
 
   ash::system::ScopedTimezoneSettings timezone_settings(u"GMT");
 
-  EXPECT_EQ(u"10:00 – 11:30 AM",
+  EXPECT_EQ(u"10:00\u2009–\u200911:30\u202fAM",
             calendar_utils::FormatTwelveHourClockTimeInterval(date1, date2));
 
-  EXPECT_EQ(u"10:00 AM – 3:49 PM",
+  EXPECT_EQ(u"10:00\u202fAM\u2009–\u20093:49\u202fPM",
             calendar_utils::FormatTwelveHourClockTimeInterval(date1, date3));
 
   EXPECT_EQ(
-      u"10:00 – 11:30",
+      u"10:00\u2009–\u200911:30",
       calendar_utils::FormatTwentyFourHourClockTimeInterval(date1, date2));
 
   EXPECT_EQ(
-      u"10:00 – 15:49",
+      u"10:00\u2009–\u200915:49",
       calendar_utils::FormatTwentyFourHourClockTimeInterval(date1, date3));
 }
 
diff --git a/ash/system/time/date_helper_unittest.cc b/ash/system/time/date_helper_unittest.cc
index 1f9057a..e5a3561a 100644
--- a/ash/system/time/date_helper_unittest.cc
+++ b/ash/system/time/date_helper_unittest.cc
@@ -44,13 +44,13 @@
   SetDefaultLocale("zh-CN");
   std::vector<std::u16string> week_titles =
       DateHelper::GetInstance()->week_titles();
-  EXPECT_EQ(u"日", week_titles[0]);  // Sunday
-  EXPECT_EQ(u"一", week_titles[1]);  // Monday
-  EXPECT_EQ(u"二", week_titles[2]);  // Tuesday
-  EXPECT_EQ(u"三", week_titles[3]);  // Wednesday
-  EXPECT_EQ(u"四", week_titles[4]);  // Thursday
-  EXPECT_EQ(u"五", week_titles[5]);  // Friday
-  EXPECT_EQ(u"六", week_titles[6]);  // Saturday
+  EXPECT_EQ(u"一", week_titles[0]);  // Monday
+  EXPECT_EQ(u"二", week_titles[1]);  // Tuesday
+  EXPECT_EQ(u"三", week_titles[2]);  // Wednesday
+  EXPECT_EQ(u"四", week_titles[3]);  // Thursday
+  EXPECT_EQ(u"五", week_titles[4]);  // Friday
+  EXPECT_EQ(u"六", week_titles[5]);  // Saturday
+  EXPECT_EQ(u"日", week_titles[6]);  // Sunday
 
   SetDefaultLocale("ar");
   week_titles = DateHelper::GetInstance()->week_titles();
@@ -103,10 +103,12 @@
   ASSERT_TRUE(base::Time::FromString("22 Nov 2021 22:30 GMT", &date3));
 
   SetDefaultLocale("en_US");
-  EXPECT_EQ(u"10:00 – 11:45 AM", Format12HrClockInterval(date1, date2));
-  EXPECT_EQ(u"10:00 AM – 10:30 PM", Format12HrClockInterval(date1, date3));
-  EXPECT_EQ(u"10:00 – 11:45", Format24HrClockInterval(date1, date2));
-  EXPECT_EQ(u"10:00 – 22:30", Format24HrClockInterval(date1, date3));
+  EXPECT_EQ(u"10:00\u2009–\u200911:45\u202fAM",
+            Format12HrClockInterval(date1, date2));
+  EXPECT_EQ(u"10:00\u202fAM\u2009–\u200910:30\u202fPM",
+            Format12HrClockInterval(date1, date3));
+  EXPECT_EQ(u"10:00\u2009–\u200911:45", Format24HrClockInterval(date1, date2));
+  EXPECT_EQ(u"10:00\u2009–\u200922:30", Format24HrClockInterval(date1, date3));
 
   SetDefaultLocale("zh_Hant");
   EXPECT_EQ(u"上午10:00至11:45", Format12HrClockInterval(date1, date2));
diff --git a/ash/system/time/event_date_formatter_util_unittest.cc b/ash/system/time/event_date_formatter_util_unittest.cc
index 77e0224..1fb060c7 100644
--- a/ash/system/time/event_date_formatter_util_unittest.cc
+++ b/ash/system/time/event_date_formatter_util_unittest.cc
@@ -63,8 +63,8 @@
       event_date_formatter_util::GetStartAndEndTimeAccessibleNames(start_time,
                                                                    end_time);
 
-  EXPECT_EQ(actual_start, u"3:30 PM");
-  EXPECT_EQ(actual_end, u"4:30 PM");
+  EXPECT_EQ(actual_start, u"3:30\u202fPM");
+  EXPECT_EQ(actual_end, u"4:30\u202fPM");
 }
 
 TEST_F(EventDateFormatterUtilTest, GetFormattedInterval_12HourClock) {
@@ -81,7 +81,7 @@
       event_date_formatter_util::GetFormattedInterval(start_time, end_time);
 
   // \x2013 is unicode for dash i.e. '-'
-  EXPECT_EQ(actual, u"3:30 \x2013 4:30 PM");
+  EXPECT_EQ(actual, u"3:30\u2009\x2013\u20094:30\u202fPM");
 }
 
 TEST_F(EventDateFormatterUtilTest, GetFormattedInterval_24HourClock) {
@@ -98,7 +98,7 @@
       event_date_formatter_util::GetFormattedInterval(start_time, end_time);
 
   // \x2013 is unicode for dash i.e. '-'
-  EXPECT_EQ(actual, u"15:30 \x2013 16:30");
+  EXPECT_EQ(actual, u"15:30\u2009\x2013\u200916:30");
 }
 
 class EventDateFormatterAllDayEventTest
@@ -171,28 +171,28 @@
     testing::Values(
         MultiDayEventTestParams{
             "22 Nov 2021 09:00 GMT", "24 Nov 2021 09:00 GMT",
-            "22 Nov 2021 00:00 UTC", u"Starts at 10:00 AM (Day 1/3)"},
+            "22 Nov 2021 00:00 UTC", u"Starts at 10:00\u202fAM (Day 1/3)"},
         MultiDayEventTestParams{
             "22 Nov 2021 09:00 GMT", "24 Nov 2021 09:00 GMT",
-            "23 Nov 2021 00:00 UTC", u"Starts at 10:00 AM (Day 2/3)"},
+            "23 Nov 2021 00:00 UTC", u"Starts at 10:00\u202fAM (Day 2/3)"},
         MultiDayEventTestParams{
             "22 Nov 2021 09:00 GMT", "24 Nov 2021 09:00 GMT",
-            "24 Nov 2021 00:00 UTC", u"Ends at 10:00 AM (Day 3/3)"},
+            "24 Nov 2021 00:00 UTC", u"Ends at 10:00\u202fAM (Day 3/3)"},
         // Test edge case where a multi-day event falls into a single day in the
         // right timezone.
         MultiDayEventTestParams{
             "22 Nov 2021 23:00 GMT", "23 Nov 2021 23:00 GMT",
-            "23 Nov 2021 00:00 UTC", u"Starts at 12:00 AM (Day 1/1)"},
+            "23 Nov 2021 00:00 UTC", u"Starts at 12:00\u202fAM (Day 1/1)"},
         // Test where a 2 hour event spans multiple days depending on timezone,
         // day 1.
         MultiDayEventTestParams{
             "22 Nov 2021 22:00 GMT", "23 Nov 2021 00:00 GMT",
-            "22 Nov 2021 00:00 UTC", u"Starts at 11:00 PM (Day 1/2)"},
+            "22 Nov 2021 00:00 UTC", u"Starts at 11:00\u202fPM (Day 1/2)"},
         // Test where a 2 hour event spans multiple days depending on timezone,
         // day 2.
         MultiDayEventTestParams{
             "22 Nov 2021 22:00 GMT", "23 Nov 2021 00:00 GMT",
-            "23 Nov 2021 00:00 UTC", u"Ends at 1:00 AM (Day 2/2)"}));
+            "23 Nov 2021 00:00 UTC", u"Ends at 1:00\u202fAM (Day 2/2)"}));
 
 TEST_P(EventDateFormatterMultiDayEventTest, GetMultiDayText_MultiDayEvent) {
   const char* start_time_string = GetStartTimeString();
diff --git a/ash/system/time/time_of_day_unittest.cc b/ash/system/time/time_of_day_unittest.cc
index 694a5fc..2da5a79 100644
--- a/ash/system/time/time_of_day_unittest.cc
+++ b/ash/system/time/time_of_day_unittest.cc
@@ -35,17 +35,26 @@
 
   // 6:32 PM ==> 18:32.
   TimeOfDay time1(18 * 60 + 32);
-  EXPECT_EQ("6:32 PM", time1.ToString());
+  EXPECT_EQ("6:32\xE2\x80\xAFPM", time1.ToString());
 
   // 9:59 AM.
   TimeOfDay time2(9 * 60 + 59);
-  EXPECT_EQ("9:59 AM", time2.ToString());
+  EXPECT_EQ(
+      "9:59\xE2\x80\xAF"
+      "AM",
+      time2.ToString());
 
   // Border times: 00:00 and 24:00.
   TimeOfDay time3(0);
   TimeOfDay time4(24 * 60);
-  EXPECT_EQ("12:00 AM", time3.ToString());
-  EXPECT_EQ("12:00 AM", time4.ToString());
+  EXPECT_EQ(
+      "12:00\xE2\x80\xAF"
+      "AM",
+      time3.ToString());
+  EXPECT_EQ(
+      "12:00\xE2\x80\xAF"
+      "AM",
+      time4.ToString());
 }
 
 TEST(TimeOfDayTest, TestFromTime) {
diff --git a/ash/wm/desks/templates/saved_desk_unittest.cc b/ash/wm/desks/templates/saved_desk_unittest.cc
index 6b8a530..8f7dc5d 100644
--- a/ash/wm/desks/templates/saved_desk_unittest.cc
+++ b/ash/wm/desks/templates/saved_desk_unittest.cc
@@ -3438,9 +3438,12 @@
   };
   // The expected time string for each template.
   const std::vector<std::u16string> expected_timestr = {
-      u"Jan 1, 2022, 10:30 AM",
-      u"Today 10:30 AM",
-      u"Yesterday 10:30 AM",
+      u"Jan 1, 2022, 10:30\u202f"
+      "AM",
+      u"Today 10:30\u202f"
+      "AM",
+      u"Yesterday 10:30\u202f"
+      "AM",
   };
   std::vector<base::Time> time = {
       time_long_ago,
diff --git a/base/i18n/time_formatting_unittest.cc b/base/i18n/time_formatting_unittest.cc
index 57bfbaf..6967df8 100644
--- a/base/i18n/time_formatting_unittest.cc
+++ b/base/i18n/time_formatting_unittest.cc
@@ -76,7 +76,7 @@
   Time time;
   EXPECT_TRUE(Time::FromUTCExploded(kTestDateTimeExploded, &time));
   std::u16string clock24h(u"15:42");
-  std::u16string clock12h_pm(u"3:42 PM");
+  std::u16string clock12h_pm(u"3:42\u202fPM");
   std::u16string clock12h(u"3:42");
   std::u16string clock24h_millis(u"15:42:07.000");
 
@@ -114,7 +114,7 @@
   Time time;
   EXPECT_TRUE(Time::FromUTCExploded(kTestDateTimeExploded, &time));
   std::u16string clock24h(u"15:42");
-  std::u16string clock12h_pm(u"3:42 pm");
+  std::u16string clock12h_pm(u"3:42\u202fpm");
   std::u16string clock12h(u"3:42");
   std::u16string clock24h_millis(u"15:42:07.000");
 
@@ -179,7 +179,7 @@
   Time time;
   EXPECT_TRUE(Time::FromUTCExploded(kTestDateTimeExploded, &time));
   std::u16string clock24h(u"15:42");
-  std::u16string clock12h_pm(u"3:42 PM");
+  std::u16string clock12h_pm(u"3:42\u202fPM");
   std::u16string clock12h(u"3:42");
 
   // The default is 24h clock.
@@ -244,13 +244,13 @@
   EXPECT_EQ(u"Apr 30, 2011", TimeFormatShortDate(time));
   EXPECT_EQ(u"4/30/11", TimeFormatShortDateNumeric(time));
 
-  EXPECT_EQ(u"4/30/11, 3:42:07 PM", TimeFormatShortDateAndTime(time));
-  EXPECT_EQ(u"4/30/11, 3:42:07 PM " + GetShortTimeZone(time),
+  EXPECT_EQ(u"4/30/11, 3:42:07\u202fPM", TimeFormatShortDateAndTime(time));
+  EXPECT_EQ(u"4/30/11, 3:42:07\u202fPM " + GetShortTimeZone(time),
             TimeFormatShortDateAndTimeWithTimeZone(time));
 
   EXPECT_EQ(u"April 2011", TimeFormatMonthAndYear(time));
 
-  EXPECT_EQ(u"Saturday, April 30, 2011 at 3:42:07 PM",
+  EXPECT_EQ(u"Saturday, April 30, 2011 at 3:42:07\u202fPM",
             TimeFormatFriendlyDateAndTime(time));
 
   EXPECT_EQ(u"Saturday, April 30, 2011", TimeFormatFriendlyDate(time));
@@ -286,7 +286,7 @@
 
   i18n::SetICUDefaultLocale("en_US");
   EXPECT_EQ(u"Apr 30, 2011", TimeFormatWithPattern(time, "yMMMd"));
-  EXPECT_EQ(u"April 30 at 3:42:07 PM",
+  EXPECT_EQ(u"April 30 at 3:42:07\u202fPM",
             TimeFormatWithPattern(time, "MMMMdjmmss"));
 
   i18n::SetICUDefaultLocale("en_GB");
@@ -405,7 +405,7 @@
   EXPECT_TRUE(Time::FromUTCExploded(kTestIntervalEndTimeExploded, &end_time));
 
   EXPECT_EQ(
-      u"Saturday, April 30 – Saturday, May 28",
+      u"Saturday, April 30\u2009–\u2009Saturday, May 28",
       DateIntervalFormat(begin_time, end_time, DATE_FORMAT_MONTH_WEEKDAY_DAY));
 
   const Time::Exploded kTestIntervalBeginTimeExploded = {
@@ -415,12 +415,12 @@
   EXPECT_TRUE(
       Time::FromUTCExploded(kTestIntervalBeginTimeExploded, &begin_time));
   EXPECT_EQ(
-      u"Monday, May 16 – Saturday, May 28",
+      u"Monday, May 16\u2009–\u2009Saturday, May 28",
       DateIntervalFormat(begin_time, end_time, DATE_FORMAT_MONTH_WEEKDAY_DAY));
 
   i18n::SetICUDefaultLocale("en_GB");
   EXPECT_EQ(
-      u"Monday 16 May – Saturday 28 May",
+      u"Monday 16\u2009–\u2009Saturday 28 May",
       DateIntervalFormat(begin_time, end_time, DATE_FORMAT_MONTH_WEEKDAY_DAY));
 
   i18n::SetICUDefaultLocale("ja");
diff --git a/chrome/browser/resources/chromeos/set_time_dialog/set_time_dialog.js b/chrome/browser/resources/chromeos/set_time_dialog/set_time_dialog.js
index e91c4a8..22c973bd5 100644
--- a/chrome/browser/resources/chromeos/set_time_dialog/set_time_dialog.js
+++ b/chrome/browser/resources/chromeos/set_time_dialog/set_time_dialog.js
@@ -98,7 +98,9 @@
  * @return {Date} The converted time.
  */
 function getDateInTimezone(timezoneId) {
-  return new Date(new Date().toLocaleString('en-US', {timeZone: timezoneId}));
+  return new Date(new Date()
+                      .toLocaleString('en-US', {timeZone: timezoneId})
+                      .replace('\u202f', ' '));
 }
 
 /**
diff --git a/chrome/browser/ui/ash/device_scheduled_reboot/reboot_notification_controller_unittest.cc b/chrome/browser/ui/ash/device_scheduled_reboot/reboot_notification_controller_unittest.cc
index eaba240..a0acba95 100644
--- a/chrome/browser/ui/ash/device_scheduled_reboot/reboot_notification_controller_unittest.cc
+++ b/chrome/browser/ui/ash/device_scheduled_reboot/reboot_notification_controller_unittest.cc
@@ -139,9 +139,9 @@
   notification_controller_.MaybeShowPendingRebootNotification(
       reboot_time, base::NullCallback());
   EXPECT_NE(absl::nullopt, GetPendingRebootNotification());
-  EXPECT_EQ(
-      GetPendingRebootNotification()->message(),
-      u"Your administrator will restart your device at 3:20 PM on Feb 2, 2022");
+  EXPECT_EQ(GetPendingRebootNotification()->message(),
+            u"Your administrator will restart your device at 3:20\u202fPM on "
+            u"Feb 2, 2022");
 
   // Show post reboot notification.
   notification_controller_.MaybeShowPostRebootNotification();
@@ -170,18 +170,19 @@
   notification_controller_.MaybeShowPendingRebootNotification(
       reboot_time1, base::NullCallback());
   EXPECT_NE(absl::nullopt, GetPendingRebootNotification());
-  EXPECT_EQ(
-      GetPendingRebootNotification()->message(),
-      u"Your administrator will restart your device at 3:20 PM on Feb 2, 2022");
+  EXPECT_EQ(GetPendingRebootNotification()->message(),
+            u"Your administrator will restart your device at 3:20\u202fPM on "
+            u"Feb 2, 2022");
   EXPECT_EQ(GetTransientNotificationCount(), 1);
 
   // Change reboot time. Close old notification and show new one.
   notification_controller_.MaybeShowPendingRebootNotification(
       reboot_time2, base::NullCallback());
   EXPECT_NE(absl::nullopt, GetPendingRebootNotification());
-  EXPECT_EQ(GetPendingRebootNotification()->message(),
-            u"Your administrator will restart your device at 11:15 AM on May "
-            u"15, 2023");
+  EXPECT_EQ(
+      GetPendingRebootNotification()->message(),
+      u"Your administrator will restart your device at 11:15\u202fAM on May "
+      u"15, 2023");
   EXPECT_EQ(GetTransientNotificationCount(), 1);
 }
 
@@ -204,9 +205,9 @@
   notification_controller_.MaybeShowPendingRebootNotification(
       reboot_time, base::NullCallback());
   EXPECT_NE(absl::nullopt, GetPendingRebootNotification());
-  EXPECT_EQ(
-      GetPendingRebootNotification()->message(),
-      u"Your administrator will restart your device at 3:20 PM on Feb 2, 2022");
+  EXPECT_EQ(GetPendingRebootNotification()->message(),
+            u"Your administrator will restart your device at 3:20\u202fPM on "
+            u"Feb 2, 2022");
 
   // Show post reboot notification.
   notification_controller_.MaybeShowPostRebootNotification();
@@ -279,4 +280,4 @@
   // Click on notification button and run callback.
   notification.delegate()->Click(0, absl::nullopt);
   EXPECT_EQ(counter.clicks, 1);
-}
\ No newline at end of file
+}
diff --git a/chrome/browser/ui/webui/identity_internals_ui_browsertest.js b/chrome/browser/ui/webui/identity_internals_ui_browsertest.js
index e486a83..ff4239b0 100644
--- a/chrome/browser/ui/webui/identity_internals_ui_browsertest.js
+++ b/chrome/browser/ui/webui/identity_internals_ui_browsertest.js
@@ -48,7 +48,7 @@
     // Full-date format has 'at' between date and time in en-US, but
     // ECMAScript's Date.parse cannot grok it.
     return Date.parse(tokenEntry.shadowRoot.querySelector('.expiration-time')
-        .innerText.replace(' at ', ' '));
+        .innerText.replace(' at ', ' ').replace('\u202f', ' '));
   },
 
   /**
@@ -186,7 +186,7 @@
   assertEquals(this.getExpirationTime(tokenListEntries[0]),
       Date.parse(
           tokenListEntries[0].shadowRoot.querySelector('.expiration-time')
-          .innerText.replace(' at ', ' ')));
+          .innerText.replace(' at ', ' ').replace('\u202f', ' ')));
   const scopes =
       tokenListEntries[0].shadowRoot.querySelector('.scope-list')
           .innerHTML.split('<br>');
diff --git a/chrome/test/data/pdf/viewer_properties_dialog_test.ts b/chrome/test/data/pdf/viewer_properties_dialog_test.ts
index c44f500..a0dac20 100644
--- a/chrome/test/data/pdf/viewer_properties_dialog_test.ts
+++ b/chrome/test/data/pdf/viewer_properties_dialog_test.ts
@@ -46,8 +46,8 @@
       ['author', 'Chromium Authors'],
       ['subject', 'Testing'],
       ['keywords', 'testing,chromium,pdfium,document,info'],
-      ['created', '2/5/20, 7:39:12 AM'],
-      ['modified', '2/6/20, 1:42:34 AM'],
+      ['created', '2/5/20, 7:39:12\u202fAM'],
+      ['modified', '2/6/20, 1:42:34\u202fAM'],
       ['application', 'Your Preferred Text Editor'],
       ['pdf-producer', 'fixup_pdf_template.py'],
       ['pdf-version', '1.7'],
diff --git a/chromeos/ash/components/policy/weekly_time/time_utils_unittest.cc b/chromeos/ash/components/policy/weekly_time/time_utils_unittest.cc
index 1307ae8c..9cee4af 100644
--- a/chromeos/ash/components/policy/weekly_time/time_utils_unittest.cc
+++ b/chromeos/ash/components/policy/weekly_time/time_utils_unittest.cc
@@ -96,7 +96,7 @@
   base::i18n::SetICUDefaultLocale("en_US");
   icu::TimeZone::adoptDefault(
       icu::TimeZone::createTimeZone("America/Los_Angeles"));
-  EXPECT_EQ(u"Friday 8:50 AM",
+  EXPECT_EQ(u"Friday 8:50\u202fAM",
             WeeklyTimeToLocalizedString(test_weekly_time, &test_clock_));
 
   base::i18n::SetICUDefaultLocale("de_DE");
@@ -121,7 +121,7 @@
   base::i18n::SetICUDefaultLocale("en_US");
   icu::TimeZone::adoptDefault(
       icu::TimeZone::createTimeZone("America/Los_Angeles"));
-  EXPECT_EQ(u"Friday 7:50 AM",
+  EXPECT_EQ(u"Friday 7:50\u202fAM",
             WeeklyTimeToLocalizedString(test_weekly_time, &test_clock_));
 }
 
diff --git a/chromeos/ash/components/string_matching/tokenized_string_char_iterator_unittest.cc b/chromeos/ash/components/string_matching/tokenized_string_char_iterator_unittest.cc
index a3ef837..e4b17d0 100644
--- a/chromeos/ash/components/string_matching/tokenized_string_char_iterator_unittest.cc
+++ b/chromeos/ash/components/string_matching/tokenized_string_char_iterator_unittest.cc
@@ -91,7 +91,7 @@
   TestNextToken(text, "");
   TestFirstTwoCharInEveryToken(text, "");
 
-  text = "!@#$%^&*()<<<**>>>";
+  text = "!#$%^&*()<<<**>>>";
   TestEveryChar(text, "");
   TestNextToken(text, "");
   TestFirstTwoCharInEveryToken(text, "");
diff --git a/chromeos/ash/components/string_matching/tokenized_string_unittest.cc b/chromeos/ash/components/string_matching/tokenized_string_unittest.cc
index d4343f0..a1f15b5 100644
--- a/chromeos/ash/components/string_matching/tokenized_string_unittest.cc
+++ b/chromeos/ash/components/string_matching/tokenized_string_unittest.cc
@@ -95,7 +95,7 @@
     EXPECT_EQ(u"faxing{0,6} signing{9,16}", GetContent(token_words));
   }
   {
-    std::u16string text(u"!@#$%^&*()<<<**>>>");
+    std::u16string text(u"!#$%^&*()<<<**>>>");
     TokenizedString tokens(text);
     EXPECT_EQ(u"", GetContent(tokens));
     TokenizedString token_words(text, TokenizedString::Mode::kWords);
diff --git a/components/autofill_assistant/browser/details_unittest.cc b/components/autofill_assistant/browser/details_unittest.cc
index 5764b9c..50ca616 100644
--- a/components/autofill_assistant/browser/details_unittest.cc
+++ b/components/autofill_assistant/browser/details_unittest.cc
@@ -274,7 +274,7 @@
                    25, 15, 16, 0);
   EXPECT_TRUE(Details::UpdateFromProto(proto_date, &details));
   EXPECT_THAT(details.descriptionLine1(),
-              Eq("3:16 PM \xE2\x80\xA2 Wed, Sep 25"));
+              Eq("3:16\xE2\x80\xAFPM \xE2\x80\xA2 Wed, Sep 25"));
 
   base::i18n::SetICUDefaultLocale("de_DE");
   ShowDetailsProto proto_date_de;
@@ -282,7 +282,7 @@
                    25, 15, 16, 0);
   EXPECT_TRUE(Details::UpdateFromProto(proto_date, &details));
   EXPECT_THAT(details.descriptionLine1(),
-              Eq("3:16 PM \xE2\x80\xA2 Mi., 25. Sept."));
+              Eq("3:16\xE2\x80\xAFPM \xE2\x80\xA2 Mi., 25. Sept."));
 
   ShowDetailsProto proto_empty;
   proto_empty.mutable_details()->set_title("title");
diff --git a/components/omnibox/browser/document_provider_unittest.cc b/components/omnibox/browser/document_provider_unittest.cc
index 85e51925..2df90e91 100644
--- a/components/omnibox/browser/document_provider_unittest.cc
+++ b/components/omnibox/browser/document_provider_unittest.cc
@@ -770,7 +770,7 @@
   // ISO8601 UTC timestamp strings since the service returns them in practice.
   EXPECT_EQ(DocumentProvider::GenerateLastModifiedString(
                 base::TimeToISO8601(modified_today), local_now),
-            u"2:18 AM");
+            u"2:18\u202FAM");
   EXPECT_EQ(DocumentProvider::GenerateLastModifiedString(
                 base::TimeToISO8601(modified_this_year), local_now),
             u"Aug 19");
diff --git a/components/omnibox/browser/in_memory_url_index_types_unittest.cc b/components/omnibox/browser/in_memory_url_index_types_unittest.cc
index f720c60..a012509 100644
--- a/components/omnibox/browser/in_memory_url_index_types_unittest.cc
+++ b/components/omnibox/browser/in_memory_url_index_types_unittest.cc
@@ -57,7 +57,7 @@
   string_vec = String16VectorFromString16(string_b, &actual_starts_b);
   ASSERT_EQ(8U, string_vec.size());
   // Note that we stop collecting words and word starts at kMaxSignificantChars.
-  size_t expected_starts_b[] = {1, 7, 16, 22, 32, 43, 52, 55};
+  size_t expected_starts_b[] = {1, 7, 16, 21, 32, 43, 52, 55};
   EXPECT_TRUE(IntArraysEqual(expected_starts_b, std::size(expected_starts_b),
                              actual_starts_b));
 
diff --git a/content/test/data/accessibility/html/input-time-expected-blink.txt b/content/test/data/accessibility/html/input-time-expected-blink.txt
index 7d8ab7f..7f6e497 100644
--- a/content/test/data/accessibility/html/input-time-expected-blink.txt
+++ b/content/test/data/accessibility/html/input-time-expected-blink.txt
@@ -34,4 +34,4 @@
 ++++++++++++spinButton name='AM/PM Breakfast' placeholder='--' value='AM' valueForRange=1.00 minValueForRange=1.00 maxValueForRange=2.00
 ++++++++++++++staticText name='AM'
 ++++++++++++++++inlineTextBox name='AM'
-++++++++popUpButton name='Show time picker'
+++++++++popUpButton name='Show time picker'
\ No newline at end of file
diff --git a/content/test/data/accessibility/html/interactive-controls-with-labels-expected-auralinux.txt b/content/test/data/accessibility/html/interactive-controls-with-labels-expected-auralinux.txt
index 2601726d..a2e8747 100644
--- a/content/test/data/accessibility/html/interactive-controls-with-labels-expected-auralinux.txt
+++ b/content/test/data/accessibility/html/interactive-controls-with-labels-expected-auralinux.txt
@@ -48,4 +48,4 @@
 ++++++++[spin button] name='AM/PM Test label' labelled-by current=2.000000 minimum=1.000000 maximum=2.000000
 ++++[push button] name='Show time picker'
 ++[push button] name='aria label'
-++[push button] name='Test label' labelled-by
\ No newline at end of file
+++[push button] name='Test label' labelled-by
diff --git a/pdf/pdf_view_web_plugin_unittest.cc b/pdf/pdf_view_web_plugin_unittest.cc
index 1620796..bb1ef7fb 100644
--- a/pdf/pdf_view_web_plugin_unittest.cc
+++ b/pdf/pdf_view_web_plugin_unittest.cc
@@ -1785,8 +1785,12 @@
     metadata.Set("keywords", "Keywords");
     metadata.Set("creator", "Creator");
     metadata.Set("producer", "Producer");
-    metadata.Set("creationDate", "5/4/21, 4:12:13 AM");
-    metadata.Set("modDate", "6/4/21, 8:16:17 AM");
+    metadata.Set("creationDate",
+                 "5/4/21, 4:12:13\xE2\x80\xAF"
+                 "AM");
+    metadata.Set("modDate",
+                 "6/4/21, 8:16:17\xE2\x80\xAF"
+                 "AM");
     metadata.Set("pageSize", "13.89 × 16.67 in (portrait)");
     metadata.Set("canSerializeDocument", true);
 
diff --git a/third_party/blink/renderer/platform/text/locale_icu_test.cc b/third_party/blink/renderer/platform/text/locale_icu_test.cc
index a65a8b16..2886beb6 100644
--- a/third_party/blink/renderer/platform/text/locale_icu_test.cc
+++ b/third_party/blink/renderer/platform/text/locale_icu_test.cc
@@ -142,13 +142,19 @@
 
 TEST_F(LocaleICUTest, localizedDateFormatText) {
   // Note: EXPECT_EQ(String, String) doesn't print result as string.
-  EXPECT_EQ("h:mm:ss a", LocalizedDateFormatText("en_US"));
+  EXPECT_EQ(
+      "h:mm:ss\xE2\x80\xAF"
+      "a",
+      LocalizedDateFormatText("en_US").Utf8());
   EXPECT_EQ("HH:mm:ss", LocalizedDateFormatText("fr"));
   EXPECT_EQ("H:mm:ss", LocalizedDateFormatText("ja"));
 }
 
 TEST_F(LocaleICUTest, localizedShortDateFormatText) {
-  EXPECT_EQ("h:mm a", LocalizedShortDateFormatText("en_US"));
+  EXPECT_EQ(
+      "h:mm\xE2\x80\xAF"
+      "a",
+      LocalizedShortDateFormatText("en_US").Utf8());
   EXPECT_EQ("HH:mm", LocalizedShortDateFormatText("fr"));
   EXPECT_EQ("H:mm", LocalizedShortDateFormatText("ja"));
 }
diff --git a/third_party/blink/web_tests/fast/forms/datetimelocal-multiple-fields/resources/preserve-value-after-history-back-frame.html b/third_party/blink/web_tests/fast/forms/datetimelocal-multiple-fields/resources/preserve-value-after-history-back-frame.html
index 965f3ed..88753f7 100644
--- a/third_party/blink/web_tests/fast/forms/datetimelocal-multiple-fields/resources/preserve-value-after-history-back-frame.html
+++ b/third_party/blink/web_tests/fast/forms/datetimelocal-multiple-fields/resources/preserve-value-after-history-back-frame.html
@@ -59,7 +59,7 @@
                 {
                     'description' : 'Went back to a page. Checking a form control which had a partial value',
                     'actual' : fieldsText(testInput2),
-                    'expected' : insertCommaIfNecessary('01/dd/1999 --:00 --', testInput1)
+                    'expected' : insertCommaIfNecessary('01/dd/1999 --:00\u202f--', testInput1)
                 });
             forward('forwardTo2');
             break;
@@ -97,7 +97,7 @@
                 {
                     'description' : 'Went forward to a page. Checking a form control which had a partial value',
                     'actual' : fieldsText(testInput2),
-                    'expected' : insertCommaIfNecessary('mm/31/yyyy 12:-- PM', testInput1)
+                    'expected' : insertCommaIfNecessary('mm/31/yyyy 12:--\u202fPM', testInput1)
                 });
             back('backTo1Second');
             break;
diff --git a/third_party/blink/web_tests/fast/forms/time-multiple-fields/resources/preserve-value-after-history-back-frame.html b/third_party/blink/web_tests/fast/forms/time-multiple-fields/resources/preserve-value-after-history-back-frame.html
index 37343303..f9ed16f5 100644
--- a/third_party/blink/web_tests/fast/forms/time-multiple-fields/resources/preserve-value-after-history-back-frame.html
+++ b/third_party/blink/web_tests/fast/forms/time-multiple-fields/resources/preserve-value-after-history-back-frame.html
@@ -50,7 +50,7 @@
                 {
                     'description' : 'Went back to a page. Checking a form control which had a partial value',
                     'actual' : fieldsText(testInput2),
-                    'expected' : '01:--:-- AM'
+                    'expected' : '01:--:--\u202fAM'
                 });
             forward('forwardTo2');
             break;
@@ -81,7 +81,7 @@
                 {
                     'description' : 'Went forward to a page. Checking a form control which had a partial value',
                     'actual' : fieldsText(testInput2),
-                    'expected' : '--:59:-- --'
+                    'expected' : '--:59:--\u202f--'
                 });
             back('backTo1Second');
             break;
diff --git a/third_party/blink/web_tests/fast/forms/time-multiple-fields/time-multiple-fields-focus.html b/third_party/blink/web_tests/fast/forms/time-multiple-fields/time-multiple-fields-focus.html
index b8240f7..6f6c1961 100644
--- a/third_party/blink/web_tests/fast/forms/time-multiple-fields/time-multiple-fields-focus.html
+++ b/third_party/blink/web_tests/fast/forms/time-multiple-fields/time-multiple-fields-focus.html
@@ -19,7 +19,7 @@
 
 debug('Click on a delimiter between sub-fields, then check if focused element is not changed:');
 var focusedField = internals.shadowRoot(timeInput).activeElement;
-eventSender.mouseMoveTo(focusedField.offsetLeft + focusedField.offsetWidth + 10, focusedField.offsetTop + 10);
+eventSender.mouseMoveTo(focusedField.offsetLeft + focusedField.offsetWidth + 5, focusedField.offsetTop + 10);
 eventSender.mouseDown();
 eventSender.mouseUp();
 shouldBeEqualToString('shadowPseudoIdOfFocused(timeInput)', '-webkit-datetime-edit-minute-field');
diff --git a/third_party/blink/web_tests/fast/forms/time-multiple-fields/time-multiple-fields-preserve-value-after-history-back-expected.txt b/third_party/blink/web_tests/fast/forms/time-multiple-fields/time-multiple-fields-preserve-value-after-history-back-expected.txt
index 606dabd..f892921 100644
--- a/third_party/blink/web_tests/fast/forms/time-multiple-fields/time-multiple-fields-preserve-value-after-history-back-expected.txt
+++ b/third_party/blink/web_tests/fast/forms/time-multiple-fields/time-multiple-fields-preserve-value-after-history-back-expected.txt
@@ -5,11 +5,11 @@
 Went back to a page. Checking a form control which had a full value:
 PASS "01:01" is "01:01"
 Went back to a page. Checking a form control which had a partial value:
-PASS "01:--:-- AM" is "01:--:-- AM"
+FAIL "01:--:-- AM" should be 01:--:-- AM. Was 01:--:-- AM.
 Went forward to a page. Checking a form control which had a full value:
 PASS "02:02" is "02:02"
 Went forward to a page. Checking a form control which had a partial value:
-PASS "--:59:-- --" is "--:59:-- --"
+FAIL "--:59:-- --" should be --:59:-- --. Was --:59:-- --.
 
 
 PASS successfullyParsed is true
diff --git a/third_party/blink/web_tests/fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer-hour-expected.txt b/third_party/blink/web_tests/fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer-hour-expected.txt
new file mode 100644
index 0000000..8c324d7
--- /dev/null
+++ b/third_party/blink/web_tests/fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer-hour-expected.txt
@@ -0,0 +1,7 @@
+This is a testharness.js-based test.
+PASS Hours, 1-12
+PASS Hours, 0-11
+PASS Hours, 0-23
+PASS Hours, 1-24
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer-hour.html b/third_party/blink/web_tests/fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer-hour.html
index 5392df5..72b0f448 100644
--- a/third_party/blink/web_tests/fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer-hour.html
+++ b/third_party/blink/web_tests/fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer-hour.html
@@ -38,7 +38,7 @@
 
   assert_equals(input.value, expected);
   if (expectedDisplayValue)
-    assert_equals(getUserAgentShadowTextContent(input), expectedDisplayValue);
+    assert_equals(getUserAgentShadowTextContent(input).replace('\u202f', ' '), expectedDisplayValue);
 }
 
 function assert_input_value_with_limits_after_up(initial, step, min, max, expected, expectedDisplayValue) {
diff --git a/third_party/blink/web_tests/fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty-expected.txt b/third_party/blink/web_tests/fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty-expected.txt
index 4ccefe38..fa263d9 100644
--- a/third_party/blink/web_tests/fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty-expected.txt
+++ b/third_party/blink/web_tests/fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty-expected.txt
@@ -9,10 +9,10 @@
 
 Initial text: --:--:45 --
 Empty value should not clear read-only fields.
-PASS input.value = ""; getUserAgentShadowTextContent(input) is "--:--:45 --"
+FAIL input.value = ""; getUserAgentShadowTextContent(input) should be --:--:45 --. Was --:--:45 --.
 Empty value should clear only editable fields.
-PASS eventSender.keyDown("ArrowUp"); getUserAgentShadowTextContent(input) is "01:--:45 --"
-PASS input.value = ""; getUserAgentShadowTextContent(input) is "--:--:45 --"
+FAIL eventSender.keyDown("ArrowUp"); getUserAgentShadowTextContent(input) should be 01:--:45 --. Was 01:--:45 --.
+FAIL input.value = ""; getUserAgentShadowTextContent(input) should be --:--:45 --. Was --:--:45 --.
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/third_party/blink/web_tests/fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty.html b/third_party/blink/web_tests/fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty.html
index 0b35bd3..7113d655 100644
--- a/third_party/blink/web_tests/fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty.html
+++ b/third_party/blink/web_tests/fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty.html
@@ -15,12 +15,12 @@
 document.body.appendChild(input);
 debug('Initial text: ' + getUserAgentShadowTextContent(input));
 debug('Empty value should not clear read-only fields.');
-shouldBeEqualToString('input.value = ""; getUserAgentShadowTextContent(input)', '--:--:45 --');
+shouldBeEqualToString('input.value = ""; getUserAgentShadowTextContent(input)', '--:--:45\u202f--');
 
 debug('Empty value should clear only editable fields.');
 input.focus();
-shouldBeEqualToString('eventSender.keyDown("ArrowUp"); getUserAgentShadowTextContent(input)', '01:--:45 --');
-shouldBeEqualToString('input.value = ""; getUserAgentShadowTextContent(input)', '--:--:45 --');
+shouldBeEqualToString('eventSender.keyDown("ArrowUp"); getUserAgentShadowTextContent(input)', '01:--:45\u202f--');
+shouldBeEqualToString('input.value = ""; getUserAgentShadowTextContent(input)', '--:--:45\u202f--');
 
 </script>
 </body>
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png b/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png
index 4abf678..8b2d4f2 100644
--- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png
deleted file mode 100644
index 53abc12..0000000
--- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-rtl-expected.png
deleted file mode 100644
index 729f72f..0000000
--- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-rtl-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-with-scroll-bar-expected.png b/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-with-scroll-bar-expected.png
deleted file mode 100644
index 1f1f41e..0000000
--- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-with-scroll-bar-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/forms/suggestion-picker/time-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/forms/suggestion-picker/time-suggestion-picker-appearance-expected.png
deleted file mode 100644
index 61f8886..0000000
--- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/forms/suggestion-picker/time-suggestion-picker-appearance-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/forms/suggestion-picker/time-suggestion-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/forms/suggestion-picker/time-suggestion-picker-appearance-rtl-expected.png
deleted file mode 100644
index 4faea8c..0000000
--- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/forms/suggestion-picker/time-suggestion-picker-appearance-rtl-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/forms/suggestion-picker/time-suggestion-picker-appearance-with-scroll-bar-expected.png b/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/forms/suggestion-picker/time-suggestion-picker-appearance-with-scroll-bar-expected.png
deleted file mode 100644
index c139b31..0000000
--- a/third_party/blink/web_tests/flag-specific/disable-layout-ng/fast/forms/suggestion-picker/time-suggestion-picker-appearance-with-scroll-bar-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-ru-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-ru-expected.png
index e89576dc..e30f0f6 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-ru-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/calendar-picker/calendar-picker-appearance-ru-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png
index f1e2d58..c1a4797 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/datetimelocal/datetimelocal-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/datetimelocal/datetimelocal-appearance-basic-expected.png
index b24fa3a..888e663f 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/datetimelocal/datetimelocal-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/datetimelocal/datetimelocal-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png
index c7dc8ab..2bdbecc0 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png
index 5d25ee6..78447c85 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/time-picker/time-picker-appearance-after-closing-popup-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/time-picker/time-picker-appearance-after-closing-popup-expected.png
index 760e873..3a30477a 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/time-picker/time-picker-appearance-after-closing-popup-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/time-picker/time-picker-appearance-after-closing-popup-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/time-picker/time-picker-appearance-expected.png
index 8f833f5..92a9219 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/time-picker/time-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/time-picker/time-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/time/time-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/time/time-appearance-basic-expected.png
index 99b185205..92abc7a3 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/time/time-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/color-scheme/time/time-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/color/color-picker-appearance-zoom125-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/color/color-picker-appearance-zoom125-expected.png
index 71c77e3f..80dd6c1 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/color/color-picker-appearance-zoom125-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/color/color-picker-appearance-zoom125-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-preserve-value-after-history-back-expected.txt b/third_party/blink/web_tests/platform/linux/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-preserve-value-after-history-back-expected.txt
index 605cf6b..235d5c73 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-preserve-value-after-history-back-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-preserve-value-after-history-back-expected.txt
@@ -5,11 +5,11 @@
 Went back to a page. Checking a form control which had a full value:
 PASS "12012-10-09T01:23" is "12012-10-09T01:23"
 Went back to a page. Checking a form control which had a partial value:
-PASS "01/dd/1999, --:00 --" is "01/dd/1999, --:00 --"
+PASS "01/dd/1999, --:00 --" is "01/dd/1999, --:00 --"
 Went forward to a page. Checking a form control which had a full value:
 PASS "0001-11-17T23:55" is "0001-11-17T23:55"
 Went forward to a page. Checking a form control which had a partial value:
-PASS "mm/31/yyyy, 12:-- PM" is "mm/31/yyyy, 12:-- PM"
+PASS "mm/31/yyyy, 12:-- PM" is "mm/31/yyyy, 12:-- PM"
 
 
 PASS successfullyParsed is true
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-value-set-empty-expected.txt b/third_party/blink/web_tests/platform/linux/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-value-set-empty-expected.txt
index 56975e6c..5360cb2 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-value-set-empty-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-value-set-empty-expected.txt
@@ -2,7 +2,7 @@
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
-Empty text: mm/dd/yyyy, --:-- --
+Empty text: mm/dd/yyyy, --:-- --
 PASS eventSender.keyDown("ArrowUp"); getUserAgentShadowTextContent(input) is not emptyText
 PASS input.value = ""; getUserAgentShadowTextContent(input) is emptyText
 PASS successfullyParsed is true
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png
index ccf4eec3..62d362e 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/datetimelocal/datetimelocal-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/datetimelocal/datetimelocal-appearance-l10n-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/datetimelocal/datetimelocal-appearance-l10n-expected.png
index 6173ca37..4a0b8f1b 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/datetimelocal/datetimelocal-appearance-l10n-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/datetimelocal/datetimelocal-appearance-l10n-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/datetimelocal/datetimelocal-picker-step2-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/datetimelocal/datetimelocal-picker-step2-expected.png
index 870c85b..4cdf42e 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/datetimelocal/datetimelocal-picker-step2-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/datetimelocal/datetimelocal-picker-step2-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/month/month-appearance-l10n-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/month/month-appearance-l10n-expected.png
index ce38256..a5f2cfd28 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/month/month-appearance-l10n-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/month/month-appearance-l10n-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png
index aea8edf..c1e39cb 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-rtl-expected.png
index e5f21c1e..7551c52 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-with-scroll-bar-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-with-scroll-bar-expected.png
index 1ddcf0da..39ffe7d 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-with-scroll-bar-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-with-scroll-bar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-expected.png
index c0f59b33..9fae1ab0 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-rtl-expected.png
index ad9b386..7f2a084 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-with-scroll-bar-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-with-scroll-bar-expected.png
index 34440d4b..a2f9003 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-with-scroll-bar-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/suggestion-picker/time-suggestion-picker-appearance-with-scroll-bar-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/time-multiple-fields/time-multiple-fields-localization-expected.txt b/third_party/blink/web_tests/platform/linux/fast/forms/time-multiple-fields/time-multiple-fields-localization-expected.txt
index 1ccf6a51..9358f7f 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/time-multiple-fields/time-multiple-fields-localization-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/time-multiple-fields/time-multiple-fields-localization-expected.txt
@@ -3,7 +3,7 @@
 On success, you will see no "FAIL" messages, followed by "TEST COMPLETE".
 
 The following lines depend on the locale data in the system.
-en: 01:23:45.100 PM
+en: 01:23:45.100 PM
 ar: 01:23:45.100‏ م
 ar-EG: ٠١:٢٣:٤٥٫١٠٠‏ م
 fr: 13:23:45,100
diff --git a/third_party/blink/web_tests/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-preserve-value-after-history-back-expected.txt b/third_party/blink/web_tests/platform/linux/fast/forms/time-multiple-fields/time-multiple-fields-preserve-value-after-history-back-expected.txt
similarity index 70%
copy from third_party/blink/web_tests/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-preserve-value-after-history-back-expected.txt
copy to third_party/blink/web_tests/platform/linux/fast/forms/time-multiple-fields/time-multiple-fields-preserve-value-after-history-back-expected.txt
index a9773eb..bbbeb37 100644
--- a/third_party/blink/web_tests/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-preserve-value-after-history-back-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/time-multiple-fields/time-multiple-fields-preserve-value-after-history-back-expected.txt
@@ -3,13 +3,13 @@
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 Went back to a page. Checking a form control which had a full value:
-PASS "12012-10-09T01:23" is "12012-10-09T01:23"
+PASS "01:01" is "01:01"
 Went back to a page. Checking a form control which had a partial value:
-PASS "01/dd/1999 --:00 --" is "01/dd/1999 --:00 --"
+PASS "01:--:-- AM" is "01:--:-- AM"
 Went forward to a page. Checking a form control which had a full value:
-PASS "0001-11-17T23:55" is "0001-11-17T23:55"
+PASS "02:02" is "02:02"
 Went forward to a page. Checking a form control which had a partial value:
-PASS "mm/31/yyyy 12:-- PM" is "mm/31/yyyy 12:-- PM"
+PASS "--:59:-- --" is "--:59:-- --"
 
 
 PASS successfullyParsed is true
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty-expected.txt b/third_party/blink/web_tests/platform/linux/fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty-expected.txt
new file mode 100644
index 0000000..57ffc032
--- /dev/null
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty-expected.txt
@@ -0,0 +1,19 @@
+Check if input.value="" clears an input with partially-specified value.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+Empty text: --:-- --
+PASS eventSender.keyDown("ArrowUp"); getUserAgentShadowTextContent(input) is not emptyText
+PASS input.value = ""; getUserAgentShadowTextContent(input) is emptyText
+
+
+Initial text: --:--:45 --
+Empty value should not clear read-only fields.
+PASS input.value = ""; getUserAgentShadowTextContent(input) is "--:--:45 --"
+Empty value should clear only editable fields.
+PASS eventSender.keyDown("ArrowUp"); getUserAgentShadowTextContent(input) is "01:--:45 --"
+PASS input.value = ""; getUserAgentShadowTextContent(input) is "--:--:45 --"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/time/time-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/time/time-appearance-basic-expected.png
index 828398f..d7f9b53 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/time/time-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/time/time-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/time/time-appearance-pseudo-elements-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/time/time-appearance-pseudo-elements-expected.png
index 9d3239e..0dae840 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/time/time-appearance-pseudo-elements-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/time/time-appearance-pseudo-elements-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-appearance-12-AM-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-appearance-12-AM-expected.png
index 0b815f19..5fe04d2 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-appearance-12-AM-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-appearance-12-AM-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-appearance-12-PM-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-appearance-12-PM-expected.png
index b6be46ae..ea5d87b 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-appearance-12-PM-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-appearance-12-PM-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-appearance-arrowdown-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-appearance-arrowdown-expected.png
index 74be4b65..32df00e6 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-appearance-arrowdown-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-appearance-arrowdown-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-appearance-arrowup-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-appearance-arrowup-expected.png
index 4959b0f..21dd6f0 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-appearance-arrowup-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-appearance-arrowup-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-appearance-milliseconds-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-appearance-milliseconds-expected.png
index 543298d..e3bd12c 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-appearance-milliseconds-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-appearance-milliseconds-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-appearance-seconds-pm-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-appearance-seconds-pm-expected.png
index 958076bd..145153e 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-appearance-seconds-pm-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-appearance-seconds-pm-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-click-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-click-expected.png
index db1fe6b..e1af873 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-click-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/time/time-picker-click-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/validationMessage-expected.txt b/third_party/blink/web_tests/platform/linux/fast/forms/validationMessage-expected.txt
index 7ccde1c..47574a1a 100644
--- a/third_party/blink/web_tests/platform/linux/fast/forms/validationMessage-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/validationMessage-expected.txt
@@ -36,14 +36,14 @@
 input rangeOverflow and rangeUnderflow: Value must be 1.
 input rangeOverflow and rangeUnderflow: Value must be 01/02/2000.
 input rangeOverflow and rangeUnderflow: Value must be 01/02/2000.
-input rangeOverflow and rangeUnderflow: Value must be 01/02/2000, 12:00 AM.
-input rangeOverflow and rangeUnderflow: Value must be 01/02/2000, 12:00 AM.
+input rangeOverflow and rangeUnderflow: Value must be 01/02/2000, 12:00 AM.
+input rangeOverflow and rangeUnderflow: Value must be 01/02/2000, 12:00 AM.
 input rangeOverflow and rangeUnderflow: Value must be January 2000.
 input rangeOverflow and rangeUnderflow: Value must be January 2000.
 input rangeOverflow and rangeUnderflow: Value must be Week 01, 2000.
 input rangeOverflow and rangeUnderflow: Value must be Week 01, 2000.
-input rangeOverflow and rangeUnderflow: Value must be 7:00 AM.
-input rangeOverflow and rangeUnderflow: Value must be 7:00 AM.
+input rangeOverflow and rangeUnderflow: Value must be 7:00 AM.
+input rangeOverflow and rangeUnderflow: Value must be 7:00 AM.
 tooLong:
 input tooLong: Please shorten this text to 3 characters or less (you are currently using 5 characters).
 input tooLong: Please shorten this text to 2 characters or less (you are currently using 3 characters).
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png
index f7175aa..8c6b11c5 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/datetimelocal/datetimelocal-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/datetimelocal/datetimelocal-appearance-basic-expected.png
index f65a1ae..529432aa 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/datetimelocal/datetimelocal-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/datetimelocal/datetimelocal-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png
index a2e7af1..05e611a 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png
index c44d9806..89cfefc8 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/time-picker/time-picker-appearance-after-closing-popup-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/time-picker/time-picker-appearance-after-closing-popup-expected.png
index 2b7795f..95e8fdd 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/time-picker/time-picker-appearance-after-closing-popup-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/time-picker/time-picker-appearance-after-closing-popup-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/time-picker/time-picker-appearance-expected.png
index b143f75c..fd33a4b 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/time-picker/time-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/time-picker/time-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/time/time-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/time/time-appearance-basic-expected.png
index 1575be20..afd770b 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/time/time-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-hc/fast/forms/color-scheme/time/time-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/datetimelocal-picker/datetimelocal-focus-ring-expected.png b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/datetimelocal-picker/datetimelocal-focus-ring-expected.png
index 5abf433..05d99f56 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/datetimelocal-picker/datetimelocal-focus-ring-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/datetimelocal-picker/datetimelocal-focus-ring-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/datetimelocal-picker/datetimelocal-month-year-selector-expected.png b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/datetimelocal-picker/datetimelocal-month-year-selector-expected.png
index 42ae1df2..95fd40c 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/datetimelocal-picker/datetimelocal-month-year-selector-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/datetimelocal-picker/datetimelocal-month-year-selector-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png
index c55be2b..2fcd29a 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/datetimelocal-picker/datetimelocal-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/datetimelocal/datetimelocal-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/datetimelocal/datetimelocal-appearance-basic-expected.png
index 460e41e5..ab8ca82b 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/datetimelocal/datetimelocal-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/datetimelocal/datetimelocal-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png
index 5571ced..a0ea33d 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/suggestion-picker/datetimelocal-suggestion-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png
index 21d395b..42925ab3 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/suggestion-picker/time-suggestion-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/time-picker/time-picker-appearance-after-closing-popup-expected.png b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/time-picker/time-picker-appearance-after-closing-popup-expected.png
index 9cb6cbfa..795ba00 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/time-picker/time-picker-appearance-after-closing-popup-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/time-picker/time-picker-appearance-after-closing-popup-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/time-picker/time-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/time-picker/time-picker-appearance-expected.png
index 5ec74b3..ff55b79 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/time-picker/time-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/time-picker/time-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/time/time-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/time/time-appearance-basic-expected.png
index c5acc6b..ce0b12b 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/time/time-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/dark-color-scheme/fast/forms/color-scheme/time/time-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash-expected.txt
new file mode 100644
index 0000000..965a6cf4
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash-expected.txt
@@ -0,0 +1,4 @@
+This is a testharness.js-based test.
+FAIL when changing hash, before load assert_array_equals: lengths differ, expected array ["popstate", "hashchange", "load"] length 3, got ["popstate", "load"] length 2
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash-expected.txt
new file mode 100644
index 0000000..3d51270a
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash-expected.txt
@@ -0,0 +1,4 @@
+This is a testharness.js-based test.
+PASS when changing hash, before load
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/platform/mac/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-preserve-value-after-history-back-expected.txt b/third_party/blink/web_tests/platform/mac/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-preserve-value-after-history-back-expected.txt
index 605cf6b..1aa7614 100644
--- a/third_party/blink/web_tests/platform/mac/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-preserve-value-after-history-back-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-preserve-value-after-history-back-expected.txt
@@ -5,11 +5,11 @@
 Went back to a page. Checking a form control which had a full value:
 PASS "12012-10-09T01:23" is "12012-10-09T01:23"
 Went back to a page. Checking a form control which had a partial value:
-PASS "01/dd/1999, --:00 --" is "01/dd/1999, --:00 --"
+FAIL "01/dd/1999, --:00 --" should be 01/dd/1999, --:00 --. Was 01/dd/1999, --:00 --.
 Went forward to a page. Checking a form control which had a full value:
 PASS "0001-11-17T23:55" is "0001-11-17T23:55"
 Went forward to a page. Checking a form control which had a partial value:
-PASS "mm/31/yyyy, 12:-- PM" is "mm/31/yyyy, 12:-- PM"
+FAIL "mm/31/yyyy, 12:-- PM" should be mm/31/yyyy, 12:-- PM. Was mm/31/yyyy, 12:-- PM.
 
 
 PASS successfullyParsed is true
diff --git a/third_party/blink/web_tests/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-preserve-value-after-history-back-expected.txt b/third_party/blink/web_tests/platform/win/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-preserve-value-after-history-back-expected.txt
similarity index 77%
rename from third_party/blink/web_tests/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-preserve-value-after-history-back-expected.txt
rename to third_party/blink/web_tests/platform/win/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-preserve-value-after-history-back-expected.txt
index a9773eb..c00d5c40 100644
--- a/third_party/blink/web_tests/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-preserve-value-after-history-back-expected.txt
+++ b/third_party/blink/web_tests/platform/win/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-preserve-value-after-history-back-expected.txt
@@ -5,11 +5,11 @@
 Went back to a page. Checking a form control which had a full value:
 PASS "12012-10-09T01:23" is "12012-10-09T01:23"
 Went back to a page. Checking a form control which had a partial value:
-PASS "01/dd/1999 --:00 --" is "01/dd/1999 --:00 --"
+FAIL "01/dd/1999 --:00 --" should be 01/dd/1999 --:00 --. Was 01/dd/1999 --:00 --.
 Went forward to a page. Checking a form control which had a full value:
 PASS "0001-11-17T23:55" is "0001-11-17T23:55"
 Went forward to a page. Checking a form control which had a partial value:
-PASS "mm/31/yyyy 12:-- PM" is "mm/31/yyyy 12:-- PM"
+FAIL "mm/31/yyyy 12:-- PM" should be mm/31/yyyy 12:-- PM. Was mm/31/yyyy 12:-- PM.
 
 
 PASS successfullyParsed is true
diff --git a/ui/accessibility/ax_text_utils_unittest.cc b/ui/accessibility/ax_text_utils_unittest.cc
index d8af19e7..dde0bb6 100644
--- a/ui/accessibility/ax_text_utils_unittest.cc
+++ b/ui/accessibility/ax_text_utils_unittest.cc
@@ -286,7 +286,7 @@
   const std::u16string text =
       u"..we *## should parse $#@$ through bad ,,  input";
   EXPECT_THAT(GetWordStartOffsets(text),
-              testing::ElementsAre(2, 9, 16, 27, 35, 43));
+              testing::ElementsAre(2, 9, 16, 24, 27, 35, 43));
 }
 
 TEST(AXTextUtils, GetSentenceStartOffsetsBasicTest) {
diff --git a/ui/accessibility/platform/inspect/ax_tree_formatter_base.cc b/ui/accessibility/platform/inspect/ax_tree_formatter_base.cc
index 47c0635..a0bca40 100644
--- a/ui/accessibility/platform/inspect/ax_tree_formatter_base.cc
+++ b/ui/accessibility/platform/inspect/ax_tree_formatter_base.cc
@@ -120,6 +120,9 @@
   // Replace literal newlines with "<newline>"
   base::ReplaceChars(line, "\n", "<newline>", &line);
 
+  // Replace U+202f to ASCII SPACE
+  base::ReplaceFirstSubstringAfterOffset(&line, 0, "\u202f", " ");
+
   *contents += line + "\n";
 
   // TODO(accessibility): This can be removed once the UIA tree formatter