New browser release [08/18/2008]

6 views
Skip to first unread message

Arnaud Granal

unread,
Aug 18, 2008, 3:22:19 PM8/18/08
to Neuros
Hello,

The project is going well, bad thing it is the (official) end.
This is the latest "official" SoC release I do, the project will keep
going without GSoC ;)

-------------------------- Next release is scheduled in 15 days and
will have menus and a proof of concept of Wikipedia integration with
xmms2 playlist once a decent speed/mobile version has been achieved.
Ahem no, it's done :p

While the front-end is almost the same and the code is very simple/
tight/light, the backend has _really_ changed.
The browser is now running a hacked version WebKit-r35752, we have
split up from the old Qt-embedded 4.4.0 branch.

The Qt version was really too old so I have decided to do the Qt
integration myself.

These hacks are not easy to put in a diff file as they modify
automatic generated files (e.g. by gperf), I have brought to you a
buildable package with the modifications on :)


Changelog:

- Speed improvement (about 2/3X faster)
- Cache support (set to 3.15 MB)
- Fixed black text on black (you can see what you type).
- Added ugly scrollbars when required
- Fresh new WebKit engine (nightly) + Squirrelfish (http://webkit.org/
blog/189/announcing-squirrelfish/)
- The browser used to crash on big websites, this is now fixed.
- Javascript enable / disable on the fly (just press "0" key)
- Less memory footprint and faster startup.
- Added a working menu on XIM key press
- Added CoolNetworkStateCheck() to check connectivity
- Custom user CSS
===> Simply create a file /mnt/tmpfs/mount_CF-card/data/webpages/
user_style.css
- ARGV[] for XIM integration
- XIM integration: css of /mnt/tmpfs/mount_CF-card/data/webpages/
xim_style.css is used in XIM powered pages
- Correct handling of NMS (no freezes)
- No more random segv ?
- New welcome.html (http://arnaud.fr.nf/neuros/screenshots/
welcome.jpg)

Known bugs:
Submit buttons may not work [testing new input routines] (press OK in
the textbox to submit it then).

The browser is sped-up (especially when using cache, useful on
websites like Wikipedia): http://arnaud.fr.nf/neuros/Speed/
A quick comparison shows a big difference between this release and the
previous. 3 times faster.

Actually it has reacheable a usable level. Yes it is still slow but
less. Doing my best to improve this ;)

What's coming next ?

- History \o/
- Input text micro-input
- Faster browsing

Instructions to try it : (copy/paste of alpha release).
https://svn.neurostechnology.com/hackers/raven/browser/bin/Instructions.txt
or alternatively you can copy all the files of
https://svn.neurostechnology.com/hackers/raven/browser/bin/ at the
_root_ of a USB key then type this command in telnet (after plugging
it in your OSD and reboot it):

cd /media/USB/ ; chmod u+x quickndirty_install.sh && ./
quickndirty_install.sh

Here is how you can use the remote control:
https://svn.neurostechnology.com/hackers/raven/browser/bin/remote_control.jpg


The most useful key is Channel -, it will allow you to cycle through
Web page elements, press that key if you have any trouble with
browsing as it will reset
focus state of the browser.



Stability test: A big website with a lot of pictures:
http://arnaud.fr.nf/neuros/screenshots/stabilitytest.jpg (very very
very very slow)



=====> Idea: maybe we should do a Google Maps application ?
I think it should really take not much time to do with the current
state of the project.



Feel free to e-mail me if you notice any crash / bug / unexpected
feature :o)



P.S.: For devs, you can use almost all the features of QWebView object
as the port is almost 100% as if you were on a computer.

Next release scheduled on 28th Aug 17:00 GMT.

(currently commiting, may be finished in a few mins)

--
Arnaud Granal, Neuros Web Browser Dev.

Arnaud Granal

unread,
Aug 18, 2008, 3:42:53 PM8/18/08
to Neuros
Demo of aplayer integration:

http://arnaud.fr.nf/neuros/aplayer/


[21:38:54] <ravenexus> it is really slow BUT (because there is a
but :p)
[21:39:14] <ravenexus> Javascript is enabled even from xim (could be
disabled and would make it start faster)
[21:39:37] <ravenexus> aplayer is still in the background, and that's
why it is slow (aplayer *loves* taking CPU cycles ;))
[21:39:46] <ravenexus> will have some tests in about 1h without it
[21:41:16] <ravenexus> well, instead of optimizing webkit, I could
build a time-maching to create a "time-gap" between the startup of the
browser and when the page is displayed

Fernando Cassia

unread,
Aug 18, 2008, 3:51:16 PM8/18/08
to neu...@googlegroups.com

The solution then is to have the browser always loaded after the OS
boots, just minized and with minimum cpu priority.

When you call the browser, instead of launching the application, you
just bring the browser to the foreground and set its process priority
to normal.

Just my $0.02
FC

Joe Born

unread,
Aug 18, 2008, 4:33:19 PM8/18/08
to neu...@googlegroups.com
The possibilities are certainly very exciting!

is this wikipedia mobile that you talked about, or regular wikipedia?

> [21:38:54] <ravenexus> it is really slow BUT (because there is a
> but :p)
> [21:39:14] <ravenexus> Javascript is enabled even from xim (could be
> disabled and would make it start faster)

how hard would it be to disable?

Arnaud Granal

unread,
Aug 18, 2008, 4:39:53 PM8/18/08
to Neuros
Very simple,

Just for tests I am doing a build of aplayer without Javascript and
without aplayer still running behind, I'll post it once it is ready

While waiting for it, you can just press "0" key and see, Javascript
will be switched on/off ;)

Arnaud Granal

unread,
Aug 18, 2008, 4:49:48 PM8/18/08
to Neuros
On 18 août, 22:39, Arnaud Granal <serp...@gmail.com> wrote:
> On 18 août, 22:33, "Joe Born" <jb...@neurostechnology.com> wrote:
>
> > The possibilities are certainly very exciting!
>
> > is this wikipedia mobile that you talked about, or regular wikipedia?
>
> > > [21:38:54] <ravenexus> it is really slow BUT (because there is a
> > > but :p)
> > > [21:39:14] <ravenexus> Javascript is enabled even from xim (could be
> > > disabled and would make it start faster)
>
> > how hard would it be to disable?
>
> Very simple,
> [...]

These binaries should be faster (seems to be about 20 seconds faster)

http://arnaud.fr.nf/neuros/nojs/webbrowser
---> Javascript disabled by default on Xim called (can be re-enabled
with 0)

http://arnaud.fr.nf/neuros/nojs/aplayer
---> closes itself when calling Web Browser

Joe Born

unread,
Aug 18, 2008, 4:53:40 PM8/18/08
to neu...@googlegroups.com
>> Very simple,
>> [...]
>
> These binaries should be faster (seems to be about 20 seconds faster)
>
> http://arnaud.fr.nf/neuros/nojs/webbrowser
> ---> Javascript disabled by default on Xim called (can be re-enabled
> with 0)
>
> http://arnaud.fr.nf/neuros/nojs/aplayer
> ---> closes itself when calling Web Browser
>
> --
Great, is there a HOWTO? Sorry If I missed, I've been pulled in a
bunch of directions lately.

Joe

Arnaud Granal

unread,
Aug 18, 2008, 5:06:30 PM8/18/08
to Neuros
Instructions for first alpha of browser

Telnet to Neuros-OSD: root/pablod

Copy (via ftpget/tftp ?) the file webbrowser and the file aplayer in /
media/CF-card/

Type
chmod u+x /media/CF-card/aplayer
chmod u+x /media/CF-card/webbrowser
chown 500:244 /media/CF-card/aplayer
chown 500:244 /media/CF-card/webbrowser

Create the directory /media/CF-card/data/webpages/ and copy
welcome.html inside
In /media/CF-card/.osd-extended/programs/Qt-4.4.0/lib/ copy the file
libQtWebKit.so.4.4.0

Type
cd /media/CF-card/.osd-extended/programs/Qt-4.4.0/lib/
chown 500:500 libQtWebKit.so.4.4.0
ln -s libQtWebKit.so.4.4.0 libQtWebKit.so
ln -s libQtWebKit.so.4.4.0 libQtWebKit.so.4
ln -s libQtWebKit.so.4.4.0 libQtWebKit.so.4.4

Start /media/CF-card/aplayer when you feel ready:
cd /media/CF-card/
./aplayer

Should do the job :)

/me is sleeping

Joe Born

unread,
Aug 25, 2008, 4:08:34 PM8/25/08
to neu...@googlegroups.com
I've been really really impressed with the potential of this

http://open.neurostechnology.com/content/web-your-tv-why-it-makes-sense

I really think we need something like webtools to make the OSD
accessible to ordinary folks so to speak.

>> > These binaries should be faster (seems to be about 20 seconds faster)
>>

I'm really feeling that we can further optimize against a known type
of page, ie start our own wiki or use last.fm, etc and optimize
against that, but it's a great start, there's no doubt of that.
Thanks Ravenexus!

maxotin

unread,
Aug 27, 2008, 6:29:34 PM8/27/08
to Neuros
Hi Arnaud,

Is it (will be) able to cache logins and passwords for specific
webpages? Still thinking of reading my gmails from the TV screen :-)

Regards, Oleg
> Instructions to try it : (copy/paste of alpha release).https://svn.neurostechnology.com/hackers/raven/browser/bin/Instructio...
> or alternatively you can copy all the files ofhttps://svn.neurostechnology.com/hackers/raven/browser/bin/at the
> _root_ of a USB key then type this command in telnet (after plugging
> it in your OSD and reboot it):
>
> cd /media/USB/ ; chmod u+x quickndirty_install.sh && ./
> quickndirty_install.sh
>
> Here is how you can use the remote control:https://svn.neurostechnology.com/hackers/raven/browser/bin/remote_con...
>
> The most useful key is Channel -, it will allow you to cycle through
> Web page elements, press that key if you have any trouble with
> browsing as it will reset
> focus state of the browser.
>
> Stability test: A big website with a lot of pictures:http://arnaud.fr.nf/neuros/screenshots/stabilitytest.jpg(very very

Arnaud Granal

unread,
Sep 3, 2008, 9:33:14 PM9/3/08
to Neuros
On 28 août, 00:29, maxotin <mao...@gmail.com> wrote:
> Hi Arnaud,

Hi,

Sorry for late answer, was on vacations :)

>
> Is it (will be) able to cache logins and passwords for specific
> webpages? Still thinking of reading my gmails from the TV screen :-)
>

Yes will be added in a release or two.

> Regards, Oleg

Best,

greyback

unread,
Sep 18, 2008, 6:28:39 PM9/18/08
to Neuros
Hey Arnaud,
First off, great job on the webkit port! It's fun to show friends the
net via tv. I am interested in incorporating your source into the
Neuros build system, and to get a UPK out there with browser & last.fm
and other bits & pieces. So here's my question:

I'm trying to build webkit from your svn source with Qt4.4.1 - yeah
I've updated that too. However the build fails in WebCore with an
error I cannot figure out, perhaps you can take a look? My error:

arm-linux-g++ -c -pipe -Wreturn-type -fno-strict-aliasing -O2 -
D_REENTRANT -fPIC -DBUILDING_QT__=1 -DUSE_SYSTEM_MALLOC -DNDEBUG -
DHAVE_STDINT_H -DBUILD_WEBKIT -DENABLE_CROSS_DOCUMENT_MESSAGING=1 -
DENABLE_DASHBOARD_SUPPORT=0 -DENABLE_DATABASE=1 -
DENABLE_ICONDATABASE=1 -DENABLE_XPATH=0 -DENABLE_XBL=0 -DENABLE_SVG=0 -
DENABLE_SVG_FONTS=0 -DENABLE_SVG_FILTERS=0 -
DENABLE_SVG_FOREIGN_OBJECT=0 -DENABLE_SVG_ANIMATION=0 -
DENABLE_SVG_AS_IMAGE=0 -DENABLE_SVG_USE=0 -DENABLE_VIDEO=0 -
DWTF_USE_JAVASCRIPTCORE_BINDINGS=1 -DWTF_CHANGES=1 -DQT_NO_DEBUG -
DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/home/thebox/
Programming/neuros-osd/neuros-bsp/toolchain/Qt-4.4.1/mkspecs/qws/linux-
arm-g++ -I. -I/home/thebox/Programming/neuros-osd/neuros-bsp/toolchain/
Qt-4.4.1/include/QtCore -I/home/thebox/Programming/neuros-osd/neuros-
bsp/toolchain/Qt-4.4.1/include/QtCore -I/home/thebox/Programming/
neuros-osd/neuros-bsp/toolchain/Qt-4.4.1/include/QtNetwork -I/home/
thebox/Programming/neuros-osd/neuros-bsp/toolchain/Qt-4.4.1/include/
QtNetwork -I/home/thebox/Programming/neuros-osd/neuros-bsp/toolchain/
Qt-4.4.1/include/QtGui -I/home/thebox/Programming/neuros-osd/neuros-
bsp/toolchain/Qt-4.4.1/include/QtGui -I/home/thebox/Programming/neuros-
osd/neuros-bsp/toolchain/Qt-4.4.1/include -Istorage -I../WebKit/qt/Api
-I../JavaScriptCore -I../JavaScriptCore/ForwardingHeaders -I../
JavaScriptCore/VM -I../JavaScriptCore/kjs -I../JavaScriptCore/bindings
-I../JavaScriptCore/wtf -Iplatform/qt -Iplatform/network/qt -Iplatform/
graphics/filters -Iplatform/graphics/qt -Isvg/graphics/qt -Iloader/qt -
Ipage/qt -I../WebKit/qt/WebCoreSupport -I../WebKit/qt/Api -Ibridge/qt -
I. -IForwardingHeaders -I../../webkit -Iplatform -Iplatform/network -
Iplatform/graphics -Isvg/animation -Isvg/graphics -Isvg/graphics/
filters -Iplatform/sql -Iplatform/text -Iloader -Iloader/appcache -
Iloader/archive -Iloader/icon -Icss -Idom -Ipage -Ibridge -Iediting -
Irendering -Irendering/style -Ihistory -Ixml -Ihtml -Ibindings/js -
Isvg -Iplatform/image-decoders -Iplugins -Ibridge -Ibridge/c -Ibridge/
qt -Itmp -I/home/thebox/Programming/neuros-osd/neuros-bsp/toolchain/
Qt-4.4.1/src/3rdparty/sqlite/ -I. -I. -o tmp/JSAttrCustom.o bindings/
js/JSAttrCustom.cpp
In file included from dom/Document.h:35,
from bindings/js/JSEventTargetBase.h:30,
from bindings/js/JSEventTargetNode.h:31,
from tmp/JSAttr.h:24,
from bindings/js/JSAttrCustom.cpp:30:
platform/StringHash.h:218: error: type
`WTF::HashTraits<WebCore::StringImpl*>' is not derived from type
`WTF::HashTraits<WebCore::String>'
platform/StringHash.h:218: error: ISO C++ forbids declaration of
`StorageTraits' with no type
platform/StringHash.h:218: error: expected `;' before "StorageTraits"
platform/StringHash.h:219: error: `StorageTraits' has not been
declared
platform/StringHash.h:225: error: member `WebCore::String
WTF::HashTraits<WebCore::String>::<anonymous union>::m_s' with
constructor not allowed in union
platform/StringHash.h:225: error: member `WebCore::String
WTF::HashTraits<WebCore::String>::<anonymous union>::m_s' with
destructor not allowed in union
platform/StringHash.h:225: error: member `WebCore::String
WTF::HashTraits<WebCore::String>::<anonymous union>::m_s' with copy
assignment operator not allowed in union
platform/StringHash.h:237: error: `HashKeyStorageTraits' is not a
template
platform/StringHash.h:237: error: explicit specialization of non-
template `WTF::HashKeyStorageTraits'
platform/StringHash.h:241: error: `HashKeyStorageTraits' is not a
template
platform/StringHash.h:241: error: redefinition of `struct
WTF::HashKeyStorageTraits'
platform/StringHash.h:237: error: previous definition of `struct
WTF::HashKeyStorageTraits'
platform/StringHash.h:246: error: `HashKeyStorageTraits' is not a
template
platform/StringHash.h:246: error: redefinition of `struct
WTF::HashKeyStorageTraits'
platform/StringHash.h:237: error: previous definition of `struct
WTF::HashKeyStorageTraits'
platform/StringHash.h:250: error: `HashKeyStorageTraits' is not a
template
platform/StringHash.h:250: error: redefinition of `struct
WTF::HashKeyStorageTraits'
platform/StringHash.h:237: error: previous definition of `struct
WTF::HashKeyStorageTraits'
In file included from bindings/js/JSEventTargetBase.h:30,
from bindings/js/JSEventTargetNode.h:31,
from tmp/JSAttr.h:24,
from bindings/js/JSAttrCustom.cpp:30:
dom/Document.h:996: error: `CaseFoldingHash' was not declared in this
scope
dom/Document.h:996: error: template argument 3 is invalid
dom/Document.h:996: error: ISO C++ forbids declaration of
`m_elementsByAccessKey' with no type
make[1]: *** [tmp/JSAttrCustom.o] Error 1
make[1]: Leaving directory `/home/thebox/Programming/neuros-osd/my-
apps/raven/browser/src/webkit/WebCore'
make: *** [sub-WebCore-make_default-ordered] Error 2

I've looked at the source, and am really stuck as to why the compiler
is complaining. (Especially as my previous webkit work never had this
problem). Have you any ideas?

Question 2: What is in your browser/generate directory?
> Instructions to try it : (copy/paste of alpha release).https://svn.neurostechnology.com/hackers/raven/browser/bin/Instructio...
> or alternatively you can copy all the files ofhttps://svn.neurostechnology.com/hackers/raven/browser/bin/at the
> _root_ of a USB key then type this command in telnet (after plugging
> it in your OSD and reboot it):
>
> cd /media/USB/ ; chmod u+x quickndirty_install.sh && ./
> quickndirty_install.sh
>
> Here is how you can use the remote control:https://svn.neurostechnology.com/hackers/raven/browser/bin/remote_con...
>
> The most useful key is Channel -, it will allow you to cycle through
> Web page elements, press that key if you have any trouble with
> browsing as it will reset
> focus state of the browser.
>
> Stability test: A big website with a lot of pictures:http://arnaud.fr.nf/neuros/screenshots/stabilitytest.jpg(very very
Reply all
Reply to author
Forward
0 new messages