- From: Marc Fawzi <marc.fawzi@gmail.com>
- Date: Tue, 22 Jul 2014 20:54:58 -0700
- To: Alex Russell <slightlyoff@google.com>
- Cc: Marcos Caceres <w3c@marcosc.com>, "www-tag@w3.org" <www-tag@w3.org>, Domenic Denicola <domenic@domenicdenicola.com>
- Message-ID: <CACioZivF_UzAMRuPmUAYAhnUsbHpwMYp8FQ1f9q+YOd0Cnr6UQ@mail.gmail.com>
a rendering engine, a JS VM and a UX shell walk into a bar .... (todo:
funny scenario)
since I'm a JS guy the Exo-Browser project looks more manageable as a
learning medium and to help me play with ideas such as "special purpose
browsers" ... and leaving the ABI fun to multi-platform C++ folks ...
"The ExoBrowser exposes its API (parts of the Chromium Content API + a
Simple View Model) in Javascript and enables the implementation of a fully
functional browser entirely out of it (as a Javascript/HTML/CSS app). The
ExoBrowser is a scriptable platform designed to ease the experimentation
with new concepts for the Web Browser."
[Chromium Architecture]
(Platform) # (Browser Implementation)
+----------------+ # +-----------------------+
| Content API +-----+ Chrome (C++) |
+----+-----------+ # +-----------------------+
| # | | |
+----+---+ +----+ # +-----+ +-----+ +-------+
| Webkit +--+ v8 | # | GTK | | Win | | Cocoa |
+--------+ +----+ # +-----+ +-----+ +-------+
`vs.`
[ExoBrowser Architecture]
(Platform) # (Browser Implementation)
#
+------------------+ #
| Cocoa/Win/GTK+ | #
+---------+--------+ #
| #
+----------------+ +---------+--------+ # +-----------------------+
| Content API +-+ ExoBrowser (C++) | # | Web Views (HTML/JS) |
+----+-----------+ +--------------+---+ # +-----------------------+
| (JS API) | # | (TCP)
+----+---+ +----+ +--------------|---+ # +-----------------------+
| Webkit +--+ v8 +-+ NodeJS +---+-----+ Local Server (JS) |
+--------+ +----+ +------------------+ # +-----------------------+
https://github.com/breach/exo_browser
On Tue, Jul 22, 2014 at 8:30 AM, Alex Russell <slightlyoff@google.com>
wrote:
> On Fri, Jul 11, 2014 at 7:14 PM, Marcos Caceres <w3c@marcosc.com> wrote:
>
>>
>>
>> On July 11, 2014 at 6:54:36 PM, Domenic Denicola (
>> domenic@domenicdenicola.com) wrote:
>> > >
>> > Hi Marc,
>> > Happy to have your thoughts, and glad you felt welcome to contribute
>> > :). That's what we're here for.
>> >
>> >
>> > The immediate issue I see is, what is the incentive for browser
>> > vendors to do this? There is none I can see. And the fact that they
>> > haven't done so implies either their business strategists have
>> > never come up with this idea, or have already decided it is not
>> > worth the cost.
>>
>
> That's incorrect. We did do this with Chrome Frame, although admittedly it
> was us at Google making IE's engine pluggable ;-)
>
> It was absolutely worth the (high) cost to do, but the window of
> opportunity. Auto-update and real competition deliver the same sort of
> forward progress we'd hoped that Chrome Frame would enable.
>
>
>> So you are correct... but Servo does, for instance, implement WebKit's
>> embedding API (on purpose, so it can be a drop in replacement... or at
>> least, that's the dream). I assume Blink's embedding API is very similar to
>> WebKit's (given they have the same provenance)... though I've never looked
>> closely.
>>
>
> The deep differences in embedding strategy is perhaps the largest
> difference between Blink and WebKit. Blink is "batteries-included", WebKit
> is "BYO". And implementing an API is a WORLD different to ABI stability
> which is what MSFT has done with Windows (to their enduring credit and
> thanks to COM) and which no other browser I'm aware of does this. There's
> some attempt at ABI stability with plugins, but even that is fraught.
>
> You MIGHT get some distance down this path with something like Mojo, but
> you'll want NaCL or some other sandboxing system to enable it and there
> isn't agreement among vendors about any of the details of what or how to
> enable this: http://www.chromium.org/developers/design-documents/mojo
>
>
>> Remember also that Opera basically ripped out their engine and in a
>> matter of months was again up and running with Blink inside. But yeah,
>> there was a good year of pain for Opera to get their browser's features
>> back to where they were with the Presto engine.
>>
>> And PhoneGap is essentially doing what Marc is kinda alluding to: it's
>> basically like a jQuery for device APIs, in that it tries to provide a
>> consistent base across a huge number of browser engines to access device
>> APIs... with jQuery then doing much of the heavy lifting in getting a
>> consistent DOM across all the engines.
>>
>> > And that cost is substantial---if you have ever
>> > looked at the plumbing code between the UI layer, the rendering
>> > engine, the JavaScript engine, the add-on system, the developer
>> > tools, and all the other components of a browser, you'd find that
>> > swapping in rendering engines or JS engines is not at all an easy
>> > task.
>>
>> Yeah, it's pretty massive.
>>
>> > Which then transforms the question into, who is going to force
>> > browser vendors to do this, despite it being against their best
>> > interests? The W3C? They could try, but would be laughed into
>> > obsolescence. The government? Unlikely.
>> >
>> > There is lots of other interesting points to address in your thread,
>> > and I hope someone else can chime in with how browser game theory
>> > governs the market, and the tenuous hold the W3C has on influence
>> > even today. But let's start with the practicalities.
>>
>> Yeah, I wouldn't even know where to start.
>>
>> Marc, remember that the point of the Web (unlike other platforms) is that
>> it's royalty free and open. If we are talking economics here: The "tax" you
>> (Mark), as a developer, pay from having to deal with cross-browser introp
>> problems is comparable to the "tax" that you would have to pay Apple (30%)
>> to list your app in the apps store. However, we hope that it's less - and
>> that the Web is giving you better value for money for a number of reasons.
>>
>> What you get in return from your tax contribution is that ability to
>> publish whatever you want (freedom of speech), as often as you want (no
>> need to go through an App Store review process), to a market way larger
>> than iOS, Android, etc. put together. That's pretty awesome.
>>
>> The cost is, like I said, that you have to deal with cross browser introp
>> issues. But the wins for society and the ability for you, as an individual
>> to reach this audience, is massive. It cannot be understated. And you get
>> it essentially for free. That's a pretty sweet deal - this Web thing :)
>>
>>
>>
>>
>>
>>
>>
>
Received on Wednesday, 23 July 2014 03:56:07 UTC