Thanks Jens. CEF (Chromium Embedded Framework) has some advantages over 
WebView. It's cross platform, provides more extensive hooks into the web view, 
allows for remote debugging, and automatically sandboxes the HTML code in its 
own process. In my case, the HTML will come from third-parties so it's 
especially useful to isolate them.

I should mention too, I already have CEF1 working with this multi-process 
approach to a first approximation and it is a bit gnarly. The main process 
forwards input events over IPC and both processes share an IOSurface. On the 
child process' side, I can use CEF1's "off-screen rendering" support, which 
lets me make calls like myBrowser->SendMouseClickEvent, 
myBrowser->SendMouseMouseEvent, etc. CEF3 on the other hand does not yet have 
support for these functions and I was wondering if I could work around them by 
sending the cocoa events directly.

Zak

From: Jens Alfke <[email protected]<mailto:[email protected]>>
Date: Sunday, September 23, 2012 5:18 AM
To: Zak Nelson <[email protected]<mailto:[email protected]>>
Cc: Ken Thomases <[email protected]<mailto:[email protected]>>, Cocoa Dev 
<[email protected]<mailto:[email protected]>>
Subject: Re: Share NSView between processes

This is possible to do, but it’s a _buttload_ of work. Chrome does it (and now 
Safari). It involves setting up shared memory buffers for pixmaps and using a 
lot of IPC calls to route events back and forth. Which sounds straightforward 
at this level, but this level is sort of like “you play the flute by blowing in 
one end and wiggling your fingers over the holes”, to quote Monty Python. I 
worked on Chrome for a year, and saw bits of the code to make this happen, and 
it looked Extremely Gnarly. Especially when you get into stuff like browser 
plugins, and hardware-accelerated graphics that want to render directly to the 
screen not to a pixmap.

If the framework generates HTML, why can’t you capture its HTML and send that 
to your app to display in a WebView? Or run a trivial little HTTP server in the 
framework process and point a WebView at that URL in the app; I’ve written 
several programs that use this approach.)

OK, wait, I just noticed that the framework you want to embed _is_ Chromium. 
The obvious question is, why can’t you just use a WebView instead? Is there 
some kind of functionality you need that only exists in Chromium’s fork of 
WebKit and not Apple’s?

—Jens
_______________________________________________

Cocoa-dev mailing list ([email protected])

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to