Hi, I've been thinking about working towards deprecating "Open Web Apps" (aka mozApps <https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/API/Navigator/mozApps>) in Gecko.
For the most part I think mozApps should eventually be replaced by standards-based web apps using Web Manifest, Service Workers etc. I'd love to see a standalone display mode for Firefox which supports these web apps on desktop and mobile to replace the now defunct web runtime, but that's not what this email is about. For the most privileged pieces of UI like the browser chrome of the browser.html project and the Firefox OS system app I think we may need another solution. I'd like us to be able to split Gaia <https://github.com/mozilla-b2g/gaia> into chrome (the system pieces) and standard web content (everything else). (I'd also like to see a lot of the current mozApps-only DOM APIs become web services). - In the past we had XULRunner but this has recently been removed and it seems the continued use of XUL is being discouraged in favour of HTML. - There was an attempt at rebooting the Chromeless project <https://github.com/mikedeboer/chromeless2> but it looks like that was still based on XULRunner. - The browser.html <https://github.com/browserhtml/browserhtml/> project currently uses Graphene <https://github.com/browserhtml/browserhtml/wiki/Building-Graphene-%28Gecko-flavor%29>, a build of Gecko/Servo which runs locally hosted web content as browser chrome, but that's based on certified mozApps and the mozBrowser API. After chatting with members of the browser.html team I'd like to propose a solution inspired by Electron <http://electron.atom.io/> (which they already proposed <https://github.com/browserhtml/browserhtml/issues/639> before <https://github.com/servo/servo/issues/7379>). This would involve a new type of HTML-based chrome including a new <webview> element. Kan-Ru previously did a comparison <https://wiki.mozilla.org/WebAPI/BrowserAPI/Common_Subset> of Mozilla's mozBrowser API, Google's <webview> and Microsoft's <webview> and I started to spec something out <https://github.com/benfrancis/webview/> with a view to potentially standardising this, but the web lacks the security model needed to expose this API and there's currently not much interest in a standard. So my proposal is a chrome-only <webview> element for Gecko which would replace the mozApps-only mozBrowser API <https://developer.mozilla.org/en-US/docs/Web/API/Using_the_Browser_API>, along the lines of Electron's <webview> element <http://electron.atom.io/docs/v0.36.8/api/web-view-tag/>, to allow you to safely embed web content in an application with HTML-based chrome. We could also potentially emulate other parts of Electron's APIs too, see their quick start tutorial <http://electron.atom.io/docs/v0.36.8/tutorial/quick-start/> to get an idea of how their embedding works. Initially this would be used by the browser.html and Firefox OS projects, but I think it could be a possible route away from XUL for Firefox in the future too. I've chatted with a few people working on browser.html and Firefox OS about this, but I'd like to get broader feedback. Vivien told me he's already prototyping a similar solution <https://github.com/vingtetun/planula> to the same problem so I'd like to kick off some discussion here about which direction we should take. Thanks Ben _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform