[webkit-dev] webkit #16401
Luke Kenneth Casson Leighton
lkcl at lkcl.net
Tue Jun 9 02:16:24 PDT 2009
[moving this discussion to webkit-dev]
On 6/7/09, Leon Winter <lwi at ring0.de> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> I found some as expected:
> Luke, in your example main.c you use the custom function
> get_absolute_top() in order to compute the absolute distance to the
> top. It seems thats currently the only way but it shouldnt since we
> have the excellent getBoundingClientRect() function on every DOM
> function aswell in the binding. Using this function we can access the
> distance the top directly because the engine computed it anyway before
> in order to display.
> I searched for this function in the binding but did not find it,
> however there is "GdomRect" which one should gain via
> "GdomCSSPrimitiveValue". However there are no functions to access
> "GdomRect" and there is no constructor for "GdomCSSPrimitiveValue".
ok. the getBoundingClientRect function is declared as a
For Webkit Language Bindings As Dictated By Apple The Great Fascist
Leaders All Hail Apple And Bow Before Them For They Expect Us To Obey
Them Without Question"
let's have a look at this, in other implementations:
yes, mozilla has getBoundingRectClient.
let's double-check whether that's actually available, by trying an
actual real-world test in e.g. mozilla-xpdom / python-hulahop. modify
the source in http://lkcl.net/pyjamas/pyjamas-xpdom.tgz as follows:
n = doc.createTextNode("hello")
body = doc.getElementsByTagName("body").item(0)
run it, and yes, we get this:
<XPCOM component '<unknown>' (implementing nsIDOMClientRect)>
so yes, in the firefox Gecko / XUL engine, competitor to webkit, it
can be deduced to support this function across all language bindings.
from the same web page, it is quoted:
"getBoundingClientRect() was first introduced in the MS IE DHTML object model."
ok - that's a DCOM interface. and through DCOM, you can bind any
language to DCOM that has a DCOM support library (python-win32com,
visual basic, visual c++, visual .NET etc.)
what about KDE? i'd be surprised if KHTML had it, but hey, i like surprises.
ehhh, no. they've implemented "most" of DOM level 1 and 2, bless
them. DOM level 3 isn't on the roadmap, and CSSOM most certainly
what about opera?
hhmmm, they implement DOM level 3 and various recommendations, and also, ah ha!
a poorly-implemented version of getBoundingClientRect.
there _seems_ to be some hints that their API has other language
what about webkit?
// CSSOM View Module API
so, your answer, leon: if you want getBoundingClientRect in the gdom
glib/gobject bindings, you're going to have to fight for it.
good justifications for adding it include:
* it's in every other web engine technology that implements this level
of W3C standards (CSSOM?)
* every other web engine technology makes the functions that are
comments from apple as to why this function is restricted to just
More information about the webkit-dev