Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » Developing U++ » U++ Developers corner » Chromium embedded in U++
Chromium embedded in U++ [message #31818] Tue, 29 March 2011 18:46 Go to next message
tojocky is currently offline  tojocky
Messages: 607
Registered: April 2008
Location: UK
Contributor

Hello All,

I propose to integrate Google Chrome (Chromium) browser in U++.

The idea is: U++ application process will run the original Chrome browser process and communicate via IPC (Inter Process Communication).

Let look to Google process architecture:
index.php?t=getfile&id=3155&private=0

I hope we need to integrate in U++ only Browser process functionality and wrap RenderViewHost. Render processes will be original Chrome executable(s).

What is good:
  1. Cross-OS browser in U++;
  2. The U++ application file size will be less than all Chrome functionality;
  3. The hard work of the browser will be in separate process - render (Google chrome or Chromium);
  4. The compile time and hardware requirements for compile will be less (not minim 4 gb of RAM);
  5. The stability will not be lost in case of browser crash;
  6. Can control render processes and turn off the unanswerable processes.


But can be some problems:
  1. Version compatibility


The original idea was posted here

What we need to test:
  1. If is possible to integrate browser functionality in U++ and wrap only the "RenderViewHost".
  2. If is possible to get Chrome version and other details via IPC.


Any advice are welcome!

Interesting links can be:
  1. http://www.chromium.org/developers/design-documents/multi-pr ocess-architecture
  2. http://code.google.com/p/chromiumembedded/


  • Attachment: arch.png
    (Size: 23.78KB, Downloaded 3110 times)

[Updated on: Tue, 29 March 2011 18:54]

Report message to a moderator

Re: Chromium embedded in U++ [message #31831 is a reply to message #31818] Wed, 30 March 2011 10:55 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
tojocky wrote on Tue, 29 March 2011 12:46

Hello All,

I propose to integrate Google Chrome (Chromium) browser in U++.

The idea is: U++ application process will run the original Chrome browser process and communicate via IPC (Inter Process Communication).

Let look to Google process architecture:
index.php?t=getfile&id=3155&private=0

I hope we need to integrate in U++ only Browser process functionality and wrap RenderViewHost. Render processes will be original Chrome executable(s).

What is good:
  1. Cross-OS browser in U++;
  2. The U++ application file size will be less than all Chrome functionality;
  3. The hard work of the browser will be in separate process - render (Google chrome or Chromium);
  4. The compile time and hardware requirements for compile will be less (not minim 4 gb of RAM);
  5. The stability will not be lost in case of browser crash;
  6. Can control render processes and turn off the unanswerable processes.


But can be some problems:
  1. Version compatibility


The original idea was posted here

What we need to test:
  1. If is possible to integrate browser functionality in U++ and wrap only the "RenderViewHost".
  2. If is possible to get Chrome version and other details via IPC.


Any advice are welcome!

Interesting links can be:
  1. http://www.chromium.org/developers/design-documents/multi-pr ocess-architecture
  2. http://code.google.com/p/chromiumembedded/





I guess it would much more useful to integrate webkit... (which was proposed in the past, but never really done).
Re: Chromium embedded in U++ [message #31835 is a reply to message #31831] Wed, 30 March 2011 11:12 Go to previous messageGo to next message
dolik.rce is currently offline  dolik.rce
Messages: 1789
Registered: August 2008
Location: Czech Republic
Ultimate Contributor

mirek wrote on Wed, 30 March 2011 10:55

I guess it would much more useful to integrate webkit... (which was proposed in the past, but never really done).

Using chromium renderer is almost the same integrating webkit... you get the same engine plus few cool features as a bonus. The question here is what is simpler to do.

I know I have been talking about webkit integration a lot, but never wrote any code (apart from JavaScriptCore). The main reason why I never started is that I know I don't have enough time to dive into the webkit codebase for several months Confused What Ion proposes could shorten that time, so it is IMHO worthed to think about it.

Honza
Re: Chromium embedded in U++ [message #31838 is a reply to message #31831] Wed, 30 March 2011 16:44 Go to previous messageGo to next message
tojocky is currently offline  tojocky
Messages: 607
Registered: April 2008
Location: UK
Contributor

mirek wrote on Wed, 30 March 2011 11:55


I guess it would much more useful to integrate webkit... (which was proposed in the past, but never really done).


Mirek,

What about V8 JavaScript performance, WebGL accelerate, etc.?
Your idea is to implement a lot of hard work what Google already done and tested.

Or I'm wrong?
Re: Chromium embedded in U++ [message #31839 is a reply to message #31835] Wed, 30 March 2011 17:18 Go to previous messageGo to next message
tojocky is currently offline  tojocky
Messages: 607
Registered: April 2008
Location: UK
Contributor

Thanks to Honza for hint to analyze Google Chrome Frame. It is included in Internet Explorer Browser and communicate via IPC.

index.php?t=getfile&id=3156&private=0

It seems that IE plug-in runs already reduced render chrome process. by command line: "C:\Program Files\Google\Chrome Frame\Application\chrome.exe" --automation-channel=ChromeTestingInterface:4544.1 --chrome-frame --no-first-run --disable-popup-blocking --user-data-dir="C:\Documents and Settings\ilupascu\Local Settings\Application Data\Google\Chrome Frame\User Data\iexplore" --chrome-version=12.0.712.0 --lang=en-US --flag-switches-begin --flag-switches-end

The interesting part: Is possible to compile google Chrome frame in other OS?
Re: Chromium embedded in U++ [message #31840 is a reply to message #31839] Wed, 30 March 2011 17:48 Go to previous messageGo to next message
dolik.rce is currently offline  dolik.rce
Messages: 1789
Registered: August 2008
Location: Czech Republic
Ultimate Contributor

It is not very likely that Chrome Frame could be compiled under non-windows systems, but even looking at the code can give us a lot of information. Ion, did you look how does the architecture work? I assume that the chrome.exe provides just UI etc. and the rendering is separated in the renderer processes, is that right? If yes, we could just copy the interface and wrap it in U++...

Honza
Re: Chromium embedded in U++ [message #31847 is a reply to message #31835] Thu, 31 March 2011 09:27 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
dolik.rce wrote on Wed, 30 March 2011 05:12

mirek wrote on Wed, 30 March 2011 10:55

I guess it would much more useful to integrate webkit... (which was proposed in the past, but never really done).

Using chromium renderer is almost the same integrating webkit... you get the same engine plus few cool features as a bonus. The question here is what is simpler to do.

I know I have been talking about webkit integration a lot, but never wrote any code (apart from JavaScriptCore). The main reason why I never started is that I know I don't have enough time to dive into the webkit codebase for several months Confused What Ion proposes could shorten that time, so it is IMHO worthed to think about it.

Honza


Well, I guess the question is that we already have similiar solution with IE and Firefox, at least in Win32...

Mirek
Re: Chromium embedded in U++ [message #31866 is a reply to message #31840] Fri, 01 April 2011 14:23 Go to previous messageGo to next message
tojocky is currently offline  tojocky
Messages: 607
Registered: April 2008
Location: UK
Contributor

Verifying the exes and dlls from C:\Program Files\Google\Chrome Frame\Application\ it seems to be the original Chrome files.

After that I downloaded the source code and find that it support NPAPI ActiveX, and ActiveDocs.

It is a good news because we can use NPAPI plugin to embed Chrome.

Some interesting links here:
http://googlesystem.blogspot.com/2009/09/chrome-frame-not-ju st-for-internet.html
http://src.chromium.org/viewvc/chrome/trunk/src/chrome_frame /

dolik.rce wrote on Wed, 30 March 2011 18:48

Ion, did you look how does the architecture work? I assume that the chrome.exe provides just UI etc. and the rendering is separated in the renderer processes, is that right? If yes, we could just copy the interface and wrap it in U++...
Honza


Yes, You are right Honza.
Chromium Embedded Framework (CEF) [message #35012 is a reply to message #31818] Wed, 28 December 2011 09:50 Go to previous messageGo to next message
xtradev is currently offline  xtradev
Messages: 1
Registered: December 2011
Junior Member
There is an interesting project on Google Code: Chromium Embedded Framework (a framework for embedding chromium browser windows in other applications). Please, look at it.

- Roman
Re: Chromium Embedded Framework (CEF) [message #35013 is a reply to message #35012] Wed, 28 December 2011 10:41 Go to previous messageGo to next message
dolik.rce is currently offline  dolik.rce
Messages: 1789
Registered: August 2008
Location: Czech Republic
Ultimate Contributor

xtradev wrote on Wed, 28 December 2011 09:50

There is an interesting project on Google Code: Chromium Embedded Framework (a framework for embedding chromium browser windows in other applications). Please, look at it.

- Roman

Hi Roman,

Welcome to the forum Cool

I am following the development of this project quite closely, but for some reason I have trouble building it on my Arch linux box. Any help would be more than welcome, if you ever tried to build it...

It looks like a promising tool that could allow easy webkit integration into U++ (by "easy" I mean orders of magnitude easier than starting with vanilla webkit or chromium sources).

Best regards,
Honza
Re: Chromium embedded in U++ [message #35017 is a reply to message #31831] Wed, 28 December 2011 16:50 Go to previous messageGo to next message
lectus is currently offline  lectus
Messages: 329
Registered: September 2006
Location: Brazil
Senior Member
mirek wrote on Wed, 30 March 2011 04:55

I guess it would much more useful to integrate webkit... (which was proposed in the past, but never really done).


+1

We really need a Upp Webkit control with simple usage through methods like webkitctrl1.LoadURL("http://www.ultimatepp.org/").
Re: Chromium Embedded Framework (CEF) [message #35021 is a reply to message #35012] Thu, 29 December 2011 15:40 Go to previous messageGo to next message
tojocky is currently offline  tojocky
Messages: 607
Registered: April 2008
Location: UK
Contributor

Hello,

This solution, I think, is not the right solution which should be.
A better solution is to "run" already installed chromium browser and communicate throw IPC. In theory is possible. In practice I didn't tested because I work 120% in a project.

xtradev wrote on Wed, 28 December 2011 10:50

There is an interesting project on Google Code: Chromium Embedded Framework (a framework for embedding chromium browser windows in other applications). Please, look at it.

- Roman

Re: Chromium Embedded Framework (CEF) [message #35029 is a reply to message #35021] Fri, 30 December 2011 11:33 Go to previous messageGo to next message
dolik.rce is currently offline  dolik.rce
Messages: 1789
Registered: August 2008
Location: Czech Republic
Ultimate Contributor

tojocky wrote on Thu, 29 December 2011 15:40

This solution, I think, is not the right solution which should be.
A better solution is to "run" already installed chromium browser and communicate throw IPC. In theory is possible. In practice I didn't tested because I work 120% in a project.

I'm afraid that in most cases relying that chromium is installed on the end user system (and has correct version) is not very good idea. CEF is just a library that can be packaged and shipped with your application easily, so you always know that your html rendering will work everywhere.

Honza
Re: Chromium embedded in U++ [message #36571 is a reply to message #31831] Sun, 10 June 2012 17:13 Go to previous messageGo to next message
unknown user
mirek wrote on Wed, 30 March 2011 10:55

tojocky wrote on Tue, 29 March 2011 12:46

Hello All,

I propose to integrate Google Chrome (Chromium) browser in U++.

The idea is: U++ application process will run the original Chrome browser process and communicate via IPC (Inter Process Communication).

Let look to Google process architecture:
index.php?t=getfile&id=3155&private=0

I hope we need to integrate in U++ only Browser process functionality and wrap RenderViewHost. Render processes will be original Chrome executable(s).

What is good:
  1. Cross-OS browser in U++;
  2. The U++ application file size will be less than all Chrome functionality;
  3. The hard work of the browser will be in separate process - render (Google chrome or Chromium);
  4. The compile time and hardware requirements for compile will be less (not minim 4 gb of RAM);
  5. The stability will not be lost in case of browser crash;
  6. Can control render processes and turn off the unanswerable processes.


But can be some problems:
  1. Version compatibility


The original idea was posted here

What we need to test:
  1. If is possible to integrate browser functionality in U++ and wrap only the "RenderViewHost".
  2. If is possible to get Chrome version and other details via IPC.


Any advice are welcome!

Interesting links can be:
  1. http://www.chromium.org/developers/design-documents/multi-pr ocess-architecture
  2. http://code.google.com/p/chromiumembedded/





I guess it would much more useful to integrate webkit... (which was proposed in the past, but never really done).




The information is very interesting. Thanks for sharing the info.
Re: Chromium embedded in U++ [message #36573 is a reply to message #36571] Sun, 10 June 2012 19:32 Go to previous message
tojocky is currently offline  tojocky
Messages: 607
Registered: April 2008
Location: UK
Contributor

wokari wrote on Sun, 10 June 2012 18:13


The information is very interesting. Thanks for sharing the info.


You are welcome.
Unfortunately I didn't had a real task to embed a browser in C++... and also I didn't had time for testing this one.
Looking in the Chromium source-code, IPC and display part (browser) is too close/dependent to all the code.
To simplify the things, I would propose to use libuv for IPC and to parse and display data on the C++ layout.

Mirek had proposed to use WebKit but I'm afraid that this is a lot of work. Mirek looks from stability and dependents point of view.

Also you are welcome to share your ideas and your work.

Ion.
Previous Topic: Introducing OSVGS
Next Topic: Web framework - Skylark - first taste
Goto Forum:
  


Current Time: Thu Mar 28 23:42:19 CET 2024

Total time taken to generate the page: 0.01163 seconds