diff options
Diffstat (limited to 'chromium/third_party/icu')
18 files changed, 83 insertions, 35 deletions
diff --git a/chromium/third_party/icu/README.chromium b/chromium/third_party/icu/README.chromium index 4c8e9b0fb58..c75f49a1ed5 100644 --- a/chromium/third_party/icu/README.chromium +++ b/chromium/third_party/icu/README.chromium @@ -205,7 +205,7 @@ D. Local Modifications windowsZones.txt zoneinfo64.txt - As of Dec 31, 2018, the latest version is 2018i and the above files + As of May 7, 2019, the latest version is 2019a and the above files are available at the ICU github repos. 4. Build-related changes @@ -258,3 +258,10 @@ D. Local Modifications https://unicode-org.atlassian.net/browse/ICU-20391 - upstream PR: https://github.com/unicode-org/icu/pull/628 + +9. Timezone breakage patch + - patches/timezone.patch + - upstream bug: + https://unicode-org.atlassian.net/browse/ICU-20595 + - upstream PR: + https://github.com/unicode-org/icu/pull/649 diff --git a/chromium/third_party/icu/cast/icudtl.dat b/chromium/third_party/icu/cast/icudtl.dat Binary files differindex 6b72db42cc1..7d493f69cad 100644 --- a/chromium/third_party/icu/cast/icudtl.dat +++ b/chromium/third_party/icu/cast/icudtl.dat diff --git a/chromium/third_party/icu/chromeos/icudtl.dat b/chromium/third_party/icu/chromeos/icudtl.dat Binary files differindex 20d9a305662..f0d4aca98c9 100644 --- a/chromium/third_party/icu/chromeos/icudtl.dat +++ b/chromium/third_party/icu/chromeos/icudtl.dat diff --git a/chromium/third_party/icu/common/icudtb.dat b/chromium/third_party/icu/common/icudtb.dat Binary files differindex 00aab097946..9429366ec85 100644 --- a/chromium/third_party/icu/common/icudtb.dat +++ b/chromium/third_party/icu/common/icudtb.dat diff --git a/chromium/third_party/icu/common/icudtl.dat b/chromium/third_party/icu/common/icudtl.dat Binary files differindex 195f6f8ed7f..0a6596ae65c 100644 --- a/chromium/third_party/icu/common/icudtl.dat +++ b/chromium/third_party/icu/common/icudtl.dat diff --git a/chromium/third_party/icu/filters/android.json b/chromium/third_party/icu/filters/android.json index 1ee8f13242f..38be85f6393 100644 --- a/chromium/third_party/icu/filters/android.json +++ b/chromium/third_party/icu/filters/android.json @@ -756,11 +756,6 @@ // https://cs.chromium.org/chromium/src/third_party/icu/patches/data.build.patch?rcl=797b7c "unames": { "filterType": "exclude" - }, -// Based on the --disable-layout mentioned in -// https://cs.chromium.org/chromium/src/third_party/icu/README.chromium?rcl=797b7c - "ulayout": { - "filterType": "exclude" } }, // Based on the ICU63 version of diff --git a/chromium/third_party/icu/filters/android_small.json b/chromium/third_party/icu/filters/android_small.json index 68a19c8df8d..e002a075575 100644 --- a/chromium/third_party/icu/filters/android_small.json +++ b/chromium/third_party/icu/filters/android_small.json @@ -739,11 +739,6 @@ // https://cs.chromium.org/chromium/src/third_party/icu/patches/data.build.patch?rcl=797b7c "unames": { "filterType": "exclude" - }, -// Based on the --disable-layout mentioned in -// https://cs.chromium.org/chromium/src/third_party/icu/README.chromium?rcl=797b7c - "ulayout": { - "filterType": "exclude" } }, // Based on the ICU63 version of diff --git a/chromium/third_party/icu/filters/cast.json b/chromium/third_party/icu/filters/cast.json index a1709eab4d1..7a1e8251811 100644 --- a/chromium/third_party/icu/filters/cast.json +++ b/chromium/third_party/icu/filters/cast.json @@ -796,11 +796,6 @@ // https://cs.chromium.org/chromium/src/third_party/icu/patches/data.build.patch?rcl=797b7c "unames": { "filterType": "exclude" - }, -// Based on the --disable-layout mentioned in -// https://cs.chromium.org/chromium/src/third_party/icu/README.chromium?rcl=797b7c - "ulayout": { - "filterType": "exclude" } }, // Based on the ICU63 version of diff --git a/chromium/third_party/icu/filters/chromeos.json b/chromium/third_party/icu/filters/chromeos.json index 5e28c076f83..d3de23c5bbc 100644 --- a/chromium/third_party/icu/filters/chromeos.json +++ b/chromium/third_party/icu/filters/chromeos.json @@ -784,11 +784,6 @@ // https://cs.chromium.org/chromium/src/third_party/icu/patches/data.build.patch?rcl=797b7c "unames": { "filterType": "exclude" - }, -// Based on the --disable-layout mentioned in -// https://cs.chromium.org/chromium/src/third_party/icu/README.chromium?rcl=797b7c - "ulayout": { - "filterType": "exclude" } }, // Based on the ICU63 version of diff --git a/chromium/third_party/icu/filters/common.json b/chromium/third_party/icu/filters/common.json index 3219e8ad064..9750dcf2be8 100644 --- a/chromium/third_party/icu/filters/common.json +++ b/chromium/third_party/icu/filters/common.json @@ -784,11 +784,6 @@ // https://cs.chromium.org/chromium/src/third_party/icu/patches/data.build.patch?rcl=797b7c "unames": { "filterType": "exclude" - }, -// Based on the --disable-layout mentioned in -// https://cs.chromium.org/chromium/src/third_party/icu/README.chromium?rcl=797b7c - "ulayout": { - "filterType": "exclude" } }, // Based on the ICU63 version of diff --git a/chromium/third_party/icu/filters/flutter.json b/chromium/third_party/icu/filters/flutter.json index bda4b98bbee..91ea4fde4a9 100644 --- a/chromium/third_party/icu/filters/flutter.json +++ b/chromium/third_party/icu/filters/flutter.json @@ -722,11 +722,6 @@ // https://cs.chromium.org/chromium/src/third_party/icu/patches/data.build.patch?rcl=797b7c "unames": { "filterType": "exclude" - }, -// Based on the --disable-layout mentioned in -// https://cs.chromium.org/chromium/src/third_party/icu/README.chromium?rcl=797b7c - "ulayout": { - "filterType": "exclude" } }, // Based on the ICU63 version of diff --git a/chromium/third_party/icu/flutter/icudtl.dat b/chromium/third_party/icu/flutter/icudtl.dat Binary files differindex c501eb4fc86..3606735a793 100644 --- a/chromium/third_party/icu/flutter/icudtl.dat +++ b/chromium/third_party/icu/flutter/icudtl.dat diff --git a/chromium/third_party/icu/patches/timezone.patch b/chromium/third_party/icu/patches/timezone.patch new file mode 100644 index 00000000000..bf7e1729aef --- /dev/null +++ b/chromium/third_party/icu/patches/timezone.patch @@ -0,0 +1,52 @@ +diff --git a/source/i18n/timezone.cpp b/source/i18n/timezone.cpp +index f129d8b6..32214d72 100644 +--- a/source/i18n/timezone.cpp ++++ b/source/i18n/timezone.cpp +@@ -527,6 +527,11 @@ TimeZone::detectHostTimeZone() + + // ------------------------------------- + ++static UMutex *gDefaultZoneMutex() { ++ static UMutex* m = new UMutex(); ++ return m; ++} ++ + /** + * Initialize DEFAULT_ZONE from the system default time zone. + * Upon return, DEFAULT_ZONE will not be NULL, unless operator new() +@@ -536,6 +541,7 @@ static void U_CALLCONV initDefault() + { + ucln_i18n_registerCleanup(UCLN_I18N_TIMEZONE, timeZone_cleanup); + ++ Mutex lock(gDefaultZoneMutex()); + // If setDefault() has already been called we can skip getting the + // default zone information from the system. + if (DEFAULT_ZONE != NULL) { +@@ -571,7 +577,10 @@ TimeZone* U_EXPORT2 + TimeZone::createDefault() + { + umtx_initOnce(gDefaultZoneInitOnce, initDefault); +- return (DEFAULT_ZONE != NULL) ? DEFAULT_ZONE->clone() : NULL; ++ { ++ Mutex lock(gDefaultZoneMutex()); ++ return (DEFAULT_ZONE != NULL) ? DEFAULT_ZONE->clone() : NULL; ++ } + } + + // ------------------------------------- +@@ -581,9 +590,12 @@ TimeZone::adoptDefault(TimeZone* zone) + { + if (zone != NULL) + { +- TimeZone *old = DEFAULT_ZONE; +- DEFAULT_ZONE = zone; +- delete old; ++ { ++ Mutex lock(gDefaultZoneMutex()); ++ TimeZone *old = DEFAULT_ZONE; ++ DEFAULT_ZONE = zone; ++ delete old; ++ } + ucln_i18n_registerCleanup(UCLN_I18N_TIMEZONE, timeZone_cleanup); + } + } diff --git a/chromium/third_party/icu/scripts/copy_data.sh b/chromium/third_party/icu/scripts/copy_data.sh index edc16771c42..16820e4a7b9 100755 --- a/chromium/third_party/icu/scripts/copy_data.sh +++ b/chromium/third_party/icu/scripts/copy_data.sh @@ -19,6 +19,7 @@ source "${TOPSRC}/scripts/data_common.sh" function copy_common { DATA_PREFIX="data/out/tmp/icudt${VERSION}" + TZRES_PREFIX="data/out/build/icudt${VERSION}l" echo "Generating the big endian data bundle" LD_LIBRARY_PATH=lib bin/icupkg -tb "${DATA_PREFIX}l.dat" "${DATA_PREFIX}b.dat" @@ -29,6 +30,12 @@ function copy_common { cp "${DATA_PREFIX}${endian}.dat" "${TOPSRC}/common/icudt${endian}.dat" done + echo "Copying metaZones.res, timezoneTypes.res, zoneinfo64.res" + for tzfile in metaZones timezoneTypes zoneinfo64 + do + cp "${TZRES_PREFIX}/${tzfile}.res" "${TOPSRC}/tzres/${tzfile}.res" + done + echo "Done with copying pre-built ICU data files." } diff --git a/chromium/third_party/icu/source/i18n/timezone.cpp b/chromium/third_party/icu/source/i18n/timezone.cpp index f129d8b6076..129e6a5f27d 100644 --- a/chromium/third_party/icu/source/i18n/timezone.cpp +++ b/chromium/third_party/icu/source/i18n/timezone.cpp @@ -527,6 +527,11 @@ TimeZone::detectHostTimeZone() // ------------------------------------- +static UMutex *gDefaultZoneMutex() { + static UMutex* m = new UMutex(); + return m; +} + /** * Initialize DEFAULT_ZONE from the system default time zone. * Upon return, DEFAULT_ZONE will not be NULL, unless operator new() @@ -536,6 +541,7 @@ static void U_CALLCONV initDefault() { ucln_i18n_registerCleanup(UCLN_I18N_TIMEZONE, timeZone_cleanup); + Mutex lock(gDefaultZoneMutex()); // If setDefault() has already been called we can skip getting the // default zone information from the system. if (DEFAULT_ZONE != NULL) { @@ -571,7 +577,10 @@ TimeZone* U_EXPORT2 TimeZone::createDefault() { umtx_initOnce(gDefaultZoneInitOnce, initDefault); - return (DEFAULT_ZONE != NULL) ? DEFAULT_ZONE->clone() : NULL; + { + Mutex lock(gDefaultZoneMutex()); + return (DEFAULT_ZONE != NULL) ? DEFAULT_ZONE->clone() : NULL; + } } // ------------------------------------- @@ -581,9 +590,12 @@ TimeZone::adoptDefault(TimeZone* zone) { if (zone != NULL) { - TimeZone *old = DEFAULT_ZONE; - DEFAULT_ZONE = zone; - delete old; + { + Mutex lock(gDefaultZoneMutex()); + TimeZone *old = DEFAULT_ZONE; + DEFAULT_ZONE = zone; + delete old; + } ucln_i18n_registerCleanup(UCLN_I18N_TIMEZONE, timeZone_cleanup); } } diff --git a/chromium/third_party/icu/tzres/metaZones.res b/chromium/third_party/icu/tzres/metaZones.res Binary files differnew file mode 100644 index 00000000000..a39c3ff8e2f --- /dev/null +++ b/chromium/third_party/icu/tzres/metaZones.res diff --git a/chromium/third_party/icu/tzres/timezoneTypes.res b/chromium/third_party/icu/tzres/timezoneTypes.res Binary files differnew file mode 100644 index 00000000000..68cc6204260 --- /dev/null +++ b/chromium/third_party/icu/tzres/timezoneTypes.res diff --git a/chromium/third_party/icu/tzres/zoneinfo64.res b/chromium/third_party/icu/tzres/zoneinfo64.res Binary files differnew file mode 100644 index 00000000000..7e0afd40558 --- /dev/null +++ b/chromium/third_party/icu/tzres/zoneinfo64.res |