gmail problem investigated: frame onload

Waldo Bastian bastian at kde.org
Mon Oct 4 15:58:27 BST 2004


On Monday 04 October 2004 16:41, David Faure wrote:
> With Rainder Endres' help, I managed to track down the reason gmail won't
> load. The onload event listener for frames and iframes is registered on the
> wrong body: the main body instead of the frame's body. Which means only one
> gets executed, and the JS code waits for ever.
>
> Testcase [gmail uses iframes, but it's the same with frames] :
>
> ==> blank.html <==
> Hello world
>
> ==> frameset.html <==
> <html>
> <frameset rows="*,*,*">
> <frame name="main" src="blank.html" onload="alert('loaded main')">
> <frame name="blank" src="blank.html" onload="alert('loaded blank')">
> </frameset>
> </html>
>
> The problem is HTMLFrameElementImpl::parseAttribute (for ATTR_ONLOAD).
> The code says:
>         static_cast<HTMLDocumentImpl*>( getDocument() )->body()->
>               setHTMLEventListener(EventImpl::LOAD_EVENT,
>            
> getDocument()->createHTMLEventListener(attr->value().string(),"onload"));
> And this obviously finds the main <body> element, since getDocument() for
> the frame element finds the main document.
>
> Did this ever work in KHTML? I thought it did, but looking at the code, I
> fail to see how. Since the attributes are parsed before the frame is
> "attached", so there is no KHTMLPart for the frame yet... i.e. no way to
> find the right document (or body) from that code. So do we need to store
> the value of the load and unload listeners until attach? We would then need
> to have some code somewhere that sets the listener on the frame's body when
> creating it..... I'm working now on a patch that attempts to do that.

See also the last (reverted) patch to html_baseimpl.cpp Same issue.
http://bugs.kde.org/show_bug.cgi?id=72440 has the full discussion.

Cheers,
Waldo
-- 
bastian at kde.org  |  Wanted: Talented KDE developer  |  bastian at suse.com
  http://www.suse.de/de/company/suse/jobs/suse_pbu/developer_kde.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <https://mail.kde.org/mailman/private/kfm-devel/attachments/20041004/72dfed2e/attachment.sig>


More information about the kfm-devel mailing list