Hacker News new | ask | show | jobs
by paulrouget 909 days ago
> Gecko was originally conceived to be embeddable by design

Which part? And… what do you mean by embeddable in that context?

2 comments

K-Meleon used the Gecko rendering engine but with a native chrome and no SpiderMonkey. It also powers Thunderbird and the SeaMonkey browser. I'm sure it turned up elsewhere before it was too 'baked in' to Firefox.
In the case of Thunderbird and seamonkey, Gecko was not embedded, but was the "embedder".

For a short time, there was some attempts (native cocoa and gtk widget) to embed gecko, but it was really not meant to be, it was really hacky and never matured.

Gecko was never designed to be embedded. Really.

XULRunner?
XULRunner was not Gecko embed. It was Gecko embedding stuff.

There was never a proper embeddable gecko.

There has been an attempt for a gtk widget, but it never matured.

"There was never a proper embeddable gecko" is both (a) a strong claim which with some difficulty we might be able adjudicate, but not especially important whether we do or not because, crucially, it is (b) not the same thing as saying/proving that "Gecko was not originally conceived to be embeddable" (or proving that its negation is untrue).

Gecko was not, at the time that Servo was conceived, supposed to be easy to embed. Gecko had, by the time that Servo was conceived, undergone refactoring that knowingly made it more difficult to embed. It would be accurate to say that, at the time that Servo was conceived, embeddability of Gecko was an explicit non-goal.

This is exactly why I raised the issue of the logical throughline of the other comment—what is the point of mentioning Gecko's embeddability in this discussion? All right, Gecko is "notoriously unembeddable". So what? It's a complete nonsequitur, and it risks catching anyone off guard if they're not playing close enough attention and they mistake it for a salient retort of... something not actually stated or argued here

I have a very difficult time parsing your words. I'm sorry.

I'm just saying gecko was not embeddable and was never designed to be so. There has been some efforts, and all failed.

As far as I know! … so I'd be happy to be corrected, I'd love to hear more about the history of gecko.

And you seem to know things I don't know, so I'm just asking what you are referring to. Out of curiosity.

> Gecko had, by the time that Servo was conceived, undergone refactoring that knowingly made it more difficult to embed

What kind of refactoring are you talking about?

And back to your original statement:

> Gecko was originally conceived to be embeddable by design

What are you talking about here?

I respect you and your contributions to Mozilla and the Web, but you're wrong. These two sentences aren't even logically consistent:

> I'm just saying gecko was not embeddable and was never designed to be so. There has been some efforts, and all failed.

Aside from that, sorry, but I have a huge distaste for the XKCD-style just-make-a-claim-on-the-internet-and-wait-for-someone-to-correct-you strategy of factfinding. It's reckless and annoying.

Anyone who's curious about this subject has more than enough information from this thread alone to turn up the relevant details on their own by now. I'm not going to do any archeology at this point in the discussion, because my patience and the amount of resources I'm willing to put into this topic have by now been exhausted. The only thing I'll say is that the Components.classes[`@mozilla.org/embedding/${...}`] namespace didn't exist for no reason.

Alright, you don't have to engage. I thought maybe I missed something before my time.

For others and historians :) … some efforts were made I think around 2008 (by Brad L. and/or Mark F. … I don't remember so well). A shortlived GTK widget was attempted at some point.

But this lead to nowhere because… well, it's hard to bend Gecko that way, because, again, Gecko was not designed to be embedded. And also because leadership was not pushing into that direction.

About the "not designed that way", what I mean is this:

We had many abstractions for sure to make it multi-platform (and that was amazing achievement, really) but embedding requires mechanisms to hook the event loop and the rendering pipeline into the embedder, in an agnostic way. Which is the part that was missing in Gecko.

Webkit had a proper, well designed, embedding story.

We didn't.