I am excited to see this going forth. It will really open up developers options once this is fully operational. Thanks!
Daniel A. White On Sat, Nov 15, 2008 at 6:55 PM, Marshall Greenblatt <[EMAIL PROTECTED] > wrote: > Hi M-A, > > Thank you for your questions :-). > > On Sat, Nov 15, 2008 at 2:21 PM, Marc-Antoine Ruel <[EMAIL PROTECTED]>wrote: > >> >> Have you thought about other possible implementations? > > > We're still very much in the exploratory stage, and so all options are > currently on the table. The final solution will need to balance a number of > overlapping concerns in order to be feasible from both a usage and > development perspective. Here they are, numbered for ease of reference but > not necessarily importance. > > 1. Easy implementation and use by the client-side developer, preferably in > the language of their choice. > 2. Provide as much browser-like functionality as possible by default. > 3. Allow the client to override, customize or disable default functionality > if desired [1]. > 4. Minimize changes to the existing chromium code base, and avoid > duplication of existing functionality if possible. > 5. Take advantage of new features, bug fixes and enhancements to chromium > while requiring minimal changes to the "embedded component." > > A nice plus would be delivering the embedded component as part of the > normal chromium software distribution channels. That way we can ensure that > all users benefit from chromium improvements without embedded clients being > left behind (as happened with MS's web browser control). > > > [1] In my experience embedded browser clients generally come in one of two > flavors. There are clients who need a viewer with minimal application > control and there are clients who need the embedded browser to act as an > integrated part of the user interface. The embedded control that I envision > would support the first type of client by default while allowing the second > type of client whatever level of control they need. Some examples of the > advanced interfaces we'll eventually support: > > A. Security considerations. Allow the client application to set zone > permissions and control what type of content can be loaded. > B. Resource streams. The client application can intercept or initiate > resource load requests and provide in-memory data streams. > C. DOM manipulation. The client application can access and manipulate the > DOM programmatically. > D. Host client plug-ins. Render in-page plug-ins that are actually > components belonging to the client application. > E. Full JS support. Allow the client to make JS calls to the browser, and > visa-versa. > > >> >> >> - Create a thin activex control that would load chrome.dll and use it >> in-process so you could use it mostly unmodified. (You'd need to >> integrate some modifications first) > > > Can you provide a bit more information about what changes you foresee > needing to make in order to load chrome.dll in-process? > > >> >> >> - Forget about the browser component and reimplement >> RenderProcessHost, RenderViewHost, RenderWidgetHost, etc. Actually, >> you don't need this for embedding. > > > The re-implementation is something that I've already done, in a manner > similar to the test_shell project. Unfortunately we then loose numbers 2, 4 > and 5 in the above requirements list. > > >> You probably just need to split >> browser.lib in two and just keep the relevant hosting part. > > > This is something that is likely to happen as we gain a better > understanding of what pieces are extraneous for the embedded component. > There's no requirement that we use the existing chrome.exe or chrome.dll in > the final implementation -- it's just convenient for now. > > >> >> >> Do you think you would gain much by making it out of process? > > > This is a tough question to answer. I think the major gain is in > stability, similar to why chrome hosts tabs and plug-ins in separate > processes. If I were an application developer using chrome as the basis for > a help system then I wouldn't want my application going down if chrome > crashes. After all, help isn't central to the application's main purpose. > If, on the other hand, I'm using chrome as the basis for my user interface > then a crash in chrome could be fatal for my application irrespective of > whether it's in-process or out of process. > > The final answer to this question will probably come from the > implementation side. For instance, if we find significant performance > advantages to one approach over the other, or if there's a feature that can > only be implemented using a particular approach. > > >> >> >> M-A > > > Regards, > Marshall > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Chromium-dev" group. To post to this group, send email to chromium-dev@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/chromium-dev?hl=en -~----------~----~----~----~------~----~------~--~---