WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
43827
[Qt] Unable to load pages on QtTestBrowser after canceling a page load.
https://bugs.webkit.org/show_bug.cgi?id=43827
Summary
[Qt] Unable to load pages on QtTestBrowser after canceling a page load.
Alexandra Santos
Reported
2010-08-10 19:28:39 PDT
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.
Attachments
first try
(1.07 KB, patch)
2010-10-18 07:55 PDT
,
Yi Shen
no flags
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Yi Shen
Comment 1
2010-10-18 07:55:16 PDT
Created
attachment 71036
[details]
first try
Yi Shen
Comment 2
2010-10-18 08:01:07 PDT
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().
Antonio Gomes
Comment 3
2010-10-18 08:16:54 PDT
Only STOP breaks it?
Antonio Gomes
Comment 4
2010-10-18 08:19:19 PDT
Comment on
attachment 71036
[details]
first try It looks sane to me.
Antonio Gomes
Comment 5
2010-10-18 08:19:34 PDT
Any change to have a autotest for it?
Antonio Gomes
Comment 6
2010-10-18 08:20:04 PDT
QT = QuickTime :)
Yi Shen
Comment 7
2010-10-18 08:26:35 PDT
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.
WebKit Commit Bot
Comment 8
2010-10-18 08:41:32 PDT
Comment on
attachment 71036
[details]
first try Clearing flags on attachment: 71036 Committed
r69961
: <
http://trac.webkit.org/changeset/69961
>
WebKit Commit Bot
Comment 9
2010-10-18 08:41:37 PDT
All reviewed patches have been landed. Closing bug.
Suresh Voruganti
Comment 10
2010-10-20 11:32:25 PDT
Pls cherry pick the fix for Qtwebkit 2.1 as this is Qtwebkit2.1 Basic Acceptance test failure.
Antonio Gomes
Comment 11
2010-10-20 11:35:52 PDT
Kling raised a concern with the patch and suggested we addressing that in FrameLoaderClient side, which I found reasonable. Yi, news on that?
Yi Shen
Comment 12
2010-10-20 12:12:05 PDT
(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?
Antonio Gomes
Comment 13
2010-10-20 12:15:50 PDT
(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?
Yi Shen
Comment 14
2010-10-20 12:39:25 PDT
(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.
Ademar Reis
Comment 15
2010-10-20 15:38:04 PDT
Revision
r69961
cherry-picked into qtwebkit-2.1 with commit 230afa2 <
http://gitorious.org/webkit/qtwebkit/commit/230afa2
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug