1ec5 / avim

Vietnamese input method extension (IME) for Firefox, Thunderbird, SeaMonkey, Komodo, etc. — bộ gõ tiếng Việt dành cho Firefox, Thunderbird, SeaMonkey, Komodo, …
http://avim.1ec5.org/
MIT License
46 stars 4 forks source link

Support Electrolysis (Fennec) #86

Open 1ec5 opened 9 years ago

1ec5 commented 9 years ago

Split out from #25

AVIM supported the very first versions of Fennec (now Firefox Mobile), but then Fennec 4.0 adopted an IPC architecture called Electrolysis that severely restricts access to page content from chrome. Mozilla also tried to move desktop Firefox in that direction at one point.

Although such architectures are generally seen as optimal for extensions like AVIM that primarily interface with page DOM, AVIM relies on anonymous DOM nodes, internal command handlers, and various other features that would never be available to the page context. So simply shoving AVIM into a page script would break most of AVIM’s unique feature set and expose it to conflicts with in-page IMEs like avim.js.

I’m not sure what the solution is, but we’ve continually gotten requests to bring back Firefox Mobile support, because unfortunately people found out about it at about the time Electrolysis landed.

1ec5 commented 9 years ago

Fennec appears to use the same message manager architecture as Firefox, but for some reason keyboard event targets always refer to the browser. Maybe that means Fennec is running a child frame inside each frame?