diff --git a/Cargo.lock b/Cargo.lock index 0947a17da29..d875c3591e9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2487,7 +2487,7 @@ dependencies = [ "displaydoc", "ryu", "smallvec", - "writeable", + "writeable 0.5.5", ] [[package]] @@ -3948,10 +3948,10 @@ dependencies = [ "icu_calendar_data", "icu_locid", "icu_locid_transform", - "icu_provider", - "tinystr", - "writeable", - "zerovec", + "icu_provider 1.5.0", + "tinystr 0.7.6", + "writeable 0.5.5", + "zerovec 0.10.4", ] [[package]] @@ -3972,25 +3972,25 @@ dependencies = [ "icu_calendar", "icu_casemap", "icu_collator", - "icu_collections", + "icu_collections 1.5.0", "icu_datetime", "icu_decimal", "icu_experimental", "icu_list", "icu_locid", "icu_locid_transform", - "icu_normalizer", + "icu_normalizer 1.5.0", "icu_plurals", - "icu_properties", - "icu_provider", + "icu_properties 1.5.1", + "icu_provider 1.5.0", "icu_provider_adapters", - "icu_segmenter", + "icu_segmenter 1.5.0", "icu_timezone", "log", "simple_logger", - "tinystr", + "tinystr 0.7.6", "unicode-bidi", - "writeable", + "writeable 0.5.5", ] [[package]] @@ -4001,12 +4001,12 @@ checksum = "9ff0c8ae9f8d31b12e27fc385ff9ab1f3cd9b17417c665c49e4ec958c37da75f" dependencies = [ "displaydoc", "icu_casemap_data", - "icu_collections", + "icu_collections 1.5.0", "icu_locid", - "icu_properties", - "icu_provider", - "writeable", - "zerovec", + "icu_properties 1.5.1", + "icu_provider 1.5.0", + "writeable 0.5.5", + "zerovec 0.10.4", ] [[package]] @@ -4023,15 +4023,15 @@ checksum = "d370371887d31d56f361c3eaa15743e54f13bc677059c9191c77e099ed6966b2" dependencies = [ "displaydoc", "icu_collator_data", - "icu_collections", + "icu_collections 1.5.0", "icu_locid_transform", - "icu_normalizer", - "icu_properties", - "icu_provider", + "icu_normalizer 1.5.0", + "icu_properties 1.5.1", + "icu_provider 1.5.0", "smallvec", "utf16_iter", "utf8_iter", - "zerovec", + "zerovec 0.10.4", ] [[package]] @@ -4047,9 +4047,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" dependencies = [ "displaydoc", - "yoke", + "yoke 0.7.5", "zerofrom", - "zerovec", + "zerovec 0.10.4", +] + +[[package]] +name = "icu_collections" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +dependencies = [ + "displaydoc", + "potential_utf", + "yoke 0.8.0", + "zerofrom", + "zerovec 0.11.2", ] [[package]] @@ -4067,12 +4080,12 @@ dependencies = [ "icu_locid", "icu_locid_transform", "icu_plurals", - "icu_provider", + "icu_provider 1.5.0", "icu_timezone", "smallvec", - "tinystr", - "writeable", - "zerovec", + "tinystr 0.7.6", + "writeable 0.5.5", + "zerovec 0.10.4", ] [[package]] @@ -4091,8 +4104,8 @@ dependencies = [ "fixed_decimal", "icu_decimal_data", "icu_locid_transform", - "icu_provider", - "writeable", + "icu_provider 1.5.0", + "writeable 0.5.5", ] [[package]] @@ -4109,26 +4122,26 @@ checksum = "844ad7b682a165c758065d694bc4d74ac67f176da1c499a04d85d492c0f193b7" dependencies = [ "displaydoc", "fixed_decimal", - "icu_collections", + "icu_collections 1.5.0", "icu_decimal", "icu_experimental_data", "icu_locid", "icu_locid_transform", - "icu_normalizer", + "icu_normalizer 1.5.0", "icu_pattern", "icu_plurals", - "icu_properties", - "icu_provider", - "litemap", + "icu_properties 1.5.1", + "icu_provider 1.5.0", + "litemap 0.7.5", "num-bigint", "num-rational", "num-traits", "smallvec", - "tinystr", - "writeable", + "tinystr 0.7.6", + "writeable 0.5.5", "zerofrom", - "zerotrie", - "zerovec", + "zerotrie 0.1.3", + "zerovec 0.10.4", ] [[package]] @@ -4146,9 +4159,9 @@ dependencies = [ "displaydoc", "icu_list_data", "icu_locid_transform", - "icu_provider", + "icu_provider 1.5.0", "regex-automata 0.2.0", - "writeable", + "writeable 0.5.5", ] [[package]] @@ -4157,6 +4170,41 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52b1a7fbdbf3958f1be8354cb59ac73f165b7b7082d447ff2090355c9a069120" +[[package]] +name = "icu_locale" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ae5921528335e91da1b6c695dbf1ec37df5ac13faa3f91e5640be93aa2fbefd" +dependencies = [ + "displaydoc", + "icu_collections 2.0.0", + "icu_locale_core", + "icu_locale_data", + "icu_provider 2.0.0", + "potential_utf", + "tinystr 0.8.1", + "zerovec 0.11.2", +] + +[[package]] +name = "icu_locale_core" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +dependencies = [ + "displaydoc", + "litemap 0.8.0", + "tinystr 0.8.1", + "writeable 0.6.1", + "zerovec 0.11.2", +] + +[[package]] +name = "icu_locale_data" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fdef0c124749d06a743c69e938350816554eb63ac979166590e2b4ee4252765" + [[package]] name = "icu_locid" version = "1.5.0" @@ -4164,10 +4212,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" dependencies = [ "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", + "litemap 0.7.5", + "tinystr 0.7.6", + "writeable 0.5.5", + "zerovec 0.10.4", ] [[package]] @@ -4179,9 +4227,9 @@ dependencies = [ "displaydoc", "icu_locid", "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", + "icu_provider 1.5.0", + "tinystr 0.7.6", + "zerovec 0.10.4", ] [[package]] @@ -4197,15 +4245,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" dependencies = [ "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", + "icu_collections 1.5.0", + "icu_normalizer_data 1.5.1", + "icu_properties 1.5.1", + "icu_provider 1.5.0", "smallvec", "utf16_iter", "utf8_iter", "write16", - "zerovec", + "zerovec 0.10.4", +] + +[[package]] +name = "icu_normalizer" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +dependencies = [ + "displaydoc", + "icu_collections 2.0.0", + "icu_normalizer_data 2.0.0", + "icu_properties 2.0.1", + "icu_provider 2.0.0", + "smallvec", + "zerovec 0.11.2", ] [[package]] @@ -4214,6 +4277,12 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" +[[package]] +name = "icu_normalizer_data" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" + [[package]] name = "icu_pattern" version = "0.2.0" @@ -4222,8 +4291,8 @@ checksum = "cb7f36aafd098d6717de34e668a8120822275c1fba22b936e757b7de8a2fd7e4" dependencies = [ "displaydoc", "either", - "writeable", - "yoke", + "writeable 0.5.5", + "yoke 0.7.5", "zerofrom", ] @@ -4237,8 +4306,8 @@ dependencies = [ "fixed_decimal", "icu_locid_transform", "icu_plurals_data", - "icu_provider", - "zerovec", + "icu_provider 1.5.0", + "zerovec 0.10.4", ] [[package]] @@ -4254,13 +4323,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" dependencies = [ "displaydoc", - "icu_collections", + "icu_collections 1.5.0", "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", + "icu_properties_data 1.5.1", + "icu_provider 1.5.0", + "tinystr 0.7.6", "unicode-bidi", - "zerovec", + "zerovec 0.10.4", +] + +[[package]] +name = "icu_properties" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +dependencies = [ + "displaydoc", + "icu_collections 2.0.0", + "icu_locale_core", + "icu_properties_data 2.0.1", + "icu_provider 2.0.0", + "potential_utf", + "zerotrie 0.2.2", + "zerovec 0.11.2", ] [[package]] @@ -4269,6 +4354,12 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" +[[package]] +name = "icu_properties_data" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" + [[package]] name = "icu_provider" version = "1.5.0" @@ -4280,11 +4371,28 @@ dependencies = [ "icu_provider_macros", "log", "stable_deref_trait", - "tinystr", - "writeable", - "yoke", + "tinystr 0.7.6", + "writeable 0.5.5", + "yoke 0.7.5", "zerofrom", - "zerovec", + "zerovec 0.10.4", +] + +[[package]] +name = "icu_provider" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +dependencies = [ + "displaydoc", + "icu_locale_core", + "stable_deref_trait", + "tinystr 0.8.1", + "writeable 0.6.1", + "yoke 0.8.0", + "zerofrom", + "zerotrie 0.2.2", + "zerovec 0.11.2", ] [[package]] @@ -4295,9 +4403,9 @@ checksum = "d6324dfd08348a8e0374a447ebd334044d766b1839bb8d5ccf2482a99a77c0bc" dependencies = [ "icu_locid", "icu_locid_transform", - "icu_provider", - "tinystr", - "zerovec", + "icu_provider 1.5.0", + "tinystr 0.7.6", + "zerovec 0.10.4", ] [[package]] @@ -4319,12 +4427,30 @@ checksum = "a717725612346ffc2d7b42c94b820db6908048f39434504cb130e8b46256b0de" dependencies = [ "core_maths", "displaydoc", - "icu_collections", + "icu_collections 1.5.0", "icu_locid", - "icu_provider", - "icu_segmenter_data", + "icu_provider 1.5.0", + "icu_segmenter_data 1.5.1", "utf8_iter", - "zerovec", + "zerovec 0.10.4", +] + +[[package]] +name = "icu_segmenter" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e185fc13b6401c138cf40db12b863b35f5edf31b88192a545857b41aeaf7d3d3" +dependencies = [ + "core_maths", + "displaydoc", + "icu_collections 2.0.0", + "icu_locale", + "icu_locale_core", + "icu_provider 2.0.0", + "icu_segmenter_data 2.0.0", + "potential_utf", + "utf8_iter", + "zerovec 0.11.2", ] [[package]] @@ -4333,6 +4459,12 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1e52775179941363cc594e49ce99284d13d6948928d8e72c755f55e98caa1eb" +[[package]] +name = "icu_segmenter_data" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5360a2fbe97f617c4f8b944356dedb36d423f7da7f13c070995cf89e59f01220" + [[package]] name = "icu_timezone" version = "1.5.0" @@ -4341,11 +4473,11 @@ checksum = "aa91ba6a585939a020c787235daa8aee856d9bceebd6355e283c0c310bc6de96" dependencies = [ "displaydoc", "icu_calendar", - "icu_provider", + "icu_provider 1.5.0", "icu_timezone_data", - "tinystr", - "zerotrie", - "zerovec", + "tinystr 0.7.6", + "zerotrie 0.1.3", + "zerovec 0.10.4", ] [[package]] @@ -4373,12 +4505,12 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ - "icu_normalizer", - "icu_properties", + "icu_normalizer 2.0.0", + "icu_properties 2.0.1", ] [[package]] @@ -4690,8 +4822,8 @@ dependencies = [ "fonts_traits", "fxhash", "html5ever", - "icu_locid", - "icu_segmenter", + "icu_locale_core", + "icu_segmenter 2.0.0", "ipc-channel", "itertools 0.14.0", "layout_api", @@ -4945,6 +5077,12 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" +[[package]] +name = "litemap" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" + [[package]] name = "litrs" version = "0.4.1" @@ -6406,6 +6544,16 @@ dependencies = [ "portable-atomic", ] +[[package]] +name = "potential_utf" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +dependencies = [ + "serde", + "zerovec 0.11.2", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -8016,7 +8164,7 @@ dependencies = [ "encoding_rs", "euclid", "fxhash", - "icu_segmenter", + "icu_segmenter 1.5.0", "indexmap", "itertools 0.14.0", "itoa", @@ -8504,7 +8652,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" dependencies = [ "displaydoc", - "zerovec", + "zerovec 0.10.4", +] + +[[package]] +name = "tinystr" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +dependencies = [ + "displaydoc", + "zerovec 0.11.2", ] [[package]] @@ -9368,7 +9526,7 @@ dependencies = [ "bytes", "cookie 0.16.2", "http 0.2.12", - "icu_segmenter", + "icu_segmenter 1.5.0", "log", "serde", "serde_derive", @@ -10217,6 +10375,12 @@ dependencies = [ "either", ] +[[package]] +name = "writeable" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" + [[package]] name = "x11" version = "2.21.0" @@ -10363,7 +10527,19 @@ checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ "serde", "stable_deref_trait", - "yoke-derive", + "yoke-derive 0.7.5", + "zerofrom", +] + +[[package]] +name = "yoke" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive 0.8.0", "zerofrom", ] @@ -10379,6 +10555,18 @@ dependencies = [ "synstructure", ] +[[package]] +name = "yoke-derive" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + [[package]] name = "zbus" version = "4.4.0" @@ -10533,7 +10721,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb594dd55d87335c5f60177cee24f19457a5ec10a065e0a3014722ad252d0a1f" dependencies = [ "displaydoc", - "yoke", + "yoke 0.7.5", + "zerofrom", +] + +[[package]] +name = "zerotrie" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke 0.8.0", "zerofrom", ] @@ -10543,9 +10742,20 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" dependencies = [ - "yoke", + "yoke 0.7.5", "zerofrom", - "zerovec-derive", + "zerovec-derive 0.10.3", +] + +[[package]] +name = "zerovec" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" +dependencies = [ + "yoke 0.8.0", + "zerofrom", + "zerovec-derive 0.11.1", ] [[package]] @@ -10559,6 +10769,17 @@ dependencies = [ "syn", ] +[[package]] +name = "zerovec-derive" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "zune-core" version = "0.4.12" diff --git a/Cargo.toml b/Cargo.toml index 6d863656b7c..ddbb72dddf6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -78,8 +78,8 @@ hyper = "1.6" hyper-rustls = { version = "0.27", default-features = false, features = ["http1", "http2", "logging", "tls12", "webpki-tokio"] } hyper-util = { version = "0.1", features = ["client", "http2", "tokio"] } hyper_serde = { path = "components/hyper_serde" } -icu_locid = "1.5.0" -icu_segmenter = "1.5.0" +icu_locale_core = "2.0.0" +icu_segmenter = "2.0.0" image = "0.24" imsz = "0.2" indexmap = { version = "2.10.0", features = ["std"] } diff --git a/components/layout/Cargo.toml b/components/layout/Cargo.toml index bb500d6f98c..1eb4ef2fde5 100644 --- a/components/layout/Cargo.toml +++ b/components/layout/Cargo.toml @@ -31,7 +31,7 @@ fonts = { path = "../fonts" } fonts_traits = { workspace = true } fxhash = { workspace = true } html5ever = { workspace = true } -icu_locid = { workspace = true } +icu_locale_core = { workspace = true } icu_segmenter = { workspace = true } ipc-channel = { workspace = true } itertools = { workspace = true } diff --git a/components/layout/flow/inline/construct.rs b/components/layout/flow/inline/construct.rs index 5acc10754fc..77d87f5e146 100644 --- a/components/layout/flow/inline/construct.rs +++ b/components/layout/flow/inline/construct.rs @@ -6,6 +6,7 @@ use std::borrow::Cow; use std::char::{ToLowercase, ToUppercase}; use icu_segmenter::WordSegmenter; +use icu_segmenter::options::WordBreakInvariantOptions; use itertools::izip; use style::computed_values::white_space_collapse::T as WhiteSpaceCollapse; use style::values::specified::text::TextTransformCase; @@ -676,7 +677,7 @@ pub(crate) fn capitalize_string(string: &str, allow_word_at_start: bool) -> Stri let mut output_string = String::new(); output_string.reserve(string.len()); - let word_segmenter = WordSegmenter::new_auto(); + let word_segmenter = WordSegmenter::new_auto(WordBreakInvariantOptions::default()); let mut bounds = word_segmenter.segment_str(string).peekable(); let mut byte_index = 0; for character in string.chars() { diff --git a/components/layout/flow/inline/line_breaker.rs b/components/layout/flow/inline/line_breaker.rs index 28301fdadf8..c5a22cd708d 100644 --- a/components/layout/flow/inline/line_breaker.rs +++ b/components/layout/flow/inline/line_breaker.rs @@ -5,6 +5,7 @@ use std::ops::Range; use icu_segmenter::LineSegmenter; +use icu_segmenter::options::LineBreakOptions; pub(crate) struct LineBreaker { linebreaks: Vec, @@ -13,7 +14,7 @@ pub(crate) struct LineBreaker { impl LineBreaker { pub(crate) fn new(string: &str) -> Self { - let line_segmenter = LineSegmenter::new_auto(); + let line_segmenter = LineSegmenter::new_auto(LineBreakOptions::default()); Self { // From https://docs.rs/icu_segmenter/1.5.0/icu_segmenter/struct.LineSegmenter.html // > For consistency with the grapheme, word, and sentence segmenters, there is always a diff --git a/components/layout/quotes.rs b/components/layout/quotes.rs index 05e9e06fe89..5d9c9c2b8f1 100644 --- a/components/layout/quotes.rs +++ b/components/layout/quotes.rs @@ -10,7 +10,7 @@ use std::collections::HashMap; use std::sync::OnceLock; -use icu_locid::Locale; +use icu_locale_core::Locale; #[derive(Clone, Copy, Debug)] pub struct QuotePair {