Bug 50309

Summary: HTML5 <details> and <summary> initial implementation
Product: WebKit Reporter: Luiz Agostini <luiz@webkit.org>
Component: WebCore Misc.Assignee: Luiz Agostini <luiz@webkit.org>
Status: RESOLVED FIXED    
Severity: Normal CC: buildbot@hotmail.com, darin@apple.com, gns@gnome.org, paulirish@chromium.org, peter@chromium.org, tkent@chromium.org, webkit.review.bot@gmail.com, xan.lopez@gmail.com, yael@webkit.org
Priority: P2 Keywords: HTML5
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on:    
Bug Blocks: 32934    
Attachments:
Description Flags
patch
none
patch
darin: review-
patch
none
patch
darin: review+
checking build systems before landing. please do not review. none

Description From 2010-11-30 21:42:12 PST
HTML5 <details> and <summary> elements initial implementation. 

The main objective is to add the files for html elements and renderers, and to get rid of build system issues in future patches.
------- Comment #1 From 2010-11-30 21:50:07 PST -------
Created an attachment (id=75248) [details]
patch
------- Comment #2 From 2010-11-30 22:33:08 PST -------
Attachment 75248 [details] did not build on gtk:
Build output: http://queues.webkit.org/results/6678001
------- Comment #3 From 2010-12-02 15:52:18 PST -------
Specification:

http://www.w3.org/TR/html5/interactive-elements.html#the-details-element
http://www.w3.org/TR/html5/interactive-elements.html#the-summary-element
------- Comment #4 From 2010-12-02 15:52:52 PST -------
Created an attachment (id=75427) [details]
patch
------- Comment #5 From 2010-12-02 17:48:55 PST -------
(From update of attachment 75427 [details])
View in context: https://bugs.webkit.org/attachment.cgi?id=75427&action=review

I don’t want to see these renderer classes added until we are sure we need them. Are you certain you will need all three?

> WebCore/html/HTMLDetailsElement.cpp:55
> +bool HTMLDetailsElement::open() const
> +{
> +    return !getAttribute(openAttr).isNull();
> +}
> +
> +void HTMLDetailsElement::setOpen(bool value)
> +{
> +    setAttribute(openAttr, value ? "" : 0);
> +}

These functions are not needed.

> WebCore/html/HTMLDetailsElement.h:31
> +    static PassRefPtr<HTMLDetailsElement> create(Document* document);

We should not add this function unless we have a callsite that needs it.

> WebCore/html/HTMLDetailsElement.h:34
> +    bool open() const;
> +    void setOpen(bool);

These functions are not needed.

> WebCore/html/HTMLDetailsElement.idl:23
> +        attribute boolean open;

This should use [Reflect] so we don’t need open and canOpen functions in the C++ class.

> WebCore/html/HTMLTagNames.in:118
> -summary interfaceName=HTMLElement
> +summary

This change is incorrect. See the HTML5 specification. It specifically says the DOM interface uses HTMLElement. The class HTMLSummaryElement is not needed.
------- Comment #6 From 2010-12-02 19:07:08 PST -------
(In reply to comment #5)
> (From update of attachment 75427 [details] [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=75427&action=review
> 
> I don’t want to see these renderer classes added until we are sure we need them. Are you certain you will need all three?

The plan is to RenderDetails to use RenderBlock::layoutSpecialExcludedChild() to set the position of its first RenderSummary child. And this first RenderSummary creates a RenderDetailsMarker in a way similar to what is done by RenderListItem.

What do you think?
------- Comment #7 From 2010-12-02 20:40:08 PST -------
Created an attachment (id=75459) [details]
patch
------- Comment #8 From 2010-12-02 21:31:41 PST -------
Attachment 75459 [details] did not build on win:
Build output: http://queues.webkit.org/results/6727025
------- Comment #9 From 2010-12-02 21:49:10 PST -------
Created an attachment (id=75464) [details]
patch
------- Comment #10 From 2010-12-02 22:39:14 PST -------
Attachment 75464 [details] did not build on win:
Build output: http://queues.webkit.org/results/6736030
------- Comment #11 From 2010-12-03 09:42:19 PST -------
(From update of attachment 75464 [details])
I’m still not sure I understand if this will require all three unique renderer classes. At the moment we are just checking them in as dead code which seems a little weak.

r=me, but please find out why the Windows build is failing and resolve that before checking in
------- Comment #12 From 2010-12-05 15:59:33 PST -------
Created an attachment (id=75639) [details]
checking build systems before landing. please do not review.
------- Comment #13 From 2010-12-05 17:15:59 PST -------
Committed r73346: <http://trac.webkit.org/changeset/73346>