src/exercises/chromium/bringing-it-together.md
In this exercise, you're going to add a whole new Chromium feature, bringing together everything you already learned.
A community of pixies has been discovered living in a remote rainforest. It's important that we get Chromium for Pixies delivered to them as soon as possible.
The requirement is to translate all Chromium's UI strings into Pixie language.
There's not time to wait for proper translations, but fortunately pixie language is very close to English, and it turns out there's a Rust crate which does the translation.
In fact, you already imported that crate in the previous exercise.
(Obviously, real translations of Chrome require incredible care and diligence. Don't ship this!)
Modify ResourceBundle::MaybeMangleLocalizedString so that it uwuifies all
strings before display. In this special build of Chromium, it should always do
this irrespective of the setting of mangle_localized_strings_.
If you've done everything right across all these exercises, congratulations, you should have created Chrome for pixies!
<details> Students will likely need some hints here. Hints include:base::UTF16ToUTF8 and back again.String::from_utf16, consider error handling, and consider
which CXX supported types can transfer many u16s.Pin. You may need to explain what Pin does, and then
explain why CXX needs it for mutable references to C++ data: the answer is
that C++ data can't be moved around like Rust data, because it may contain
self-referential pointers.ResourceBundle::MaybeMangleLocalizedString will
need to depend on a rust_static_library target. The student likely already
did this.rust_static_library target will need to depend on
//third_party/rust/uwuify/v0_2:lib.