<?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>16509</bug_id>
          
          <creation_ts>2012-03-24 15:34:28 +0000</creation_ts>
          <short_desc>[Shadow]: Consider isolation</short_desc>
          <delta_ts>2014-11-19 04:49:40 +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>DUPLICATE</resolution>
          <dup_id>20144</dup_id>
          
          <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>15480</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov">dglazkov</reporter>
          <assigned_to name="Dimitri Glazkov">dglazkov</assigned_to>
          <cc>art.barstow</cc>
    
    <cc>dev.akhawe</cc>
    
    <cc>dominicc</cc>
    
    <cc>ericbidelman</cc>
    
    <cc>erights</cc>
    
    <cc>hayato</cc>
    
    <cc>mathias</cc>
    
    <cc>mjs</cc>
    
    <cc>mnot</cc>
          
          <qa_contact>public-webapps-bugzilla</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>66016</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov">dglazkov</who>
    <bug_when>2012-03-24 15:34:28 +0000</bug_when>
    <thetext>Add &quot;isolated&quot; flag to the plumbing, which would:

* Make shadow DOM nodes have a different owner doc
* Eliminate paths for reaching DOM information outside</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68884</commentid>
    <comment_count>1</comment_count>
    <who name="Dimitri Glazkov">dglazkov</who>
    <bug_when>2012-06-08 21:04:19 +0000</bug_when>
    <thetext>* also need to re-create event object
* prototypes that it sees need to be from that other frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69183</commentid>
    <comment_count>2</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2012-06-18 03:09:30 +0000</bug_when>
    <thetext>For context, could you explain a use case for &quot;isolated&quot;? It would seem that just getting a reference to the host or ShadowRoot across different security contexts will be thwarted by existing SOP protections.

One case that might be interesting is if attaching a ShadowRoot to an iframe has special semantics and &lt;content&gt; element there can pick children of the frame’s content document’s body.

&gt; * Eliminate paths for reaching DOM information outside

Do changes to lower boundary encapsulation, where event handlers attached in the Shadow DOM can observe elements in the light DOM which were distributed into the shadow, need to be special-cased for isolated Shadow DOM?

&gt; * prototypes that it sees need to be from that other frame.

I believe that this is already the case, for example if you do

new ShadowRoot(e)

where e is an element from a frame but new ShadowRoot is run in the context of another frame/parent frame/etc. See my comments on bug 17447.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75083</commentid>
    <comment_count>3</comment_count>
    <who name="Dimitri Glazkov">dglazkov</who>
    <bug_when>2012-10-02 18:25:28 +0000</bug_when>
    <thetext>Also needs to have a different scripting context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101491</commentid>
    <comment_count>4</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2014-02-27 02:01:01 +0000</bug_when>
    <thetext>Are there any use cases of projection with isolation?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103771</commentid>
    <comment_count>5</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2014-04-11 18:50:45 +0000</bug_when>
    <thetext>Besides DOM encapsulation, a separate scripting environment (different world or global object), and a separate owner document and set of DOM prototypes, full isolation also requires a way to sanitize JS values that are passed to or returned from exported methods (something like the Worker structured clone algorithm but at minimum it also needs to be able to handle DOM nodes that have different wrappers inside and outside the component).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115092</commentid>
    <comment_count>6</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2014-11-19 04:49:40 +0000</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 20144 ***</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>