Confirmed users
180
edits
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
== Lite-weight Embedding IPC API for Mozilla based applications with native UI. == | |||
<p>Basic architecture is very close to [http://trac.webkit.org/wiki/WebKit2 WebKit2], and [http://browser.garage.maemo.org/docs/browser_paper.html MicroB] | <p>Basic architecture is very close to [http://trac.webkit.org/wiki/WebKit2 WebKit2], and [http://browser.garage.maemo.org/docs/browser_paper.html MicroB] | ||
</p><p>Benefits of new architecture comparing to default [https://wiki.mozilla.org/Embedding/NewApi mozilla embedding]</p> | </p><p>Benefits of new architecture comparing to default [https://wiki.mozilla.org/Embedding/NewApi mozilla embedding]</p> | ||
| Line 7: | Line 7: | ||
* IPC provide ability to load memory greedy content in child process and kill it without increasing memory usage for Main UI application process | * IPC provide ability to load memory greedy content in child process and kill it without increasing memory usage for Main UI application process | ||
</pre> | </pre> | ||
== New embedding expected initialization sequence == | |||
1. Native UI startup (android UI thread view or Gtk/Qt event loop) | |||
2. Create XRE_InitIPCEmbedding | |||
3. Chromium message loop started | |||
a) Child process created and IPDL channel established | |||
4. Create embed view using embedding API | |||
a) TabParent/Child, DOMWindow initialization | |||
b) PLayers protocol created | |||
6. Render data from UI process LayerManager (SW/HW rendering) to Native UI GC. | |||
7. Load content in remote view (HTML, XUL) | |||
=== Communication between UI and content process === | |||
* Load remote content JS (privileged script with full access) and interact using MessageMessenger (send/receive JSON messages) | |||
* Use embed messaging API (observe broadcast messages) | |||
* Build Application specific IPC serialization library, load XPCOM component in child process linked with this IPC library. | |||
== [http://hg.mozilla.org/users/romaxa_gmail.com/embedipc_queue Source code path queue] == | == [http://hg.mozilla.org/users/romaxa_gmail.com/embedipc_queue Source code path queue] == | ||