Mobile/Projects/GeckoView: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(This wiki page is obsolete. The current wiki page about GeckoView is Mobile/GeckoView.)
(redirect)
 
Line 1: Line 1:
This wiki page is obsolete. The current wiki page about GeckoView is [https://wiki.mozilla.org/Mobile/GeckoView Mobile/GeckoView].
#REDIRECT [[Mobile/GeckoView]]
 
== Tracking ==
<onlyinclude>
<bugzilla>
{
    "blocks": "880107",
    "resolution": "---",
    "include_fields": "id, priority, summary, status, assigned_to",
    "order": "bug_id"
}
</bugzilla>
</onlyinclude>
 
== Goals ==
* [P1] Create a View and support interfaces needed to allow developers to use Gecko in place of a [http://developer.android.com/reference/android/webkit/WebView.html WebView ]
* [P1] Create a library (JAR) that makes it easy to pull in the Gecko code into a normal Android application. Devs should not need to build Mozilla/Gecko to get this to work.
* [P1] Use GeckoView in Firefox for Android as a first class citizen.
* [P2] We'd like to support using more than one GeckoView in an application.
 
== Non-goals ==
* We will not create a system style component that only requires Firefox to be installed. Applications will need to bundle the library into their APK.
* We will not create a drop-in replacement for WebView. While we'll have the same concepts, we do not intend to chase 1-1 parity with the WebView interfaces.
 
== Details ==
* GeckoView is an Android View wrapper around browser.js/browser.xul
** GeckoView will have an API to allow basic control, such as loading HTML content.
* GeckoView does not include any browser chrome UI, such as URL editors, toolbar or tab strips
** Host applications supply the chrome UI
** Host applications control GeckoView behavior by implementing callback interfaces and providing GeckoView with references to the implementations
** If the Host provides no implementation, GeckoView is essentially a simple HTML content renderer
 
== Background ==
=== ActiveX Wrapper ===
We used to support an ActiveX wrapper around Gecko. The wrapper had the same core interfaces as the standard MSHTML control that wrapped Trident. You could use Visual Basic, Delphi and even early .NET IDE's to drop the control on your Form. Viola! Gecko HTML renderer in your app.
We dropped support because we were constantly chasing the hundreds of interfaces Microsoft supported around MSHTML. Getting the simple stuff to work was one thing. Supporting the rest was unrealistic. Plus, Microsoft kept adding new interfaces. Not all of the concepts matched 1-to-1 with Mozilla concepts, which made truly supporting the interfaces difficult and confusing to use.
 
=== System XULRunner ===
XULRunner is the Gecko-based runtime on desktops. It allows you to build applications like Firefox (XUL-based) using Gecko. This is not an embedding. One of the unrealized dreams of XULRunner was a "Shared Runtime" that could be used by multiple XUL-based apps. Versioning became the nightmare. Updating the shared runtime might break some of the apps using it.
 
=== Profiles ===
The Mozilla platform has an inherent dependency on profiles, which are used to store various preferences, data files and caches. In the case of an embeddable widget, it's often not desirable to use profiles. Gecko stores the profiles in a location of it's choosing, although this location can be changed as long as Gecko has read/write privileges to the new location.
Only one profile can be used by a given process.

Latest revision as of 21:18, 26 April 2018

Redirect to: