Please, see my comments below.
Darin Adler wrote:
On Mar 13, 2008, at 4:11 AM, Artem Ananiev wrote:
I work on dispatching web load/progress events for Java port and have
some questions about notifications in FrameLoaderClient class.
1. What is the right method to implement to get a 'page load started'
and 'page load finished' events? I tried the following methods:
postProgressStartedNotification()
postProgressFinishedNotification()
and the problem is they don't accept any params, so I can't get an URL
being loaded. If I obtain the URL from frame->loader->documentLoader,
it works for 'progress finished' notification, but returns an old URL
for 'progress started'.
I have no idea what you mean by "page load started" and "finished". If
you look at the Mac port you'll see many different types of calls for
these purposes. The ones you mention above are best for loading
progress, as in a progress bar.
I suppose the following order of loading events for a page with a single
frame (please, correct me, if I'm wrong):
page load started
main document load started
title received
icon received
* main document load finished
** resource load started
resource load finished
page load finished
Notes:
* = at this time some of the external resources like images may not be
loaded yet
** = some resources may be loaded simultaneously
After the page is loaded, more 'resource load started' and 'resource
load finished' may be triggered by user actions or JavaScript calls.
2. What is the right method to implement to get a 'main document load
started'?
dispatchDidStartProvisionalLoad
OK, I see. Is there any other load process other than provisional?
3. As I understand, the right way to handle resources (for example,
images) loading is to track methods
assignIdentifierToInitialRequest()
dispatchWillSendRequest()
dispatchDidFinishLoading()
The latter two methods provide request identifiers which are assigned
in the former one. However, sometimes I see two
'dispatchWillSendRequest' calls with the same ids and different URLs.
For example, when loading www.google.com I the first URL is
www.google.com and the second is www.google.co.uk. How is this
situation should be handled?
dispatchWillSendRequest will be called repeatedly with different URLs
when a server does redirection. This is normal. How it should be handled
depends on what API you've devised.
Is there any separate notification about redirection, or this method is
enough?
4. There are several notifications about resource loading is finished:
dispatchDidFinishLoading()
dispatchDidFinishLoad()
dispatchDidFinishDocumentLoad()
didFinishLoad() - is this a notification?
finishedLoading() - is this a notification?
Some of them provide DocumentLoader instances, others have no
parameters passed. What is the difference between these methods? Are
some of them outdated and shouldn't be used at all?
- dispatchDidFinishLoading(DocumentLoader*, unsigned long identifier)
This is called when done loading an individual resource, such as an
image, script, or the main resource for a page.
One more question: is there any method about starting loading of an
external resource? Is it dispatchWillSendRequest?
dispatchDidReceiveResponse?
- dispatchDidFinishDocumentLoad()
This is called when done loading the document for a frame, usually HTML,
but not all the resources such as images.
- dispatchDidFinishLoad()
This is called when done loading an entire frame and its resources. Like
the HTML load event.
OK, thanks, this is very useful information.
Artem
-- Darin
_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-dev
_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-dev