Summary: | [Qt] Unable to load pages on QtTestBrowser after canceling a page load. | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Alexandra Santos <alexandra.1.santos> | ||||
Component: | New Bugs | Assignee: | Yi Shen <max.hong.shen> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Normal | CC: | ademar, commit-queue, cshu, kling, suresh.voruganti, tonikitoo | ||||
Priority: | P2 | Keywords: | Qt | ||||
Version: | 528+ (Nightly build) | ||||||
Hardware: | S60 Hardware | ||||||
OS: | S60 3rd edition | ||||||
Attachments: |
|
Description
Alexandra Santos
2010-08-10 19:28:39 PDT
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> |