Embedding/IPCLiteAPI: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 1: Line 1:
<h3> Lite-weight Embedding IPC API for Mozilla based applications with native UI. </h3>
== 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] ==
Confirmed users
180

edits