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

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>78318</bug_id>
          
          <creation_ts>2012-02-09 19:43:15 -0800</creation_ts>
          <short_desc>Make ShadowRoot DoublyLinkedList-able.</short_desc>
          <delta_ts>2012-02-14 09:47:12 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>76433</blocked>
    
    <blocked>78069</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hayato Ito">hayato</reporter>
          <assigned_to name="Hayato Ito">hayato</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>morrita</cc>
    
    <cc>rolandsteiner</cc>
    
    <cc>shinyak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>553750</commentid>
    <comment_count>0</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-02-09 19:43:15 -0800</bug_when>
    <thetext>To support multiple ShadowRoots, we have to update ShadowRoot so that it can be a node of DoublyLinkedList.

We need doubly since:
  - We have to traverse to youngerShadowRoot when we move back to the insertion point, &lt;shadow&gt;, from node which is direct child of older ShadowRoot.
  - We have to traverse to olderShadowRoot when we encounter &lt;shadow&gt; element.

Upcoming changes require this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553757</commentid>
    <comment_count>1</comment_count>
      <attachid>126437</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-02-09 19:47:42 -0800</bug_when>
    <thetext>Created attachment 126437
make ShadowRoot DoublyLinkedList-able</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553789</commentid>
    <comment_count>2</comment_count>
      <attachid>126437</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2012-02-09 21:09:03 -0800</bug_when>
    <thetext>Comment on attachment 126437
make ShadowRoot DoublyLinkedList-able

View in context: https://bugs.webkit.org/attachment.cgi?id=126437&amp;action=review

&gt; Source/WebCore/dom/ShadowRoot.h:82
&gt; +    ShadowRoot* m_prev;

Is the intent that these are kept alive by being TreeShared?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553798</commentid>
    <comment_count>3</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-02-09 21:26:51 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 126437 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=126437&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/ShadowRoot.h:82
&gt; &gt; +    ShadowRoot* m_prev;
&gt; 
&gt; Is the intent that these are kept alive by being TreeShared?

No. I intend that future owner of DoublyLinkedList&lt;ShadowRoot&gt; should delete every ShadowRoot in the list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553806</commentid>
    <comment_count>4</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-02-09 21:35:02 -0800</bug_when>
    <thetext>But there is a case that each ShadowRoot is exposed to JavaScript. Let us rethink lifecycle of each ShadowRoot.

(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 126437 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=126437&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/dom/ShadowRoot.h:82
&gt; &gt; &gt; +    ShadowRoot* m_prev;
&gt; &gt; 
&gt; &gt; Is the intent that these are kept alive by being TreeShared?
&gt; 
&gt; No. I intend that future owner of DoublyLinkedList&lt;ShadowRoot&gt; should delete every ShadowRoot in the list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553818</commentid>
    <comment_count>5</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-02-09 21:56:02 -0800</bug_when>
    <thetext>I am sure that wtf/DoublyLInkedList is not suitable for this case since we must use RefPtr to hold next and prev ShadowRoot:
  RefPtr&lt;ShadowRoot&gt; m_prev
But wtf/DoubleLinkedList forces us to use raw pointer. Let me rewrite this patch without wtf/DoublyLinkedList.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553830</commentid>
    <comment_count>6</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-02-09 22:12:53 -0800</bug_when>
    <thetext>As discussed with shinyak, ShadowRoot&apos;s setHost(element) calls setParent(). So this patch should work as is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553850</commentid>
    <comment_count>7</comment_count>
      <attachid>126437</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-09 22:37:58 -0800</bug_when>
    <thetext>Comment on attachment 126437
make ShadowRoot DoublyLinkedList-able

Could you merge this patch with the real use? I cannot see how the lifetimes of multiple shadows are managed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553858</commentid>
    <comment_count>8</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-02-09 22:54:54 -0800</bug_when>
    <thetext>The real use will be coming in bug 78069.

(In reply to comment #7)
&gt; (From update of attachment 126437 [details])
&gt; Could you merge this patch with the real use? I cannot see how the lifetimes of multiple shadows are managed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554972</commentid>
    <comment_count>9</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-12 20:28:23 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; The real use will be coming in bug 78069.
&gt; 
&gt; (In reply to comment #7)
&gt; &gt; (From update of attachment 126437 [details] [details])
&gt; &gt; Could you merge this patch with the real use? I cannot see how the lifetimes of multiple shadows are managed.

Let&apos;s make this bug INVALID.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554974</commentid>
    <comment_count>10</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-02-12 20:30:13 -0800</bug_when>
    <thetext>bug 78069, which merges this change, was landed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126437</attachid>
            <date>2012-02-09 19:47:42 -0800</date>
            <delta_ts>2012-02-14 09:47:12 -0800</delta_ts>
            <desc>make ShadowRoot DoublyLinkedList-able</desc>
            <filename>bug-78318-20120210124741.patch</filename>
            <type>text/plain</type>
            <size>2844</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRiMTBlMzY1YzkyMjE4
YzJlNTQ0ZTQyOTdmOTI4ODhlNTI2MzVjMi4uMDlkMzM2YjYxM2ZmZWI2MzA2ZWE1MWZkNjcwZjhl
MTI0Zjg4NjQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAyLTA5ICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBNYWtlIFNoYWRvd1Jvb3Qg
RG91Ymx5TGlua2VkTGlzdC1hYmxlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzgzMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBObyB0ZXN0cy4gTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAg
ICogZG9tL1NoYWRvd1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6U2hh
ZG93Um9vdCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaDoKKyAgICAgICAgKFNoYWRvd1Jv
b3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6eW91bmdlclNoYWRvd1Jvb3QpOgor
ICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6b2xkZXJTaGFkb3dSb290KToKKwogMjAxMi0w
Mi0wOCAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVt
b3ZlIFtDdXN0b21IZWFkZXJdIGZyb20gQ2FudmFzUGl4ZWxBcnJheSBhbmQgcmVuYW1lIFtDdXN0
b21IZWFkZXJdIHRvIFtKU0N1c3RvbUhlYWRlcl0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApp
bmRleCA5YmE2OGJkMzU4MTEzY2RiMWJmMDA4OWI0Njc3MjIwNjliZTc2NmJkLi42YjJiMzBmOWJj
MTc3ZGNlZTkxZTczMjY2MTNmZmExMjVlMjllZmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
Y3BwCkBAIC0zOSw2ICszOSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFNoYWRvd1Jvb3Q6OlNo
YWRvd1Jvb3QoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogRG9jdW1lbnRGcmFnbWVudChkb2N1
bWVudCwgQ3JlYXRlU2hhZG93Um9vdCkKICAgICAsIFRyZWVTY29wZSh0aGlzKQorICAgICwgbV9w
cmV2KDApCisgICAgLCBtX25leHQoMCkKICAgICAsIG1fYXBwbHlBdXRob3JTaGVldHMoZmFsc2Up
CiAgICAgLCBtX25lZWRzUmVjYWxjdWxhdGVDb250ZW50KGZhbHNlKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmgKaW5kZXggZDBiMTg5NDcyMTQ2YmM3OTIwOGE1OWE4YjFhZTFmMjE2NmZmNzI1Yy4u
ZWRkMGNmNWYwMDg2NTA1YzU3ODg2OWMzYTg1MzYxYzQ0MmUwYjUyMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5o
IgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJUcmVlU2NvcGUuaCIKKyNp
bmNsdWRlIDx3dGYvRG91Ymx5TGlua2VkTGlzdC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTM3LDcgKzM4LDggQEAgY2xhc3MgQ29udGVudEluY2x1c2lvblNlbGVjdG9yOwogY2xhc3Mg
RG9jdW1lbnQ7CiBjbGFzcyBIVE1MQ29udGVudEVsZW1lbnQ7CiAKLWNsYXNzIFNoYWRvd1Jvb3Qg
OiBwdWJsaWMgRG9jdW1lbnRGcmFnbWVudCwgcHVibGljIFRyZWVTY29wZSB7CitjbGFzcyBTaGFk
b3dSb290IDogcHVibGljIERvY3VtZW50RnJhZ21lbnQsIHB1YmxpYyBUcmVlU2NvcGUsIHB1Ymxp
YyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxTaGFkb3dSb290PiB7CisgICAgZnJpZW5kIGNsYXNzIFdU
Rjo6RG91Ymx5TGlua2VkTGlzdE5vZGU8U2hhZG93Um9vdD47CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U2hhZG93Um9vdD4gY3JlYXRlKERvY3VtZW50Kik7CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U2hhZG93Um9vdD4gY3JlYXRlKEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CkBA
IC02Myw2ICs2NSw5IEBAIHB1YmxpYzoKICAgICBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IqIGlu
Y2x1c2lvbnMoKSBjb25zdDsKICAgICBDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IqIGVuc3VyZUlu
Y2x1c2lvbnMoKTsKIAorICAgIFNoYWRvd1Jvb3QqIHlvdW5nZXJTaGFkb3dSb290KCkgY29uc3Qg
eyByZXR1cm4gcHJldigpOyB9CisgICAgU2hhZG93Um9vdCogb2xkZXJTaGFkb3dSb290KCkgY29u
c3QgeyByZXR1cm4gbmV4dCgpOyB9CisKIHByaXZhdGU6CiAgICAgU2hhZG93Um9vdChEb2N1bWVu
dCopOwogICAgIHZpcnR1YWwgflNoYWRvd1Jvb3QoKTsKQEAgLTc0LDYgKzc5LDggQEAgcHJpdmF0
ZToKIAogICAgIGJvb2wgaGFzQ29udGVudEVsZW1lbnQoKSBjb25zdDsKIAorICAgIFNoYWRvd1Jv
b3QqIG1fcHJldjsKKyAgICBTaGFkb3dSb290KiBtX25leHQ7CiAgICAgYm9vbCBtX2FwcGx5QXV0
aG9yU2hlZXRzIDogMTsKICAgICBib29sIG1fbmVlZHNSZWNhbGN1bGF0ZUNvbnRlbnQgOiAxOwog
ICAgIE93blB0cjxDb250ZW50SW5jbHVzaW9uU2VsZWN0b3I+IG1faW5jbHVzaW9uczsK
</data>

          </attachment>
      

    </bug>

</bugzilla>