Slide 28
Slide 28 text
Rather than use two processes to stop web rendering from holding up the UI, we
now use threads. We have three main threads in the application; One is Gecko,
another is the main application, which does touch input handling, IME (input
method) handling, bookmarking, history, etc. And the last thread is the
rendering thread.
This architecture lets us remain responsive at all times, as screen updates
are almost never held up by Gecko, or anything else for that matter.
To handle messaging between Gecko and the rest of the application, we inject
events into Gecko's event queue. While there is a list of specific events,
to remain flexible, we have generic events that we can send between the Gecko
browser object and the Java application, which we encapsulate in JSON.