Migration to new Mojo types FINISHED! - 7/7/2020

15 views
Skip to first unread message

Mario Sanchez Prada

unread,
Jul 7, 2020, 5:22:31 AM7/7/20
to chromium-mojo, platform-architecture-dev

Hi all,

It's been a long time since the last report I've sent on the migrations of the old C++ Mojo types to the new ones [1], and the main reason for that was that we were nearly done already back then (December 2019), but still blocked on the migration of //components/arc, which couldn't be done at that time not to break external repos like libchrome's.

This led to a situation where the report would have looked more or less the same for the past months, and so I stopped sending updates to avoid flooding the mailing list with not so relevant information.

But now that the migration of //components/arc was finally unblocked and Abhijeet could land his CL from last year to migrate most of the old types in there, we have been spending some cycles during the past weeks to make sure that no trace of the old C++ types remain, and today we can finally announce that this migration is finally done!

And because there's no report without charts... here's a final one to commemorate this milestone! 👌 🍻


6/1/2019 6/7/2019 6/15/2019 ... 1/15/2020 6/25/2020 7/7/2020
Blink 432 432 436 ... 0 0 0
Content 1584 1582 1581 ... 0 0 0
Other 2785 2754 2756 ... 43 7 0
TOTAL
4801 4768 4773 ... 43 7 0

(Tracking sheet: https://docs.google.com/spreadsheets/d/1khYVrfnN74RSDqqXgCFlG9fI89IKWA9J32Ln_2ZcTaU)

So, this is it for this particular set of conversions, so I think we can safely assume that this is the last report. 🙂

Note that the definitions of some of those old mojo types, even if they're no longer in use by Chromium's code, are still available in Chromium's repository (e.g. interface_ptr.h, interface_request.h...). Those can't be removed yet because doing so would break other repos that still depend on the old mojo types, but I believe there's already a plan in place and they should be gone at some point in the near future (@rockot should have more details).

In the meantime, though, we have PRESUBMIT checks in place that should prevent new code from introducing the old types again, so things should be fine from the POV of Chromium's repo.

So this is all, I think. Again, many thanks to all the contributors who helped write, review land all these translations. Now let's focus on the legacy IPC -> mojo translations, which is what some of us are busy with already at the moment (see this other thread in [2])

Thanks,
Mario

[1] https://groups.google.com/a/chromium.org/d/msg/chromium-mojo/kSVBn0Y6vQA/CiPtFMqEAgAJ
[2] https://groups.google.com/a/chromium.org/d/msg/chromium-mojo/aY5_Nx9_dDQ/ebTaUaUUBAAJ

Kentaro Hara

unread,
Jul 7, 2020, 5:40:17 AM7/7/20
to Mario Sanchez Prada, Hidehiko Abe, chromium-mojo, platform-architecture-dev
Super amazing!!

I know how challenging it was to tackle the final boss of the game -- //components/arc :) +Hidehiko Abe who massively helped us unblock the work.

It's easy to start this type of code refactoring project and finish 80%. The hard part is to finish 100% -- people lose interest before getting there. However, finishing 100% is very important because refactoring projects that started but didn't finish leave a lot of tech debt in the code base. Thank you very much for being persistent and getting it done! :)


--
You received this message because you are subscribed to the Google Groups "chromium-mojo" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-moj...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-mojo/f4a190a1-147e-0bda-8438-1197caa2ac99%40igalia.com.


--
Kentaro Hara, Tokyo, Japan

Mario Sanchez Prada

unread,
Jul 7, 2020, 5:59:22 AM7/7/20
to Kentaro Hara, Hidehiko Abe, chromium-mojo, platform-architecture-dev
On 7/7/20 11:39, 'Kentaro Hara' via chromium-mojo wrote:
Super amazing!!

I know how challenging it was to tackle the final boss of the game -- //components/arc :) +Hidehiko Abe who massively helped us unblock the work.

Indeed! Hidehiko was a key person on getting this blocker out of the way by guiding us on what needed to be done on Chromium side so that the necessary changes could be integrated in libchrome not to break things once //components/arc was migrated, integrating the necessary bits in libchrome and reviewing our CLs.

Thanks Kentaro for pointing this out, this is very important as well and needs to be publicly praised.

It's easy to start this type of code refactoring project and finish 80%. The hard part is to finish 100% -- people lose interest before getting there. However, finishing 100% is very important because refactoring projects that started but didn't finish leave a lot of tech debt in the code base. Thank you very much for being persistent and getting it done! :)

Yes, it wasn't easy but as you said it was important to get this fully finished, and so we're all happy to see it 100% done as well as very grateful for all the help, support and reviews received along the way of course!

Btw, in case you're curious, this is the last CL that finished it all (which I forgot to link in my previous mail), from my colleague Gyuyoung Kim: https://chromium-review.googlesource.com/c/chromium/src/+/2281790

Cheers!
Mario


Jeremy Roman

unread,
Jul 7, 2020, 8:36:07 AM7/7/20
to Mario Sanchez Prada, Kentaro Hara, Hidehiko Abe, chromium-mojo, platform-architecture-dev
Awesome!

--
You received this message because you are subscribed to the Google Groups "platform-architecture-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to platform-architect...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/platform-architecture-dev/628ba768-bcfc-3ba7-45d7-b0caae558651%40igalia.com.

Matt Falkenhagen

unread,
Jul 7, 2020, 9:07:50 AM7/7/20
to Jeremy Roman, Mario Sanchez Prada, Kentaro Hara, Hidehiko Abe, chromium-mojo, platform-architecture-dev
So nice to see that last column. Great work!

2020年7月7日(火) 21:36 Jeremy Roman <jbr...@chromium.org>:

Dave Tapuska

unread,
Jul 7, 2020, 9:24:28 AM7/7/20
to Matt Falkenhagen, Jeremy Roman, Mario Sanchez Prada, Kentaro Hara, Hidehiko Abe, chromium-mojo, platform-architecture-dev
Yes excellent work at pushing this past the finish line.

dave.

You received this message because you are subscribed to the Google Groups "chromium-mojo" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-moj...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-mojo/CAJ_xCi%3D6ByNK1OubyGPWhx6j85LBwGGtVWf%2BiJ0Y8usUtGO-bw%40mail.gmail.com.

Hidehiko Abe

unread,
Jul 7, 2020, 9:24:40 AM7/7/20
to Matt Falkenhagen, Jeremy Roman, Mario Sanchez Prada, Kentaro Hara, chromium-mojo, platform-architecture-dev, Satoru Takabayashi, Laurent Chavey, hsc...@chromium.org
Congratulations for the completion.

On Tue, Jul 7, 2020 at 10:07 PM Matt Falkenhagen <fal...@chromium.org> wrote:
So nice to see that last column. Great work!

2020年7月7日(火) 21:36 Jeremy Roman <jbr...@chromium.org>:
Awesome!

On Tue, Jul 7, 2020 at 5:59 AM Mario Sanchez Prada <ma...@igalia.com> wrote:
On 7/7/20 11:39, 'Kentaro Hara' via chromium-mojo wrote:
Super amazing!!

I know how challenging it was to tackle the final boss of the game -- //components/arc :) +Hidehiko Abe who massively helped us unblock the work.

Indeed! Hidehiko was a key person on getting this blocker out of the way by guiding us on what needed to be done on Chromium side so that the necessary changes could be integrated in libchrome not to break things once //components/arc was migrated, integrating the necessary bits in libchrome and reviewing our CLs.

Thank you.
And, actually, all the necessary change in ARC side to keep it working is completed by Grace. Amazing work!

- hidehiko
Reply all
Reply to author
Forward
0 new messages