<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>28446</bug_id>
          
          <creation_ts>2015-04-08 16:10:20 +0000</creation_ts>
          <short_desc>[Shadow]: Consider removal of multiple shadow roots</short_desc>
          <delta_ts>2015-05-27 03:05:19 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebAppsWG</product>
          <component>HISTORICAL - Component Model</component>
          <version>unspecified</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>MOVED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>28552</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov">dglazkov</reporter>
          <assigned_to name="Hayato Ito">hayato</assigned_to>
          <cc>annevk</cc>
    
    <cc>hayato</cc>
    
    <cc>mike</cc>
    
    <cc>public-webapps</cc>
    
    <cc>timdream</cc>
          
          <qa_contact>public-webapps-bugzilla</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>119380</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov">dglazkov</who>
    <bug_when>2015-04-08 16:10:20 +0000</bug_when>
    <thetext>This is a contentious bit: https://github.com/w3c/webcomponents/wiki/Shadow-DOM:-Contentious-Bits#a-multiple-shadow-roots-per-element</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119381</commentid>
    <comment_count>1</comment_count>
    <who name="Dimitri Glazkov">dglazkov</who>
    <bug_when>2015-04-08 16:10:58 +0000</bug_when>
    <thetext>From https://lists.w3.org/Archives/Public/public-webapps/2015AprJun/0052.html:

Annevk: &quot;We&apos;d like to retain this feature.
Although it has complexity, we&apos;ve heard from both Firefox UI and
Firefox OS application developers that the moment your library gets
sophisticated, you want this for extensibility.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119570</commentid>
    <comment_count>2</comment_count>
    <who name="Dimitri Glazkov">dglazkov</who>
    <bug_when>2015-04-16 16:42:41 +0000</bug_when>
    <thetext>From https://lists.w3.org/Archives/Public/public-webapps/2015AprJun/0109.html:

&quot;I was asked to provide a use case for our stance. One that we&apos;ve found
with Firefox OS is custom dialogs, quoting Wilson Page:

# I have an &lt;x-dialog&gt; component. It takes care of transitioning
# in and out of the viewport and appropriate styling contained
# elements (&lt;h1&gt;, &lt;button&gt;, &lt;p&gt;).
#
# I want to be able to extend this component to produce
# &lt;x-dialog-alert&gt;. In this case extending the prototype alone
# isn&apos;t enough, I need to also be able to extend the markup
# and styling of &lt;x-dialog&gt;.
#
# At the point of creation &lt;x-dialog-alert&gt; can add a second
# ShadowRoot that allows it to compose its own content
# inside that of the &apos;old&apos; &lt;x-dialog&gt; ShadowRoot. Without this
# &lt;x-dialog-alert&gt; would have to duplicate all the markup, style
# and interaction code again.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119572</commentid>
    <comment_count>3</comment_count>
    <who name="Dimitri Glazkov">dglazkov</who>
    <bug_when>2015-04-16 16:45:22 +0000</bug_when>
    <thetext>From https://lists.w3.org/Archives/Public/public-webapps/2015AprJun/0122.html:

&quot;I don&apos;t think you need to duplicate anything. The super class can still
fill in the original shadow root, then the subclass can modify it. This is
the same concept of the prototype inheritance, your methods will shadow the
super class methods, but you can just call them and then extend the
behavior.

This is also the reason the created and attached callbacks are on the
prototype. So you can call super and use the parent behavior by shared
protocol.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119573</commentid>
    <comment_count>4</comment_count>
    <who name="Dimitri Glazkov">dglazkov</who>
    <bug_when>2015-04-16 16:46:04 +0000</bug_when>
    <thetext>From https://lists.w3.org/Archives/Public/public-webapps/2015AprJun/0132.html:

&quot;&gt; This is an interesting approach that didn&apos;t occur to me! Similar to Anne&apos;s
&gt; concerns, this would require you to have more knowledge of the internals of
&gt; the super-class component. If you own both components then this is fine.
&gt;

Yes, the main problem here is the degree of separation between creator and
consumer of the base component. The higher the degree, the less inclined
the creator will be to expose innards of the shadow tree to the consumer.

Multiple shadow roots solves the same problem as shadow trees (provides a
composition contract), but along the inheritance chain.

For example, multiple shadow roots make sense:

* if you are a maker of UI library that&apos;s strongly rooted in inheritance
and intend to for your base components to be used directly;

* if you are hoping to inherit from components with closed shadow trees.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119773</commentid>
    <comment_count>5</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2015-04-22 22:36:07 +0000</bug_when>
    <thetext>FYI. I&apos;ve written a memo about &quot;Multiple Shadow Roots&quot;.

https://github.com/w3c/webcomponents/wiki/Multiple-Shadow-Roots-as-%22a-Shadow-Root-hosts-another-Shadow-Root%22

I&apos;m not saying anything about whether we should remove multiple shadow roots or not there. Please consider it just for reference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119909</commentid>
    <comment_count>6</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2015-04-27 03:15:33 +0000</bug_when>
    <thetext>The resolution is &quot;Remove for v1&quot;.

See https://www.w3.org/wiki/Webapps/WebComponentsApril2015Meeting.

Let me try to update the spec. I might use this bug as a meta bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120514</commentid>
    <comment_count>7</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2015-05-27 03:05:19 +0000</bug_when>
    <thetext>Moved to https://github.com/w3c/webcomponents/issues/90</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>