WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
UNCONFIRMED
41592
ProgressTracker looks not smart
https://bugs.webkit.org/show_bug.cgi?id=41592
Summary
ProgressTracker looks not smart
Ryuan Choi
Reported
2010-07-05 01:24:32 PDT
I checked ProgressTracker because I can't get fully loaded contents in several web page. I realized that those site had bad resource which takes very long times. but in this case, ProgressTracker also wasn't updated well. attachment is my test log using GtkLauncher. as you can see, series of finishedCallback were called without got-chunk callback sometimes. so, incrementProgress wasn't called After simply adding incrementProgress in ResourceLoadNotifier::dispatchDidFinishLoading, I could get more accurate progress. but, I don't know whether it's right approach or not.
Attachments
my test log
(11.91 KB, text/x-log)
2010-07-05 01:25 PDT
,
Ryuan Choi
no flags
Details
Patch
(3.26 KB, patch)
2010-07-07 01:49 PDT
,
Ryuan Choi
abarth
: review-
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Ryuan Choi
Comment 1
2010-07-05 01:25:32 PDT
Created
attachment 60501
[details]
my test log
Ryuan Choi
Comment 2
2010-07-07 01:49:53 PDT
Created
attachment 60705
[details]
Patch
Adam Barth
Comment 3
2010-07-07 02:30:27 PDT
Comment on
attachment 60705
[details]
Patch Thanks for the patch, but a number of things are unclear to me: WebCore/loader/ProgressTracker.cpp:184 + if (frame->loader()->client()) Do we need to null-check the client here? Is the client disappearing somehow? WebCore/loader/ProgressTracker.cpp: + // FIXME: Can this ever happen? Did we resolve this FIXME? It might be worth explaining when item might be NULL. In general, we would like to see a test with each patch. Is there a way to test this code change? I'm not 100% sure this is the right direction. It's difficult to tell from this bug report and from the ChangeLog exactly what problem we're solving here. It's also unclear to me how this change effects all the different clients of resource load notifier.
Ryuan Choi
Comment 4
2010-07-07 19:27:24 PDT
Thank you for your interesting (In reply to
comment #3
)
> (From update of
attachment 60705
[details]
) > Thanks for the patch, but a number of things are unclear to me: > > WebCore/loader/ProgressTracker.cpp:184 > + if (frame->loader()->client()) > Do we need to null-check the client here? Is the client disappearing somehow? >
It's my mistake. I'll remove it.
> WebCore/loader/ProgressTracker.cpp: > + // FIXME: Can this ever happen? > Did we resolve this FIXME? It might be worth explaining when item might be NULL. >
this patch make a case which item was null. so I moved this check logic like below - item->bytesReceived += bytesReceived; - if (item->bytesReceived > item->estimatedLength) { - m_totalPageAndResourceBytesToLoad += ((item->bytesReceived * 2) - item->estimatedLength); - item->estimatedLength = item->bytesReceived * 2; + + if (item) { + item->bytesReceived += bytesReceived; + if (item->bytesReceived > item->estimatedLength) { + m_totalPageAndResourceBytesToLoad += ((item->bytesReceived * 2) - item->estimatedLength); + item->estimatedLength = item->bytesReceived * 2; + } }
> In general, we would like to see a test with each patch. Is there a way to test this code change? I'm not 100% sure this is the right direction. It's difficult to tell from this bug report and from the ChangeLog exactly what problem we're solving here. It's also unclear to me how this change effects all the different clients of resource load notifier.
you are right, but I don't know how to make proper test case. In almost other network situation, this wasn't happened. especially I am testing wifi through slow proxy server. anyway I'll prepare some video file and more log for you. If I am possible, I can show you this issues using android browser (based on proyo) in my test environment.
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