[webkit-dev] FrameLoaderClient notifications
Artem Ananiev
Artem.Ananiev at Sun.COM
Thu Mar 13 08:50:35 PDT 2008
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
> webkit-dev at lists.webkit.org
> http://lists.webkit.org/mailman/listinfo/webkit-dev
More information about the webkit-dev
mailing list