Kaylee Lubick b763678f03 Make SkUnicode explicitly instead of relying on SkParagraph to make it for us (flutter/engine#52086)
In https://skia-review.googlesource.com/c/skia/+/838417 Skia staged the
removal of automatically creating an SkUnicode as part of the effort to
make Skia more modular. Clients will now have to construct and SkUnicode
and pass it to SkParagraph to provide the appropriate data. Flutter
sometimes uses ICU and sometimes uses a "client" SkUnicode which makes
use of the browser APIs to get the data.

We should come back to the skwasm code especially, because right now
skwasm gets the data necessary to make an SkUnicode::Client, but stores
it in the ParagraphBuilder, just to take it out again later to make the
SkUnicode::Client and pass that back into the ParagraphBuilder. skwasm
should just create the SkUnicode::Client directly and pass it to the
ParagraphBuilder::make().

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [x] I added new tests to check the change I am making or feature I am
adding, or the PR is [test-exempt]. See [testing the engine] for
instructions on writing and running engine tests.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [x] I signed the [CLA].
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/flutter/wiki/Testing-the-engine
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
2024-04-29 11:59:33 -04:00
..