forked from crosswalk-project/crosswalk
-
Notifications
You must be signed in to change notification settings - Fork 0
WebContentsView EFL Approach
Dominik Röttsches edited this page Jun 5, 2013
·
6 revisions
This approach would assume that we replace Gtk with EFL for the purpose of creating a WebContentsViewEFL, from which we can later derive an EFL Evas Object as an extension to the EFL set of controls.
As a starting point, content_shell's launch stacktrace looks like this:
content::WebContentsViewGtk::WebContentsViewGtk content::CreateWebContentsView content::WebContentsImpl::Init content::WebContentsImpl::CreateWithOpener content::WebContents::Create content::Shell::CreateNewWindow content::ShellBrowserMainParts::PreMainMessageLoopRun content::BrowserMainLoop::CreateThreads content::BrowserMainRunnerImpl::Initialize ShellBrowserMain content::ShellMainDelegate::RunProcess content::RunNamedProcessTypeMain content::ContentMainRunnerImpl::Run content::ContentMain main
I propose to implement levels down from content::WebContents::Create using EFL.
On the EFL App side, we need something like
content::BrowserMainLoop::CreateThreads. This means we need
- EFL message-loop integration
- Something that drives Chromium's IPC message pump
- Potentially an IO and File thread that can respond to such requests from the renderer
- See thread list at the bottom of browser_main_loop.h
- Lifetime of such threads needs to be synced with lifetime of the webview control
BrowserMainPartsinitialization abstraction maybe useful to implement something like a WebViewMainLoop replacing BrowserMainLoop.