WebKit aggiunge il supporto alle EFL


È con grande piacere che annuncio la presenza del porting di WebKit, il famoso engine per il browser per le EFL, le librerie che stanno alla base di E17. Il WebKit utilizza la libreria Cairo per il rendering vettoriale, e l’oggetto renderizzato è assimilabile ad un Evas_Object, quindi gestibile nativamente dalle EFL. Questo lavoro spettacolare è stato realizzato da Kenneth Christiansen (lo trovate su freenode con il nick kenne), uno sviluppatore danese che lavora all’ INdT (Instituto Nokia de Tecnologia a Recife (Brasile), vera fucina per lo sviluppo di applicazioni per la piattaforma Maemo.

Nel suo blog kenne ha riportato gli step necessari per il donwload e la compilazione , che riporto di seguito per comodità:


$ git clone git://code.staikos.net/webkit webkit
$ cd webkit
$ git checkout origin/kenneth/efl-port
$ ./autogen.sh --with-port=efl --enable-web-workers=no
$ make

Tutto piuttosto semplice, no?

Alla fine del processo di compilazione è possibile testare il programma eseguendo:

$ Programs/EWebLauncher http://www.enlightenment.org

oppure, per vedere direttamente l’homepage di Google

$ Programs/EWebLauncher

La giovinezza del progetto è indubbia, e la finestra che appare, pur presentando un rendering pressochè perfetto, è priva di controlli, tipo menù, barra di stato, barra degli indirizzi, etc, e lo scrolling della pagina si esegue con i tasti freccia: insomma, il lavoro da fare non manca.
Ma questo aspetto piatto e scarno ha stuzzicato parecchie menti in #edevelop, e l’opinione comune che abbiamo è che l’obiettivo da perseguire deve essere quello di realizzare un browser basato sulle EFL, ma che non appaia come un clone di Internet Explorer/Safari/Firefox, rispecchiando invece lo stile di E17, semplice ed elegante.
Come lo immagino io? Uguale a quello che vedete negli screenshot qui sotto, una finestra che faccia quello che dovrebbe fare un browser, e cioè mostrare delle pagine web; i controlli ovviamente non possono mancare, per non influire negativamente sull’usabilità del programma, ma possono benissimo apparire solo al bisogno, in sovrapposizione alla pagina, e sparire una volta compiuta la loro funzione, e le normali operazioni potrebbero essere sostituite con mouse gestures o keybindings.
Questa è la mia visione di un browser per E17, e come dicevo prima, è condivisa anche da parecchi membri del core team, quindi non resta che stare a vedere cosa accade!

Come promesso, ecco un paio di screenshot.
Il primo mostra EWebLauncher in una sessione X su WinXP, SSH con il port forwarding attivato, il secondo mostra EWebLauncher in un luogo più consono, il desktop del mio portatile :)

efl_webkit
efl_webkit by mcalamelli on Zooomr

2008-12-19-133726
2008-12-19-133726 by mcalamelli on Zooomr

Alla prox

[tags]efl webkit,e17,webkit[/tags]

,

19 risposte a “WebKit aggiunge il supporto alle EFL”

  1. lanciando
    $ ./autogen.sh --with-port=efl --enable-web-workers=no
    ottengo:

    checking for GSTREAMER... configure: error: Package requirements (gstreamer-0.10 >=
    gstreamer-base-0.10,
    gstreamer-plugins-base-0.10) were not met:

    Requested 'gstreamer-0.10 >= gstreamer-base-0.10' but version of GStreamer is 0.10.22

    Consider adjusting the PKG_CONFIG_PATH environment variable if you
    installed software in a non-standard prefix.

    Alternatively, you may set the environment variables GSTREAMER_CFLAGS
    and GSTREAMER_LIBS to avoid the need to call pkg-config.
    See the pkg-config man page for more details.

    sai per caso come risolvere il problema?

    • Ciao, di solito il messaggio di errore significa che mancano le librerie di sviluppo, quindi in questo caso gstreamer-dev o qualcosa di simile.

  2. ho provato a compilare ma quando dò ./autogen.sh –with-port=efl –enable-web-workers=no

    configure: error: invalid variable name: –with-port

    non attiva il port delle efl a quanto pare…

    • E ho anche fixato il README in PROTO/eve , conteneva lo stesso carattere sbagliato. Grazie per il report!

  3. Ciao, mi sono accorto che nelle istruzioni riportate nel post c’è un errore di cut&paste dall’articolo originale, in pratica nel withportefl i primi due meno non ci sono, e al loro posto c’è un trattino unico, ma lungo.
    Prova a riscrivere il comando, in ogni modo ho corretto lo snippet nel post.

  4. Ho risolto il problema di gstreamer passando le variabili GSTREAMER_CFLAGS e GSTREAMER_LIBS all’ambiente prima di lanciare la configurazione visto che non me le rilevava lo stesso e almeno configura, ma, già che ci siamo .. i problemi continuano:


    WebCore/platform/graphics/MediaPlayer.cpp: In function ‘WTF::Vector& WebCore::installedMediaEngines()’:
    WebCore/platform/graphics/MediaPlayer.cpp:138: error: ‘MediaPlayerPrivate’ has not been declared
    make[1]: *** [WebCore/platform/graphics/libWebCore_la-MediaPlayer.lo] Error 1
    make[1]: Leaving directory `/home/igor/webkitefl-git/src/webkit-build'
    make: *** [all] Error 2

    • Allora, dopo un check veloce ieri sera, posso confermare il tuo errore, anche usando –enable-video=no il problema persiste.
      Per quanto riguarda il primo problema, quello di GSTREAMER nel ./configure, penso che il configure.ac contenga un errore relativo al check di gstreamer, ma gli autofoo mi sono ancora un po’ ostici, e la mano sul fuoco non ce la metto…
      Bisogna aspettare un commit che sistemi la cosa :(

  5. ho un piccolo aggiornamento: stanotte son riuscito a compilare webkit con queste opzioni:

    ./autogen.sh --with-port=efl --enable-web-workers=no \
    --prefix=/usr \
    --enable-icon-database \
    --enable-video=no \
    --enable-xpath \
    --enable-xslt \
    --enable-geolocation=no \
    --enable-gnomekeyring=no \
    --enable-svg \
    --enable-wml=no \
    --enable-pan-scrolling=no \
    --enable-svg-animation=no \
    --enable-svg-filters \
    --enable-svg-fonts \
    --enable-svg-foreign-object \
    --enable-svg-as-image \
    --enable-svg-use-element \
    --enable-fast-malloc \
    --enable-jit

    e visto che per la maggior parte sono opzioni di default non credo che sia “merito” mio ma semplicemente hanno corretto l’errore, visto poi che ora mi da un altro errore diverso:

    WebCore/plugins/efl/X11Window.cpp: In member function ‘void X11Window::init(WinId, WebCore::IntRect&)’:
    WebCore/plugins/efl/X11Window.cpp:31: error: ‘ECORE_X_EVENT_ANY’ was not declared in this scope
    make[1]: *** [WebCore/plugins/efl/libWebCore_la-X11Window.lo] Error 1
    make[1]: Leaving directory `/home/igor/webkitefl-git/src/webkit-build'
    make: *** [all] Error 2

    • Ciao, anche io ho delle novità, nel senso che sono riuscito ad arrivare in fondo, ma ho dovuto riscaricare il git tree, perchè il mio era troppo incasinato (git non è poi tutta questa figata, mekius in IRC l’ha definito “a lovely pile of shit”). Comunque, il problema di gstreamer lo elimini usando –enable-video=no; per il resto, penso che i problemi rimasti siano o un tree non aggiornato, oppure “sporcizia” rimasta da compilazioni precedenti, quindi un clean o qualcosa di simile possano aiutare. In ogni caso, alla fine volevo provare eve (in PROTO), che ovviamente non si compila… ok, penso sia meglio aspettare…

  6. ma qualcuno a eve ci sta ancora dietro?al termine della compilazione anche io ho provato e idem non compila, non ho segnato neanche l’errore, ma è un po’ che non vedo dei commit sul piccolo eve ..

  7. Uff, non ce l’ho fatta a stare con le mani in mano, e sono andato avanti con i test. Diverse cose le ho sistemate, ma eve è troppo fuori sync con EWebKit; comunque ho discusso con uno degli sviluppatori, ha delle patch da inviare, pensa di farlo nel we. Non ci resta che attendere :)

  8. L’errore riguardo la mancanza di ECORE_X_EVENT_ANY lo potete risolvere applicando questa patch ad ecore: http://pastebin.ubuntu.com/143571/

    Attualmente io riesco a compilarlo senza grossi problemi usando solo come opzioni “–disable-video” e “–with-port=efl”, tuttavia ho problemi con il linkaggio del browser di test incluso in EWebKit (considerando che anche eve è autdated) ricevendo questo errore:

    ./.libs/libewebkit.so: undefined reference to `WebCore::MediaPlayer::isAvailable()’
    ./.libs/libewebkit.so: undefined reference to `WebCore::JSAudioConstructor::s_info’
    ./.libs/libewebkit.so: undefined reference to `WebCore::JSAudioConstructor::JSAudioConstructor(JSC::ExecState*, WebCore::ScriptExecutionContext*)’

    Strano, ma non ho indagato molto.

    • Interessante, i miei errori sono diversi :)
      Eve non linka, indica delle undefined references per le funzioni ewk_event_feed_*, mentre ewww va in segfault all’avvio.
      Il backtrace riporta, relativamente ai frame #0 e #1 pthread_mutex_lock, mentre relativamente al frame #2 WTF::lockAtomicallyInitializedStaticMutex. Ok, giuro che ora aspetto la patch…

  9. Heilà! come procede il browser web in efl? :)
    io è un po’ che non seguo e17, ci sono stati cambiamenti?
    saluti

    • Ciao, purtroppo non ho più seguito WebKit/EFL, troppo incasinato da seguire, e il poco tempo che ho a disposizione preferisco usarlo per codice/wiki in trac/test in altri OS… Ma stai sicuro che appena arriverà ad un maggiore livello di maturità ricomincerò a testarlo!!

    • Ciao! Si, qualcosina ancora faccio, ecco, non quanto vorrei, ma ora va bene così :) Circa eve/ewebkit, ora provo a compilarli, ti faccio sapere!