Bug 6571

Summary: New Web (DOM) Inspector
Product: WebKit Reporter: Timothy Hatcher <timothy>
Component: WebKit Misc.Assignee: Timothy Hatcher <timothy>
Status: RESOLVED FIXED    
Severity: Enhancement    
Priority: P3    
Version: 420+   
Hardware: Mac   
OS: OS X 10.4   
Attachments:
Description Flags
Inspector Patch (first cut)
darin: review+
Images (First Cut) none

Timothy Hatcher
Reported 2006-01-15 16:53:19 PST
Add a DOM inspector that lives in WebKit and is accessible from any WebView. The inspector should allow the following: * View and walk the DOM tree. * View serialized HTML from a DOM sub-tree. * View CSS rules and computed style for elements. * View properties for nodes. * View metrics for nodes, including absolute position, parent relative position, padding, margin, etc. * Highlight nodes in the WebView. * Search for nodes.
Attachments
Inspector Patch (first cut) (160.26 KB, patch)
2006-01-15 16:57 PST, Timothy Hatcher
darin: review+
Images (First Cut) (32.88 KB, application/zip)
2006-01-15 17:01 PST, Timothy Hatcher
no flags
Timothy Hatcher
Comment 1 2006-01-15 16:57:40 PST
Created attachment 5707 [details] Inspector Patch (first cut) This patch gets the Inspector working and living in WebKit. Accessible from a contextual menu when the WebKitEnableInspectElementContextMenuItem default is true or you have a development build. Browsing the tree, serialized HTML and CSS rules work.
Timothy Hatcher
Comment 2 2006-01-15 17:01:59 PST
Created attachment 5708 [details] Images (First Cut) Images that go with the first cut patch.
Darin Adler
Comment 3 2006-01-15 17:37:13 PST
Comment on attachment 5707 [details] Inspector Patch (first cut) + scrollIntoViewIfNeeded DOMElement::ScrollIntoView DontDelete|Function 1 Bug on this line. Needs to say DOMElement::ScrollIntoViewIfNeeded. + return rects; + } else if(!firstChild()) + return QValueList<IntRect>(); No need for else after return. Need space after if. + RenderObject *child = firstChild(); + while (child) { More elegant to write the above as a for loop. + return IntRect(0,0,0,0); Should use spaces after commas. -@interface DOMElement (DOMElementExtensions) -- (void)focus; -- (void)blur; -@end - Not good to move public API out of a public header DOMExtensions.h. Should put the new stuff in a new category temporarily and leave the already-public stuff public. Are we going to make this localizable? + return [_private->searchResults count]; + else if (!item) + return 1; No need for else after return. + return [_private->searchResults objectAtIndex:index]; + else if (!item) + return _private->rootNode; Again. + DOMNode *currentNode = [node parentNode]; + while (currentNode) { + if ([self isSameNode:currentNode]) + return YES; + currentNode = [currentNode parentNode]; + } Above looks like it should be a for loop. Looks like a great start. At least that very first thing I mentioned should be fixed before landing, but I'm going to be loose here and say review+. Lets get that first cut in there! r=me
Timothy Hatcher
Comment 4 2006-01-15 18:42:39 PST
Modified per the comments from Darin, Eric and Maciej. Committed in r12122.
Note You need to log in before you can comment on or make changes to this bug.