[webkit-dev] How to access resource meta-data

Darin Adler darin at apple.com
Wed Oct 29 09:42:04 PDT 2008


On Oct 29, 2008, at 9:30 AM, Andrew S. Townley wrote:

> Fair enough. What I'm looking for at a minimum is the headers  
> associated with each HTTP response.

You'd get at those through the resource load delegate. When a resource  
is loaded the delegate receives an Objective-C method call, named:

     webView:resource:didReceiveResponse:fromDataSource:

The response argument is an NSURLResponse object. After determining  
that it's an HTTP response, using -[NSObject isKindOfClass:] it can be  
cast to NSHTTPURLResponse and you can use methods such as - 
[NSHTTPURLResponse allHeaderFields] and -[NSHTTPURLResponse  
statusCode] on it.

> It would be nice to also be able to extract any HTML meta tags and  
> have access to those as well.

That can be done with the DOM API. Something like this:

     DOMNodeList *metaElements = [[webView mainFrameDocument]  
getElementsByTagName:@"meta"];
     NSUInteger count = [metas length];
     for (NSUInteger i = 0; i < count; ++i) {
         DOMElement *metaElement = (DOMElement *)[metaElements item:i];
         NSString *nameAttribute = [metaElement getAttribute:@"name"];
         // ... more work here
     }

FYI, some of the things you mentioned from the Firefox dialog are  
things that are either part of the networking library or part of the  
browser application proper, and not controlled or tracked by WebKit.

     -- Darin



More information about the webkit-dev mailing list