[webkit-dev] help needed on compiling the webkit on embedded linux platform.

2008-10-14 Thread Ramesh Satyavaram
Hi,
 I am using the free scale imx3-stack board. It has embedded linux. Could
any one help me on how to use web kit on embedded linux for browsing ?

Regds,
S.Ramesh Chandra.
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


[webkit-dev] Unable to compile the webkit on the Redhat enterprise linux 9

2008-10-14 Thread Ramesh Satyavaram
Hi,



 I am new to webkit. Yester day I downloaded the sources on to my Red hat
enterprise linux 9. I tried to compile with the following command.





QTDIR=/usr/share/qt4/ WebKit/WebKitTools/Scripts/build-webkit





I am getting the following error.



Calling  'qmake CONFIG+=qt-port –r
OUTPUT_DIR=/home/seamless/Webkit/WebKit.pro CONFIG=+release CONFIG-=debug'
in /home/seamless/Webkit/WebKitBuilt/Release





***Unknown option –r







Could you please help me in this?



Thank you,

S.Ramesh Chandra.
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] My Windows build notes

2008-10-14 Thread Mike Belshe
Thanks Adam.

On Tue, Oct 14, 2008 at 5:47 AM, Adam Roben [EMAIL PROTECTED] wrote:

 On Oct 13, 2008, at 7:09 PM, Mike Belshe wrote:

 It took me a while to get my windows build going, so I thought I'd share
 what I learned:


 Thanks, Mike! This kind of information is very helpful in keeping our
 instructions up-to-date.

 1) I had to completely start over with cygwin.  I uninstalled and
 reinstalled using the cygwin-downloader from here:
 http://webkit.org/building/tools.html

 2) Several components were missing from cygwin:
 - perl, make, gcc, bison, gperf, curl, unzip, flex

 3) Used cpan get Win32API::Registry to download that module


 Steps (2) and (3) were required even after installing via
 cygwin-downloader? You can see the list of packages it installs here: 
 http://trac.webkit.org/browser/trunk/WebKitTools/CygwinDownloader/cygwin-downloader.py#L47.
 You can see that the list includes all the packages you mentioned (even
 perl-libwin32, which should install the Win32API::Registry module, I
 believe).


Yes.  I've read some about multiple cygwin installations, maybe I have
multiple cygwins on one box?  The cygwin install/uninstall process is
basically voodoo.   Even after I deleted everything cygwin related I could
find, I reinstalled using the cygwin-downloader but I didn't have these
components.

Overall, I think cygwin is really brittle.  We might be able to make this
more reliable by putting this into the windows-specific tooling and then
reference it explicitly rather than relying on cygwin's installer?






 4) After downloading the source, I also had to run update-webkit.  I
 suspect this is a required step, although I don't think it is documented?


 This is documented here http://webkit.org/building/checkout.html:


1.

Type this command to update your source tree:

WebKit/WebKitTools/Scripts/update-webkit

If you downloaded the tarball, this will bring it up to date. Windows
users must always execute this command after first obtaining the code, 
 since
it will download additional libraries that are needed to build.


Not sure how I missed that.  Seems so obvious now! :-)



 I'm happy to update documentation if you point me at it; but I'm not sure
 if my experience is due to pilot error or if things have changed.


 The documentation all lives in the WebKitSite directory of the WebKit
 source tree. Patches to clarify/fix the build instructions can be posted on
 https://bugs.webkit.org/. Thanks!

 -Adam


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] Unable to compile the webkit on the Redhat enterprise linux 9

2008-10-14 Thread Gustavo Noronha Silva
Hello,

Disclaimer: I'm more of a GTK+/Debian guy =).

On Tue, 2008-10-14 at 10:31 -0400, Ramesh Satyavaram wrote:
  I am new to webkit. Yester day I downloaded the sources on to my Red
 hat enterprise linux 9. I tried to compile with the following command.

There is no such thing as Red Hat Enterprise 9. Either you are using Red
Hat 9, or Fedora 9. If you're using the former it is already way old,
and you probably have a too old version of qmake. Do check if qmake's
version is current.

See you,

-- 
Gustavo Noronha Silva [EMAIL PROTECTED]
GNOME contributor: http://www.gnome.org/

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] My Windows build notes

2008-10-14 Thread Adam Roben

On Oct 13, 2008, at 7:09 PM, Mike Belshe wrote:

It took me a while to get my windows build going, so I thought I'd  
share what I learned:


Thanks, Mike! This kind of information is very helpful in keeping our  
instructions up-to-date.


1) I had to completely start over with cygwin.  I uninstalled and  
reinstalled using the cygwin-downloader from here:  http://webkit.org/building/tools.html


2) Several components were missing from cygwin:
- perl, make, gcc, bison, gperf, curl, unzip, flex

3) Used cpan get Win32API::Registry to download that module


Steps (2) and (3) were required even after installing via cygwin- 
downloader? You can see the list of packages it installs here: http://trac.webkit.org/browser/trunk/WebKitTools/CygwinDownloader/cygwin-downloader.py#L47 
. You can see that the list includes all the packages you mentioned  
(even perl-libwin32, which should install the Win32API::Registry  
module, I believe).


4) After downloading the source, I also had to run update-webkit.  I  
suspect this is a required step, although I don't think it is  
documented?


This is documented here http://webkit.org/building/checkout.html:


Type this command to update your source tree:

WebKit/WebKitTools/Scripts/update-webkit

If you downloaded the tarball, this will bring it up to date.  
Windows users must always execute this command after first obtaining  
the code, since it will download additional libraries that are  
needed to build.




I'm happy to update documentation if you point me at it; but I'm not  
sure if my experience is due to pilot error or if things have changed.


The documentation all lives in the WebKitSite directory of the WebKit  
source tree. Patches to clarify/fix the build instructions can be  
posted on https://bugs.webkit.org/. Thanks!


-Adam

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


[webkit-dev] python bindings to qwebkit - who's responsible for doing this work (anyone?)

2008-10-14 Thread Luke Kenneth Casson Leighton
hiya folks,

last month or so i added glib bindings to webkit, in order to make
them available via pygtk's codegen.py as python bindings, for
pywebkitgtk.  to make that as clear as mud: around webkit's c++ DOM
bindings i added glib bindings so that i could add python bindings.
wait - don't laugh - it does actually make sense - there _is_ a good
reason for doing it that way :)

the background to this story of insanity (300 auto-generated glib
objects and 1,570 auto-generated functions and the work's only 70%
complete) is that i decided to port pyjamas, itself a port of GWT, to
pure python.  in looking for decent technology to utilise, i stumbled
onto webkit.

now, of course, because pyjamas ( http://pyjd.org and http://pyjs.org
) absolutely rocks, and is utterly cool, i'd like to see pyjamas
ported to different DOM model layers, and so, a couple of days ago, i
had a quick hack at doing pyjamas-khtml:
http://github.com/lkcl/pyjamas-desktop/tree/master/pyjamas-khtml which
isn't unfortunately going so well, because there's a fundamental flaw
in the design of the python bindings to khtml.DOM:
https://bugs.kde.org/show_bug.cgi?id=172740

it's _this_ why i'm looking to contact the people who are doing the
work on QWebKit, to find out what the plans are, for doing python
bindings, and to advise you - whomever you might be - to watch out for
two things:
1) not to make the same design mistake
2) to consider ways in which drastic amounts of development time can be saved

... allow me to explain :)  issue 1, first.

there's something very, very important that gobject can do, and i am
unsure that it is appropriate to use e.g. QObject to do the same
thing, or even if Qt4 is capable of doing what gobject can provide
(which it could very well do, but i don't know how), and it's this:
gobject can do base classing.  object inheritance trees, and,
absolutely absolutely critically, run-time typecasting.

even more importantly than that, python-gobject can pick up on the
gobject type and will return the correct python object.  the key is
here, in create_gdom_object(), line 284, of GDOMBindings.cpp:
http://github.com/lkcl/webkit/tree/16401.master/WebCore/bindings/gdom/GDOMBinding.cpp#L294
the critical line is this:
   gpointer res = g_object_new(dob-getGobjType(), NULL);
that getGobjType() function is a pure virtual function, in the glib
bindings c++ object (which represents the webkit DOM object).  the
auto-generator (Gobject.pm) creates each and every one of the 300
class instances where getGobjType() is declared, and so they return a
GDOM_GOBJECT_TYPE_NODE, GDOM_GOBJECT_TYPE_ELEMENT,
GDOM_GOBJECT_TYPE_HTML_BODY_ELEMENT etc. etc. etc.

from there, python-pygobject is clever enough to implement the
equivalent of c++ dynamic typecasting, such that _even_ when you do
pywebkitgtk.document.getElementById(body_id), instead of a
GDOM_GOBJECT_TYPE_NODE - i.e. a pywebkitgtk.DOMNode python object
being returned (with the underlying c++ object being typecast down to
a WebCore::Node*), a GDOM_GOBJECT_TYPE_HTML_BODY_ELEMENT is returned,
and thus python-pygobject creates a pywebkitgtk.HTMLBodyElement.

like i mentioned in my previous post, regarding khtml.DOM, i cannot
express enough how absolutely vital it is that this issue is done
correctly.  as a workaround, khtml.DOM offers typecasting
functions - in python - and the use of these functions is a complete
nightmare (for reasons explained in the kde-devel post)

without the combination of a HashMap and the support and use of the
equivalent of c++ runtime typecasting, developers who use
python-qwebkit for any serious DOM manipulation work are... screwed.
utterly.

issue 2, next.

many people assume that glib equals gtk, and that gtk equals glib.
and that glib equals gobject equals gtk.  i certainly made the mistake
of thinking that, in order to do gobject bindings, i would need the
gtk libraries.

you don't.

glib and gobject have nothing to do with gtk (but - Gtk is _entirely_
dependent on gobject).

so, when i said that i had done glib bindings around webkit's DOM
model - i really _meant_ that i had done glib bindings around webkit -
NOT i repeat NOT gtk bindings [around webkit's DOM model].

the importance of this - particularly in saving you (whomever you
might be) vasts amounts of time and effort - cannot be underestimated.

if you utilise the glib bindings to webkit to provide python-qwebkit
with bindings to webkit's DOM model, my guess is that it would take
about...  eight hours, absolute maximum.

if you endeavour to do a separate and distinct set of bindings to the
webkit DOM model - either direct in python or onto QObject (based on
GObject.pm auto-generator or the JSBindings auto-generator) i estimate
that the average developer will take approximately one month to
complete the work (300 objects), excluding Canvas DOM bindings which
would be about another 7 to 10 days (a further 100 to 150 objects).

if you endeavour to work off the back of the python-pykde work, 

[webkit-dev] webkit core need to be cleanly separated from ports, behind a vector table

2008-10-14 Thread Luke Kenneth Casson Leighton
https://bugs.webkit.org/show_bug.cgi?id=21598

copy of the bugreport is here:

a c struct containing pointers to higher order functions.  used extensively in
FreeDCE, linux kernel and the NT 4.0 kernel (e.g. the Lsa Security).

good library interfaces are _so_ divorced from other libraries that they don't
even access standard c or c++ libraries.  evvverry single function - of
everything that they need - goes into the vector table.

in the case of kernels, you don't have any choice but to do that.  in FreeDCE,
it was just good practice.

for webkit, it's a little insane to do a complete redesign of the library,
_but_ - a good starting point would be the boundary between the ports and the
webkit core (with the second stage being to _not_ call direct HTTP access for
XMLHTTPRequest, but to call out to the functions in the vector table, to
perform the URL data fetching.  that would be _extremely_ useful).

basically, the interface would look _incredibly_ similar to what
webkitwebview.cpp looks like at the moment.  except that you'd go via a vector
table, and the initialisation would involve setting some 80 functions.

_really_ good library design has ONE public function - ONE!  and it's the
function which returns you a pointer to the vector table, for the port
developers to fill in all of the higher order function pointers.

the advantages of taking this approach will be explained on the mailing list.

the amount of actual work required to be done is really quite remarkably small,
and would in many ways be quite simple and non-challenging (always nice to have
something _simple_ to do which offers quite a lot of advantages).

so - with that in mind: explanation :)

quite simple: total independence from ports.  that's what a good
library offers.   _really_ good libraries can actually be dlopen()ed
on the _one_ function which gets the vector table - this technique was
deployed extensively in samba TNG, and _really_ extensively in an
obscure little project i did in 2000, called xmlvl - an xml-based
programming language [put me off using xml for life, that did :) ]

so, without recompiling the whole of webkit, developers would be able
to write their own port of webkit.  actually, you'd be able to drop
the word port entirely, and even split out the QWebKit code,
WebkitGTK code etc. into separate libraries or entirely remove them
from webkit altogether, with the expectation that separate projects
would take up the joining code (Webkit/qt/* and Webkit/gtk/* etc).

what can you do once this is done?

1) you could make lynx utilise webkit!!!  lynx would get javascript
execution :)  all that lynx would have to do is provide its own vector
table of functions :)  btw, not many people are aware that lynx has a
svgalib port and an X-lib port, but it does.  that would make lynx a
proper web browser!  woo-hoo!

2) you could make a daemon out of webkit.  a headless webkit (ooer).
 a search-engine executor which could _properly_ execute javascript
on a page (a bit like DumpRenderTree, only doing it properly, and
allowing developers to print out the full HTML web page) and thus be
able to pass the *TRUE* content to the search engine.

3) you can make the bindings (e.g. the webkit-glib bindings) FULLY
independent of the port under which they operate.  so, the python
bindings which are at present hacked on top of pywebkitgtk
become fully independent: they'd be called... ohhh... i dunno...
pywebkit-glib or something.

and THEN - crucially... absolutely absolutely crucially,
python-qwebkit would AUTOMATICALLY get python bindings to the DOM
model, without having to do tons and tons of unnecessary work adding
YET ANOTHER set of bindings (python or qobject / qt) to webkit, to
maintain.

and, the webkit-glib-dom-mm c++ bindings would equally be
independent of gtk, qt, wxWidgets etc. etc. etc.  and every other
programming language.

3) you could make a web scraper - like pykhtml - out of webkit.

this is a really straightforward, simple and small amount of work, for
a very very large strategic payoff, that increases the usefulness,
power, flexibility and reach of webkit.

l.
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] webkit core need to be cleanly separated from ports, behind a vector table

2008-10-14 Thread David Hyatt
The term webkit core in your subject is very confusing.  Do you mean  
WebKit or WebCore?  There is platform-specific code in both.

dave

On Oct 14, 2008, at 4:24 PM, Luke Kenneth Casson Leighton wrote:

 https://bugs.webkit.org/show_bug.cgi?id=21598

 copy of the bugreport is here:

 a c struct containing pointers to higher order functions.  used  
 extensively in
 FreeDCE, linux kernel and the NT 4.0 kernel (e.g. the Lsa Security).

 good library interfaces are _so_ divorced from other libraries that  
 they don't
 even access standard c or c++ libraries.  evvverry single function  
 - of
 everything that they need - goes into the vector table.

 in the case of kernels, you don't have any choice but to do that.   
 in FreeDCE,
 it was just good practice.

 for webkit, it's a little insane to do a complete redesign of the  
 library,
 _but_ - a good starting point would be the boundary between the  
 ports and the
 webkit core (with the second stage being to _not_ call direct HTTP  
 access for
 XMLHTTPRequest, but to call out to the functions in the vector  
 table, to
 perform the URL data fetching.  that would be _extremely_ useful).

 basically, the interface would look _incredibly_ similar to what
 webkitwebview.cpp looks like at the moment.  except that you'd go  
 via a vector
 table, and the initialisation would involve setting some 80 functions.

 _really_ good library design has ONE public function - ONE!  and  
 it's the
 function which returns you a pointer to the vector table, for the  
 port
 developers to fill in all of the higher order function pointers.

 the advantages of taking this approach will be explained on the  
 mailing list.

 the amount of actual work required to be done is really quite  
 remarkably small,
 and would in many ways be quite simple and non-challenging (always  
 nice to have
 something _simple_ to do which offers quite a lot of advantages).

 so - with that in mind: explanation :)

 quite simple: total independence from ports.  that's what a good
 library offers.   _really_ good libraries can actually be dlopen()ed
 on the _one_ function which gets the vector table - this technique was
 deployed extensively in samba TNG, and _really_ extensively in an
 obscure little project i did in 2000, called xmlvl - an xml-based
 programming language [put me off using xml for life, that did :) ]

 so, without recompiling the whole of webkit, developers would be able
 to write their own port of webkit.  actually, you'd be able to drop
 the word port entirely, and even split out the QWebKit code,
 WebkitGTK code etc. into separate libraries or entirely remove them
 from webkit altogether, with the expectation that separate projects
 would take up the joining code (Webkit/qt/* and Webkit/gtk/* etc).

 what can you do once this is done?

 1) you could make lynx utilise webkit!!!  lynx would get javascript
 execution :)  all that lynx would have to do is provide its own vector
 table of functions :)  btw, not many people are aware that lynx has a
 svgalib port and an X-lib port, but it does.  that would make lynx a
 proper web browser!  woo-hoo!

 2) you could make a daemon out of webkit.  a headless webkit (ooer).
 a search-engine executor which could _properly_ execute javascript
 on a page (a bit like DumpRenderTree, only doing it properly, and
 allowing developers to print out the full HTML web page) and thus be
 able to pass the *TRUE* content to the search engine.

 3) you can make the bindings (e.g. the webkit-glib bindings) FULLY
 independent of the port under which they operate.  so, the python
 bindings which are at present hacked on top of pywebkitgtk
 become fully independent: they'd be called... ohhh... i dunno...
 pywebkit-glib or something.

 and THEN - crucially... absolutely absolutely crucially,
 python-qwebkit would AUTOMATICALLY get python bindings to the DOM
 model, without having to do tons and tons of unnecessary work adding
 YET ANOTHER set of bindings (python or qobject / qt) to webkit, to
 maintain.

 and, the webkit-glib-dom-mm c++ bindings would equally be
 independent of gtk, qt, wxWidgets etc. etc. etc.  and every other
 programming language.

 3) you could make a web scraper - like pykhtml - out of webkit.

 this is a really straightforward, simple and small amount of work, for
 a very very large strategic payoff, that increases the usefulness,
 power, flexibility and reach of webkit.

 l.
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


[webkit-dev] bindings layer should have a consistent way of getting at named items in collections

2008-10-14 Thread Ojan Vafai
I currently see nameGetter, namedItem
and getNamedItem in a number of different files that all currently
have custom bindings that normalize to a nameGetter function.
Can we just have all the collection types normalize on a single name
for this function? It would mean that much of this custom binding
could be avoided.

I'm running into this with Chromium as I am trying to replace our
PluginArray and MimeTypeArray with WebKit's. This is messing with our
templates that currently just use
namedItem
(although could just as easily use nameGetter if that's preferred).

The big differences with our MimeTypeArray implementation is that it kept a
Vector of MimeTypes, returned raw pointers and used namedItem instead of
nameGetter. It would be great if we could unify these.

Ojan
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] bindings layer should have a consistent way of getting at named items in collections

2008-10-14 Thread Sam Weinig
On Tue, Oct 14, 2008 at 3:15 PM, Ojan Vafai [EMAIL PROTECTED] wrote:

 I currently see nameGetter, namedItem
 and getNamedItem in a number of different files that all currently have 
 custom bindings that normalize to a nameGetter function.

 Can we just have all the collection types normalize on a single name for this 
 function? It would mean that much of this custom binding could be avoided.

 I'm running into this with Chromium as I am trying to replace our PluginArray 
 and MimeTypeArray with WebKit's. This is messing with our templates that 
 currently just use
 namedItem
 (although could just as easily use nameGetter if that's preferred).

 The big differences with our MimeTypeArray implementation is that it kept a
 Vector of MimeTypes, returned raw pointers and used namedItem instead of
 nameGetter. It would be great if we could unify these.


I support this idea.  Unification of this concept would indeed be nice.

-Sam
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] bindings layer should have a consistent way of getting at named items in collections

2008-10-14 Thread Maciej Stachowiak

On Oct 14, 2008, at 3:15 PM, Ojan Vafai wrote:

 I currently see nameGetter, namedItem and getNamedItem in a number  
 of different files that all currently have custom bindings that  
 normalize to a nameGetter function.

 Can we just have all the collection types normalize on a single name  
 for this function? It would mean that much of this custom binding  
 could be avoided.

 I'm running into this with Chromium as I am trying to replace our  
 PluginArray and MimeTypeArray with WebKit's. This is messing with  
 our templates that currently just use namedItem (although could just  
 as easily use nameGetter if that's preferred).

 The big differences with our MimeTypeArray implementation is that it  
 kept a Vector of MimeTypes, returned raw pointers and used namedItem  
 instead of nameGetter. It would be great if we could unify these.

It would be great to make things as consistently as possible, though  
the key here is as possible. Some of the IDL interfaces define an  
explicit namedItem() or getNamedItem() function, while others have  
only an implicit name getter. It is even possible in theory for an  
interface to have only a method named namedItem() but no implicit get- 
by-name behavior.

What I would suggest is to give every class that supports get-by-name  
a method called namedGetter, which is just an inline call to  
namedItem or getNamedItem or whatever, if there is an appropriate such  
method. Then the bindings generator could be changed so it can make  
use of that, and not require you to write namedItem() by hand in the  
JS bindings (by this I mean the JSC JS bindings).

Regards,
Maciej

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev