Thanks for replying, Darin. Comments below ... > WebKit itself does not have error pages. This is a feature of specific > browsers: Recent versions of Safari do this, although earlier versions used > sheets and alerts instead.
I agree that supporting "error pages" is a browser-specific feature. The point is that WebCore::FrameLoader gives FrameLoaderClient the right hook to load error pages and even has special treatment for when it happens: If you look close at snippet FrameLoader code in http://pastebin.com/f176c3bf5, it is obvious that "m_delegateIsHandlingProvisionalLoadError" , for example, is preventing that method body to get executed if an "error page" is being handled: (...) > m_delegateIsHandlingProvisionalLoadError = true; > m_client->dispatchDidFailProvisionalLoad(error); > m_delegateIsHandlingProvisionalLoadError = false; (...) In the sequence: (...) // Finish resetting the load state, but only if another load hasn't // been started by the delegate callback. if (pdl == m_provisionalDocumentLoadeer) clearProvisionalLoad(); else if (m_provisionalDocumentLoader) { <---- THIS IS THE PROBLEM KURL unreachableURL = m_provisionalDocumentLoader->unreachableURL(); if (!unreachableURL.isEmpty() && unreachableURL == pdl->request().url()) shouldReset = false; } Just checking for "m_provisionalDocumentLoader" (the 'else' block) is not enough to ensure if a load error has been loaded or not. in my opnion, it should be "activeDocumentLoader()". As is, shouldReset keeps as "true" and back/forward status gets broken. I have patched it and even made a layout test and qt unittests [1], but w/o DRT to support error pages my test is invalid. [1] https://bug-30573-attachments.webkit.org/attachment.cgi?id=42829 > I think it’s reasonable to have a way in DumpRenderTree to indicate somehow > in its output if a page load fails and what error code is involved. But I > would not recommend using "error pages" as the way to do this. And we’d have > to be careful to make this something easy to use cross-platform. Specific > error codes are also likely to be platform-specific. The error page I made for QT is simple "data:html/test,<body/>", just in order to let something to get rendered. So I am not caring much about the type of error here for now ... > There may be some way to accomplish this in some cases using "onerror" and > frames. As far as I could see "onError" are to catch runtime JS execution exception, which from the problem description above it can not be enough (?). -- --Antonio Gomes _______________________________________________ webkit-dev mailing list [email protected] http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

