Sometimes Colloquy's webviews are just blank when loading (= when joining a chat room).
And also this problem is appearing a lot more often (not all the time though) for everyone with the Safari 3 beta than with Tiger's original WebKit. Colloquy's trac ticket on this bug is in the URL field.
a workaround, in the meantime, is to type "/reload style" in one of these blank webviews.
A workaround was landed in Colloquy's SVN in r3708. It mentions that there is likely something that needs fixed in WebKit, but doesn't provide any specifics... Does anyone know what the issue is here?
I am working on the WebKit issue.
The issue here is that Colloquy is trying to access the DOM from the didFinishLoadForFrame: delegate call. In cases where there are many WebViews loading at once, the HTML parser and tokenizer doesn't finish making the DOM until after didFinishLoadForFrame: is called.
This design has always been the case in WebKit. It is never guaranteed that the DOM will be ready when didFinishLoadForFrame is called.
Colloquy does a workaround and will release an update sometime. We should rethink this API and decide what didFinishLoadForFrame really means and make that clear in the API docs also.
The attached patch almost fixes this completely but it broke the fast/dom/Document/document-reopen.html layout test. This test never closes the document, so with this patch didFinishLoadForFrame never fires. We need to rework the loader to fire the didFinishLoadForFrame when the main resource and sub-resource loads finish and the parser is done. But this test re-opens the document and makes the page seem like it never finishes. The explicit document.open with no document.close should not affect this delegate call.
Created attachment 15556 [details]
Almost working patch