The user is unable to continue loading pages after cancelling a page load. Steps to reproduce: 1.- Flash the device with symbian 4 platform. 2.- Install and launch QtTestBrowser 3.- Try to load a page and click the "cancel" button before the page finish loading. Actual results: Page loading is cancelled and the "load/reload" button does not get enabled; therefore, unable to continue loading pages. Expected results: After cancelling a page loading, the "load/reload" button would be enabled. Therefore; user would be able to continue loading pages.
Created attachment 71036 [details] first try
After triggered stop action on qwebpage to cancel page loading, the Navigation Actions (back, forward, reload, stop ...) doesn't get updated in most cases. So the patch tries to update navigation actions explicitly after calling mainFrame()->d->frame->loader()->stopForUserCancel().
Only STOP breaks it?
Comment on attachment 71036 [details] first try It looks sane to me.
Any change to have a autotest for it?
QT = QuickTime :)
Thanks for super fast review, Antonio :) I don't have any any auto test for it now since there is no such test existing. Only did some tests on the QtTestBrowser.
Comment on attachment 71036 [details] first try Clearing flags on attachment: 71036 Committed r69961: <http://trac.webkit.org/changeset/69961>
All reviewed patches have been landed. Closing bug.
Pls cherry pick the fix for Qtwebkit 2.1 as this is Qtwebkit2.1 Basic Acceptance test failure.
Kling raised a concern with the patch and suggested we addressing that in FrameLoaderClient side, which I found reasonable. Yi, news on that?
(In reply to comment #11) > Kling raised a concern with the patch and suggested we addressing that in FrameLoaderClient side, which I found reasonable. > > Yi, news on that? Hi Antonio, I checked the FrameLoaderClientQt and FrameLoader, and I think the only place we can updateNav in FrameLoaderClientQt is in frameLoadCompleted(). The down side is that frameLoadCompleted can be called multiple times. void FrameLoaderClientQt::frameLoadCompleted() { // Note: Can be called multiple times. if (!m_loadError.isNull() && m_loadError.isCancellation()) m_webFrame->page()->d->updateNavigationActions(); } Any thoughts?
(In reply to comment #12) > (In reply to comment #11) > > Kling raised a concern with the patch and suggested we addressing that in FrameLoaderClient side, which I found reasonable. > > > > Yi, news on that? > > Hi Antonio, I checked the FrameLoaderClientQt and FrameLoader, and I think the only place we can updateNav in FrameLoaderClientQt is in frameLoadCompleted(). The down side is that frameLoadCompleted can be called multiple times. > > void FrameLoaderClientQt::frameLoadCompleted() > { > // Note: Can be called multiple times. > if (!m_loadError.isNull() && m_loadError.isCancellation()) > m_webFrame->page()->d->updateNavigationActions(); > } > > Any thoughts? It gets called multiple times in what situations? like one per frame?
(In reply to comment #13) > (In reply to comment #12) > It gets called multiple times in what situations? like one per frame? No, seems one per sub resource loader. For most often, after user cancel loading, the state of frame is set to FrameStateComplete. Then all the sub resource loaders call FrameLoader::checkLoadCompleteForThisFrame when removing itself from the DocumentLoader. In checkLoadCompleteForThisFrame, it calls the FrameLoaderClientQt::frameLoadCompleted() since the state is FrameStateComplete. e.g, when cancel loading cnn.com, I saw frameLoadCompleted gets called > 30 times.
Revision r69961 cherry-picked into qtwebkit-2.1 with commit 230afa2 <http://gitorious.org/webkit/qtwebkit/commit/230afa2>