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
..

flutter/third_party

This directory contains third-party code that is a combination of:

  • Code that is vendored into the Flutter repository, from an external source. For example, we might have third_party/glfw, which contains the GLFW library, vendored from an external repository.

    💡 TIP: See DEPS for where these sources are declared.

  • Code that originates from another repository, but is copied (sometimes with alterations) into the Flutter repository. For an example, see third_party/spring_animation.

  • Code that is licensed separately from the rest of the Flutter repository. For example, see third_party/txt.

When adding a new externally sourced third-party library, update .gitignore:

# Ignores all third_party/ directories except for the ones we want to track.

+ !{folder_name}/