[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