Fennec/NativeUI/Architecture Overview: Difference between revisions

Jump to navigation Jump to search
(Moved to /Fennec/NativeUI)
Line 2: Line 2:


==Overview==
==Overview==
* Application UI is comprised mainly of Android Java and layout XML files found in embedding/android
* Application UI is comprised mainly of Android Java and layout XML files found in /embedding/android
** GeckoApp.java and gecko_app.xml comprise the main UI.
** GeckoApp.java and gecko_app.xml comprise the main UI.
** AwesomeBar.java and awesomebar_search.xml are the main UI for the awesomebar screen. aweseombar_row.xml is the layout for a row in the list.
** GeckoAppShell.java handles a lot of the non-visual tasks, like handling Android intents, starting the Gecko thread, communicating with Gecko through JNI and messaging.
** SQLite is currently used to store the history. DatabaseHelper.java seems to be used to make the DB.
* The Java compositor, used to handle panning and zooming web content is found in /embedding.android/gfx
 
* XUL/JS and still used primarily as a communication shim from the Gecko platform to the Java UI.
* XUL/JS and still used primarily as a communication shim from the Gecko platform to the Java UI.
** browser.js and browser.xul create a single <browser> "UI" for only displaying the web contents.
** browser.js and browser.xul create a <deck> of <browser>s for only displaying the web content.
** Some helpers in browser.js are used to communicate network activity and mouse gestures to Java. More helpers will be needed for adding support for different Gecko features. Easily poached from the current code.
** Some helpers in browser.js are used to communicate network activity and mouse gestures to Java. More helpers will be needed for adding support for different Gecko features. Easily poached from the XUL-based code.
** A JSON based message system is used to [[Fennec/NativeUI/Messages|send messages]] from XUL to Java. nsIAndroidBridge is the XPCOM object that makes this happen, but the messages are just forwarded to GeckoAppShell and routed out to Java from there.
** A JSON based message system is used to [[Fennec/NativeUI/Messages|send messages]] from XUL to Java. nsIAndroidBridge is the XPCOM object that makes this happen, but the messages are just forwarded to GeckoAppShell and routed out to Java from there.
** An event based message system is used to [[Fennec/NativeUI/Messages|send messages]] from Java to XUL. From Java, you create a GeckoEvent with a subject and data strings. This is sent to XUL as an nsIObserver notification.
** An event based message system is used to [[Fennec/NativeUI/Messages|send messages]] from Java to XUL. From Java, you create a GeckoEvent with a subject and data strings. This is sent to XUL as an nsIObserver notification.
canmove, Confirmed users, Bureaucrats and Sysops emeriti
2,798

edits

Navigation menu