Skip to content

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.

Issues

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

Notes

BrowserMainParts
initialization abstraction maybe useful to implement something like a WebViewMainLoop replacing BrowserMainLoop.

Introduction

Clone this wiki locally