[html5] r7236 - [giow] (0) Recast how the origin handling is done for data: URLs in workers, and [...]

whatwg at whatwg.org whatwg at whatwg.org
Thu Aug 9 11:29:54 PDT 2012


Author: ianh
Date: 2012-08-09 11:29:52 -0700 (Thu, 09 Aug 2012)
New Revision: 7236

Modified:
   complete.html
   index
   source
Log:
[giow] (0) Recast how the origin handling is done for data: URLs in workers, and fix the shared worker origin handling for data: URLs so that you can actually reconnect to a data: shared worker.
Fixing https://www.w3.org/Bugs/Public/show_bug.cgi?id=15095
Affected topics: Security, Web Workers

Modified: complete.html
===================================================================
--- complete.html	2012-08-09 18:02:50 UTC (rev 7235)
+++ complete.html	2012-08-09 18:29:52 UTC (rev 7236)
@@ -1037,16 +1037,15 @@
        <li><a href=#the-workerglobalscope-common-interface><span class=secno>9.2.1.1 </span>The <code>WorkerGlobalScope</code> common interface</a></li>
        <li><a href=#dedicated-workers-and-the-dedicatedworkerglobalscope-interface><span class=secno>9.2.1.2 </span>Dedicated workers and the <code>DedicatedWorkerGlobalScope</code> interface</a></li>
        <li><a href=#shared-workers-and-the-sharedworkerglobalscope-interface><span class=secno>9.2.1.3 </span>Shared workers and the <code>SharedWorkerGlobalScope</code> interface</a></ol></li>
-     <li><a href=#origins-of-workers><span class=secno>9.2.2 </span>Origins of workers</a></li>
-     <li><a href=#the-event-loop><span class=secno>9.2.3 </span>The event loop</a></li>
-     <li><a href="#the-worker's-lifetime"><span class=secno>9.2.4 </span>The worker's lifetime</a></li>
-     <li><a href=#processing-model-4><span class=secno>9.2.5 </span>Processing model</a></li>
-     <li><a href=#runtime-script-errors-0><span class=secno>9.2.6 </span>Runtime script errors</a></li>
-     <li><a href=#creating-workers><span class=secno>9.2.7 </span>Creating workers</a>
+     <li><a href=#the-event-loop><span class=secno>9.2.2 </span>The event loop</a></li>
+     <li><a href="#the-worker's-lifetime"><span class=secno>9.2.3 </span>The worker's lifetime</a></li>
+     <li><a href=#processing-model-4><span class=secno>9.2.4 </span>Processing model</a></li>
+     <li><a href=#runtime-script-errors-0><span class=secno>9.2.5 </span>Runtime script errors</a></li>
+     <li><a href=#creating-workers><span class=secno>9.2.6 </span>Creating workers</a>
       <ol>
-       <li><a href=#the-abstractworker-abstract-interface><span class=secno>9.2.7.1 </span>The <code>AbstractWorker</code> abstract interface</a></li>
-       <li><a href=#dedicated-workers-and-the-worker-interface><span class=secno>9.2.7.2 </span>Dedicated workers and the <code>Worker</code> interface</a></li>
-       <li><a href=#shared-workers-and-the-sharedworker-interface><span class=secno>9.2.7.3 </span>Shared workers and the <code>SharedWorker</code> interface</a></ol></ol></li>
+       <li><a href=#the-abstractworker-abstract-interface><span class=secno>9.2.6.1 </span>The <code>AbstractWorker</code> abstract interface</a></li>
+       <li><a href=#dedicated-workers-and-the-worker-interface><span class=secno>9.2.6.2 </span>Dedicated workers and the <code>Worker</code> interface</a></li>
+       <li><a href=#shared-workers-and-the-sharedworker-interface><span class=secno>9.2.6.3 </span>Shared workers and the <code>SharedWorker</code> interface</a></ol></ol></li>
    <li><a href=#apis-available-to-workers><span class=secno>9.3 </span>APIs available to workers</a>
     <ol>
      <li><a href=#importing-scripts-and-libraries><span class=secno>9.3.1 </span>Importing scripts and libraries</a></li>
@@ -67903,31 +67902,13 @@
 
    <dd>
 
-    <dl class=switch><dt>If the URL is a <a href=#data-protocol title="data protocol"><code title="">data:</code> URL</a> used in a <code title=dom-Worker><a href=#dom-worker>Worker()</a></code> or <code title=dom-SharedWorker><a href=#dom-sharedworker>SharedWorker()</a></code> constructor</dt>
+    <p>The <a href=#origin>origin</a> and <a href=#effective-script-origin>effective script
+    origin</a> of the <a href=#url>URL</a> are the origin defined in
+    <cite>The Web Origin Concept</cite>. <a href=#refsORIGIN>[ORIGIN]</a></p>
 
-     <dd>
+   </dd>
 
-      <p>The <a href=#origin>origin</a> and <a href=#effective-script-origin>effective script
-      origin</a> of the <a href=#url>URL</a> are the
-      <a href=#origin>origin</a> and <a href=#effective-script-origin>effective script origin</a> of
-      the <a href=#entry-script>entry script</a> at the time that the constructor
-      is invoked. (They are not <a href=#concept-origin-alias title=concept-origin-alias>aliases</a>.)</p>
 
-     </dd>
-
-     <dt>Otherwise</dt>
-
-     <dd>
-
-      <p>The <a href=#origin>origin</a> and <a href=#effective-script-origin>effective script
-      origin</a> of the <a href=#url>URL</a> are the origin defined in
-      <cite>The Web Origin Concept</cite>. <a href=#refsORIGIN>[ORIGIN]</a></p>
-
-     </dd>
-
-    </dl></dd>
-
-
    <dt>For <code><a href=#document>Document</a></code> objects</dt>
 
    <dd>
@@ -81778,7 +81759,7 @@
    <a href=#dom-workerglobalscope-closing title=dom-WorkerGlobalScope-closing>closing</a> flag to
    true. (This prevents any further tasks from being queued.)</li>
 
-  </ol><p>The following are the <a href=#event-handlers>event handlers</a> (and their
+  </ol><hr><p>The following are the <a href=#event-handlers>event handlers</a> (and their
   corresponding <a href=#event-handler-event-type title="event handler event type">event handler
   event types</a>) that must be supported, as IDL attributes, by
   objects implementing the <code><a href=#workerglobalscope>WorkerGlobalScope</a></code>
@@ -81788,8 +81769,19 @@
    <tbody><!-- v2-onclose    <tr><td><dfn title="handler-WorkerGlobalScope-onclose"><code>onclose</code></dfn> <td> <code title="event-worker-close">close</code> --><tr><td><dfn id=handler-workerglobalscope-onerror title=handler-WorkerGlobalScope-onerror><code>onerror</code></dfn> <td> <code title=event-error>error</code>
     <tr><td><dfn id=handler-workerglobalscope-onoffline title=handler-WorkerGlobalScope-onoffline><code>onoffline</code></dfn> <td> <code title=event-offline><a href=#event-offline>offline</a></code> <!-- new -->
     <tr><td><dfn id=handler-workerglobalscope-ononline title=handler-WorkerGlobalScope-ononline><code>ononline</code></dfn> <td> <code title=event-online><a href=#event-online>online</a></code> <!-- new -->
-  </table><h5 id=dedicated-workers-and-the-dedicatedworkerglobalscope-interface><span class=secno>9.2.1.2 </span>Dedicated workers and the <code><a href=#dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</a></code> interface</h5>
+  </table><hr><p>Each <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> object has a <dfn id=worker-origin>worker
+  origin</dfn> that is set when the object is created.</p>
 
+  <p class=note>For <a href=#data-protocol title="data protocol"><code title="">data:</code> URLs</a>, this is the <a href=#origin>origin</a>
+  of the <a href=#entry-script>entry script</a> that called the constructor. For
+  other <a href=#url title=URL>URLs</a>, this is the <a href=#origin>origin</a>
+  of the value of the <a href=#absolute-url>absolute URL</a> given in the worker's
+  <code title=dom-WorkerGlobalScope-location><a href=#dom-workerglobalscope-location></a></code> attribute.</p>
+
+
+
+  <h5 id=dedicated-workers-and-the-dedicatedworkerglobalscope-interface><span class=secno>9.2.1.2 </span>Dedicated workers and the <code><a href=#dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</a></code> interface</h5>
+
   <pre class=idl>interface <dfn id=dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</dfn> : <a href=#workerglobalscope>WorkerGlobalScope</a> {
   void <a href=#dom-dedicatedworkerglobalscope-postmessage title=dom-DedicatedWorkerGlobalScope-postMessage>postMessage</a>(any message, optional sequence<<a href=#transferable>Transferable</a>> transfer);<!--
   <span>MessagePort</span> <span title="dom-DedicatedWorkerGlobalScope-startConversation">startConversation</span>(any message);-->
@@ -81874,26 +81866,9 @@
   -->
 
 
-  <h4 id=origins-of-workers><span class=secno>9.2.2 </span>Origins of workers</h4>
 
-  <p>Both the <a href=#origin>origin</a> and <a href=#effective-script-origin>effective script
-  origin</a> of scripts running in a worker are the
-  <a href=#origin>origin</a> of the <a href=#absolute-url>absolute URL</a> that was
-  obtained after <a href=#resolve-a-url title="resolve a URL">resolving</a> the
-  argument to the <code title=dom-Worker><a href=#dom-worker>Worker()</a></code> or <code title=dom-SharedWorker><a href=#dom-sharedworker>SharedWorker()</a></code> constructor that
-  initially created the worker, in the algorithm for that
-  constructor.</p>
+  <h4 id=the-event-loop><span class=secno>9.2.2 </span>The event loop</h4>
 
-  <p class=note>For <a href=#data-protocol title="data protocol"><code title="">data:</code> URLs</a>, this is the <a href=#origin>origin</a>
-  of the <a href=#entry-script>entry script</a> that called the constructor. For
-  other <a href=#url title=URL>URLs</a>, this is the
-  <a href=#origin>origin</a> of the value of the <a href=#absolute-url>absolute URL</a>
-  given in the worker's <code title=dom-WorkerGlobalScope-location><a href=#dom-workerglobalscope-location></a></code> attribute.</p>
-
-
-
-  <h4 id=the-event-loop><span class=secno>9.2.3 </span>The event loop</h4>
-
   <p>Each <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> object has an <a href=#event-loop>event
   loop</a> distinct from those defined for <a href=#unit-of-related-similar-origin-browsing-contexts title="unit of
   related similar-origin browsing contexts">units of related
@@ -81918,7 +81893,7 @@
 
 
 
-  <h4 id="the-worker's-lifetime"><span class=secno>9.2.4 </span>The worker's lifetime</h4>
+  <h4 id="the-worker's-lifetime"><span class=secno>9.2.3 </span>The worker's lifetime</h4>
 
   <p>Workers communicate with other workers and with <a href=#browsing-context title="browsing context">browsing contexts</a> through <a href=#channel-messaging title="channel messaging">message channels</a> and their
   <code><a href=#messageport>MessagePort</a></code> objects.</p>
@@ -81990,7 +81965,7 @@
   <a href=#permissible-worker>permissible worker</a>.</p>
 
 
-  <h4 id=processing-model-4><span class=secno>9.2.5 </span>Processing model</h4>
+  <h4 id=processing-model-4><span class=secno>9.2.4 </span>Processing model</h4>
 
   <p>When a user agent is to <dfn id=run-a-worker>run a worker</dfn> for a script with
   <a href=#url>URL</a> <var title="">url</var>, a <a href=#browsing-context>browsing
@@ -82276,7 +82251,7 @@
   <a href=#dom-manipulation-task-source>DOM manipulation task source</a>.</p>
 
 
-  <h4 id=runtime-script-errors-0><span class=secno>9.2.6 </span>Runtime script errors</h4>
+  <h4 id=runtime-script-errors-0><span class=secno>9.2.5 </span>Runtime script errors</h4>
 
   <p>Whenever an uncaught runtime script error occurs in one of the
   worker's scripts, if the error did not occur while handling a
@@ -82351,9 +82326,9 @@
 
 
 
-  <h4 id=creating-workers><span class=secno>9.2.7 </span>Creating workers</h4>
+  <h4 id=creating-workers><span class=secno>9.2.6 </span>Creating workers</h4>
 
-  <h5 id=the-abstractworker-abstract-interface><span class=secno>9.2.7.1 </span>The <code><a href=#abstractworker>AbstractWorker</a></code> abstract interface</h5>
+  <h5 id=the-abstractworker-abstract-interface><span class=secno>9.2.6.1 </span>The <code><a href=#abstractworker>AbstractWorker</a></code> abstract interface</h5>
 
   <pre class=idl>[NoInterfaceObject]
 interface <dfn id=abstractworker>AbstractWorker</dfn> {
@@ -82369,7 +82344,7 @@
   <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
    <tbody><tr><td><dfn id=handler-abstractworker-onerror title=handler-AbstractWorker-onerror><code>onerror</code></dfn> <td> <code title=event-error>error</code>
 <!-- v2-onclose    <tr><td><dfn title="handler-AbstractWorker-onclose"><code>onclose</code></dfn> <td> <code title="event-worker-close">close</code> -->
-  </table><h5 id=dedicated-workers-and-the-worker-interface><span class=secno>9.2.7.2 </span>Dedicated workers and the <code><a href=#worker>Worker</a></code> interface</h5>
+  </table><h5 id=dedicated-workers-and-the-worker-interface><span class=secno>9.2.6.2 </span>Dedicated workers and the <code><a href=#worker>Worker</a></code> interface</h5>
 
   <pre class=idl>[<a href=#dom-worker title=dom-Worker>Constructor</a>(DOMString scriptURL)]
 interface <dfn id=worker>Worker</dfn> : <a href=#eventtarget>EventTarget</a> {
@@ -82431,24 +82406,25 @@
 
    <li>
 
-    <p>If the <a href=#origin>origin</a> of the resulting <a href=#absolute-url>absolute
-    URL</a> is not the <a href=#same-origin title="same origin">same</a> as the
-    origin of the <a href=#entry-script>entry script</a>, then throw a
-    <code><a href=#securityerror>SecurityError</a></code> exception.</p>
+    <p>If the <a href=#url-scheme title=url-scheme><scheme></a> component of
+    the resulting <a href=#absolute-url>absolute URL</a> is not "<code title=data-protocol>data</code>", and the <a href=#origin>origin</a> of
+    the resulting <a href=#absolute-url>absolute URL</a> is not the <a href=#same-origin title="same origin">same</a> as the origin of the <a href=#entry-script>entry
+    script</a>, then throw a <code><a href=#securityerror>SecurityError</a></code> exception
+    and abort these steps.</p>
 
     <p class=note>Thus, scripts must either be external files with
-    the same scheme, host, and port as the original page, or <a href=#data-protocol title="data protocol"><code title="">data:</code> URLs</a> (the
-    latter are special-cases in the definition of
-    <a href=#origin>origin</a>). For example, you can't load a script from a
-    <a href=#javascript-protocol title="javascript protocol"><code title="">javascript:</code> URL</a>, and an <code>https:</code>
-    page couldn't start workers using scripts with <code>http:</code>
-    URLs.</p>
+    the same scheme, host, and port as the original page, or <a href=#data-protocol title="data protocol"><code title="">data:</code> URLs</a>. For
+    example, you can't load a script from a <a href=#javascript-protocol title="javascript
+    protocol"><code title="">javascript:</code> URL</a>, and an
+    <code>https:</code> page couldn't start workers using scripts with
+    <code>http:</code> URLs.</p>
 
    </li>
 
-   <li><p>Create a new <code><a href=#dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</a></code>
-   object. Let <var title="">worker global scope</var> be this new
-   object.</li>
+   <li><p>Create a new <code><a href=#dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</a></code> object
+   whose <a href=#worker-origin>worker origin</a> is the origin of the <a href=#entry-script>entry
+   script</a>. Let <var title="">worker global scope</var> be this
+   new object.</li>
 
    <li><p>Create a new <code><a href=#worker>Worker</a></code> object, associated with
    <var title="">worker global scope</var>. Let <var title="">worker</var> be this new object.</li>
@@ -82527,7 +82503,7 @@
   implementing the <code><a href=#workerutils>WorkerUtils</a></code> interface.</p>
 
 
-  <h5 id=shared-workers-and-the-sharedworker-interface><span class=secno>9.2.7.3 </span>Shared workers and the <code><a href=#sharedworker>SharedWorker</a></code> interface</h5>
+  <h5 id=shared-workers-and-the-sharedworker-interface><span class=secno>9.2.6.3 </span>Shared workers and the <code><a href=#sharedworker>SharedWorker</a></code> interface</h5>
 
   <pre class=idl>[<a href=#dom-sharedworker title=dom-SharedWorker>Constructor</a>(DOMString scriptURL, optional DOMString name)]
 interface <dfn id=sharedworker>SharedWorker</dfn> : <a href=#eventtarget>EventTarget</a> {
@@ -82558,18 +82534,19 @@
 
    <li>
 
-    <p>If the <a href=#origin>origin</a> of <var title="">scriptURL</var> is
-    not the <a href=#same-origin title="same origin">same</a> as the origin of the
-    <a href=#entry-script>entry script</a>, then throw a <code><a href=#securityerror>SecurityError</a></code>
-    exception.</p>
+    <p>If the <a href=#url-scheme title=url-scheme><scheme></a> component of
+    <var title="">scriptURL</var> is not "<code title=data-protocol>data</code>", and the <a href=#origin>origin</a> of
+    <var title="">scriptURL</var> is not the <a href=#same-origin title="same
+    origin">same</a> as the origin of the <a href=#entry-script>entry
+    script</a>, then throw a <code><a href=#securityerror>SecurityError</a></code> exception
+    and abort these steps.</p>
 
     <p class=note>Thus, scripts must either be external files with
-    the same scheme, host, and port as the original page, or <a href=#data-protocol title="data protocol"><code title="">data:</code> URLs</a> (the
-    latter are special-cases in the definition of
-    <a href=#origin>origin</a>). For example, you can't load a script from a
-    <a href=#javascript-protocol title="javascript protocol"><code title="">javascript:</code> URL</a>, and an <code>https:</code>
-    page couldn't start workers using scripts with <code>http:</code>
-    URLs.</p>
+    the same scheme, host, and port as the original page, or <a href=#data-protocol title="data protocol"><code title="">data:</code> URLs</a>. For
+    example, you can't load a script from a <a href=#javascript-protocol title="javascript
+    protocol"><code title="">javascript:</code> URL</a>, and an
+    <code>https:</code> page couldn't start workers using scripts with
+    <code>http:</code> URLs.</p>
 
    </li>
 
@@ -82604,10 +82581,11 @@
       <p>If <var title="">name</var> is not the empty string and there
       exists a <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code> object whose <a href=#dom-workerglobalscope-closing title=dom-WorkerGlobalScope-closing>closing</a> flag is
       false, whose <code title=dom-WorkerGlobalScope-name>name</code> attribute is
-      exactly equal to <var title="">name</var>, and whose <code title=dom-WorkerGlobalScope-location><a href=#dom-workerglobalscope-location>location</a></code> attribute
-      represents an <a href=#absolute-url>absolute URL</a> with the <a href=#same-origin>same
-      origin</a> as <var title="">scriptURL</var>, then let <var title="">worker global scope</var> be that
-      <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code> object.</p>
+      exactly equal to <var title="">name</var>, and whose
+      <a href=#worker-origin>worker origin</a> is the <a href=#same-origin>same origin</a> as
+      <var title="">scriptURL</var>, then let <var title="">worker
+      global scope</var> be that <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code>
+      object.</p>
 
       <p>Otherwise, if <var title="">name</var> is the empty string
       and there exists a <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code> object
@@ -82696,9 +82674,10 @@
 
       </ol></li>
 
-     <li><p>Create a new <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code>
-     object. Let <var title="">worker global scope</var> be this new
-     object.</li>
+     <li><p>Create a new <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code> object
+     whose <a href=#worker-origin>worker origin</a> is the origin of the <a href=#entry-script>entry
+     script</a>. Let <var title="">worker global scope</var> be
+     this new object.</li>
 
      <li><p>Associate <var title="">worker</var> with <var title="">worker global scope</var>.</li>
 
@@ -82801,14 +82780,6 @@
    <li><p>If any fail, throw a <code><a href=#syntaxerror>SyntaxError</a></code>
    exception.</li>
 
-<!--
-   <li><p>If any of the resulting <span title="absolute URL">absolute
-   URLs</span> have an <span>origin</span> that is not the <span
-   title="same origin">same</span> as the origin of the script that
-   invoked the method, then throw a <code>SecurityError</code>
-   exception.</p></li>
--->
-
    <li>
 
     <p>Attempt to <a href=#fetch>fetch</a> each resource identified by the

Modified: index
===================================================================
--- index	2012-08-09 18:02:50 UTC (rev 7235)
+++ index	2012-08-09 18:29:52 UTC (rev 7236)
@@ -1037,16 +1037,15 @@
        <li><a href=#the-workerglobalscope-common-interface><span class=secno>9.2.1.1 </span>The <code>WorkerGlobalScope</code> common interface</a></li>
        <li><a href=#dedicated-workers-and-the-dedicatedworkerglobalscope-interface><span class=secno>9.2.1.2 </span>Dedicated workers and the <code>DedicatedWorkerGlobalScope</code> interface</a></li>
        <li><a href=#shared-workers-and-the-sharedworkerglobalscope-interface><span class=secno>9.2.1.3 </span>Shared workers and the <code>SharedWorkerGlobalScope</code> interface</a></ol></li>
-     <li><a href=#origins-of-workers><span class=secno>9.2.2 </span>Origins of workers</a></li>
-     <li><a href=#the-event-loop><span class=secno>9.2.3 </span>The event loop</a></li>
-     <li><a href="#the-worker's-lifetime"><span class=secno>9.2.4 </span>The worker's lifetime</a></li>
-     <li><a href=#processing-model-4><span class=secno>9.2.5 </span>Processing model</a></li>
-     <li><a href=#runtime-script-errors-0><span class=secno>9.2.6 </span>Runtime script errors</a></li>
-     <li><a href=#creating-workers><span class=secno>9.2.7 </span>Creating workers</a>
+     <li><a href=#the-event-loop><span class=secno>9.2.2 </span>The event loop</a></li>
+     <li><a href="#the-worker's-lifetime"><span class=secno>9.2.3 </span>The worker's lifetime</a></li>
+     <li><a href=#processing-model-4><span class=secno>9.2.4 </span>Processing model</a></li>
+     <li><a href=#runtime-script-errors-0><span class=secno>9.2.5 </span>Runtime script errors</a></li>
+     <li><a href=#creating-workers><span class=secno>9.2.6 </span>Creating workers</a>
       <ol>
-       <li><a href=#the-abstractworker-abstract-interface><span class=secno>9.2.7.1 </span>The <code>AbstractWorker</code> abstract interface</a></li>
-       <li><a href=#dedicated-workers-and-the-worker-interface><span class=secno>9.2.7.2 </span>Dedicated workers and the <code>Worker</code> interface</a></li>
-       <li><a href=#shared-workers-and-the-sharedworker-interface><span class=secno>9.2.7.3 </span>Shared workers and the <code>SharedWorker</code> interface</a></ol></ol></li>
+       <li><a href=#the-abstractworker-abstract-interface><span class=secno>9.2.6.1 </span>The <code>AbstractWorker</code> abstract interface</a></li>
+       <li><a href=#dedicated-workers-and-the-worker-interface><span class=secno>9.2.6.2 </span>Dedicated workers and the <code>Worker</code> interface</a></li>
+       <li><a href=#shared-workers-and-the-sharedworker-interface><span class=secno>9.2.6.3 </span>Shared workers and the <code>SharedWorker</code> interface</a></ol></ol></li>
    <li><a href=#apis-available-to-workers><span class=secno>9.3 </span>APIs available to workers</a>
     <ol>
      <li><a href=#importing-scripts-and-libraries><span class=secno>9.3.1 </span>Importing scripts and libraries</a></li>
@@ -67903,31 +67902,13 @@
 
    <dd>
 
-    <dl class=switch><dt>If the URL is a <a href=#data-protocol title="data protocol"><code title="">data:</code> URL</a> used in a <code title=dom-Worker><a href=#dom-worker>Worker()</a></code> or <code title=dom-SharedWorker><a href=#dom-sharedworker>SharedWorker()</a></code> constructor</dt>
+    <p>The <a href=#origin>origin</a> and <a href=#effective-script-origin>effective script
+    origin</a> of the <a href=#url>URL</a> are the origin defined in
+    <cite>The Web Origin Concept</cite>. <a href=#refsORIGIN>[ORIGIN]</a></p>
 
-     <dd>
+   </dd>
 
-      <p>The <a href=#origin>origin</a> and <a href=#effective-script-origin>effective script
-      origin</a> of the <a href=#url>URL</a> are the
-      <a href=#origin>origin</a> and <a href=#effective-script-origin>effective script origin</a> of
-      the <a href=#entry-script>entry script</a> at the time that the constructor
-      is invoked. (They are not <a href=#concept-origin-alias title=concept-origin-alias>aliases</a>.)</p>
 
-     </dd>
-
-     <dt>Otherwise</dt>
-
-     <dd>
-
-      <p>The <a href=#origin>origin</a> and <a href=#effective-script-origin>effective script
-      origin</a> of the <a href=#url>URL</a> are the origin defined in
-      <cite>The Web Origin Concept</cite>. <a href=#refsORIGIN>[ORIGIN]</a></p>
-
-     </dd>
-
-    </dl></dd>
-
-
    <dt>For <code><a href=#document>Document</a></code> objects</dt>
 
    <dd>
@@ -81778,7 +81759,7 @@
    <a href=#dom-workerglobalscope-closing title=dom-WorkerGlobalScope-closing>closing</a> flag to
    true. (This prevents any further tasks from being queued.)</li>
 
-  </ol><p>The following are the <a href=#event-handlers>event handlers</a> (and their
+  </ol><hr><p>The following are the <a href=#event-handlers>event handlers</a> (and their
   corresponding <a href=#event-handler-event-type title="event handler event type">event handler
   event types</a>) that must be supported, as IDL attributes, by
   objects implementing the <code><a href=#workerglobalscope>WorkerGlobalScope</a></code>
@@ -81788,8 +81769,19 @@
    <tbody><!-- v2-onclose    <tr><td><dfn title="handler-WorkerGlobalScope-onclose"><code>onclose</code></dfn> <td> <code title="event-worker-close">close</code> --><tr><td><dfn id=handler-workerglobalscope-onerror title=handler-WorkerGlobalScope-onerror><code>onerror</code></dfn> <td> <code title=event-error>error</code>
     <tr><td><dfn id=handler-workerglobalscope-onoffline title=handler-WorkerGlobalScope-onoffline><code>onoffline</code></dfn> <td> <code title=event-offline><a href=#event-offline>offline</a></code> <!-- new -->
     <tr><td><dfn id=handler-workerglobalscope-ononline title=handler-WorkerGlobalScope-ononline><code>ononline</code></dfn> <td> <code title=event-online><a href=#event-online>online</a></code> <!-- new -->
-  </table><h5 id=dedicated-workers-and-the-dedicatedworkerglobalscope-interface><span class=secno>9.2.1.2 </span>Dedicated workers and the <code><a href=#dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</a></code> interface</h5>
+  </table><hr><p>Each <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> object has a <dfn id=worker-origin>worker
+  origin</dfn> that is set when the object is created.</p>
 
+  <p class=note>For <a href=#data-protocol title="data protocol"><code title="">data:</code> URLs</a>, this is the <a href=#origin>origin</a>
+  of the <a href=#entry-script>entry script</a> that called the constructor. For
+  other <a href=#url title=URL>URLs</a>, this is the <a href=#origin>origin</a>
+  of the value of the <a href=#absolute-url>absolute URL</a> given in the worker's
+  <code title=dom-WorkerGlobalScope-location><a href=#dom-workerglobalscope-location></a></code> attribute.</p>
+
+
+
+  <h5 id=dedicated-workers-and-the-dedicatedworkerglobalscope-interface><span class=secno>9.2.1.2 </span>Dedicated workers and the <code><a href=#dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</a></code> interface</h5>
+
   <pre class=idl>interface <dfn id=dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</dfn> : <a href=#workerglobalscope>WorkerGlobalScope</a> {
   void <a href=#dom-dedicatedworkerglobalscope-postmessage title=dom-DedicatedWorkerGlobalScope-postMessage>postMessage</a>(any message, optional sequence<<a href=#transferable>Transferable</a>> transfer);<!--
   <span>MessagePort</span> <span title="dom-DedicatedWorkerGlobalScope-startConversation">startConversation</span>(any message);-->
@@ -81874,26 +81866,9 @@
   -->
 
 
-  <h4 id=origins-of-workers><span class=secno>9.2.2 </span>Origins of workers</h4>
 
-  <p>Both the <a href=#origin>origin</a> and <a href=#effective-script-origin>effective script
-  origin</a> of scripts running in a worker are the
-  <a href=#origin>origin</a> of the <a href=#absolute-url>absolute URL</a> that was
-  obtained after <a href=#resolve-a-url title="resolve a URL">resolving</a> the
-  argument to the <code title=dom-Worker><a href=#dom-worker>Worker()</a></code> or <code title=dom-SharedWorker><a href=#dom-sharedworker>SharedWorker()</a></code> constructor that
-  initially created the worker, in the algorithm for that
-  constructor.</p>
+  <h4 id=the-event-loop><span class=secno>9.2.2 </span>The event loop</h4>
 
-  <p class=note>For <a href=#data-protocol title="data protocol"><code title="">data:</code> URLs</a>, this is the <a href=#origin>origin</a>
-  of the <a href=#entry-script>entry script</a> that called the constructor. For
-  other <a href=#url title=URL>URLs</a>, this is the
-  <a href=#origin>origin</a> of the value of the <a href=#absolute-url>absolute URL</a>
-  given in the worker's <code title=dom-WorkerGlobalScope-location><a href=#dom-workerglobalscope-location></a></code> attribute.</p>
-
-
-
-  <h4 id=the-event-loop><span class=secno>9.2.3 </span>The event loop</h4>
-
   <p>Each <code><a href=#workerglobalscope>WorkerGlobalScope</a></code> object has an <a href=#event-loop>event
   loop</a> distinct from those defined for <a href=#unit-of-related-similar-origin-browsing-contexts title="unit of
   related similar-origin browsing contexts">units of related
@@ -81918,7 +81893,7 @@
 
 
 
-  <h4 id="the-worker's-lifetime"><span class=secno>9.2.4 </span>The worker's lifetime</h4>
+  <h4 id="the-worker's-lifetime"><span class=secno>9.2.3 </span>The worker's lifetime</h4>
 
   <p>Workers communicate with other workers and with <a href=#browsing-context title="browsing context">browsing contexts</a> through <a href=#channel-messaging title="channel messaging">message channels</a> and their
   <code><a href=#messageport>MessagePort</a></code> objects.</p>
@@ -81990,7 +81965,7 @@
   <a href=#permissible-worker>permissible worker</a>.</p>
 
 
-  <h4 id=processing-model-4><span class=secno>9.2.5 </span>Processing model</h4>
+  <h4 id=processing-model-4><span class=secno>9.2.4 </span>Processing model</h4>
 
   <p>When a user agent is to <dfn id=run-a-worker>run a worker</dfn> for a script with
   <a href=#url>URL</a> <var title="">url</var>, a <a href=#browsing-context>browsing
@@ -82276,7 +82251,7 @@
   <a href=#dom-manipulation-task-source>DOM manipulation task source</a>.</p>
 
 
-  <h4 id=runtime-script-errors-0><span class=secno>9.2.6 </span>Runtime script errors</h4>
+  <h4 id=runtime-script-errors-0><span class=secno>9.2.5 </span>Runtime script errors</h4>
 
   <p>Whenever an uncaught runtime script error occurs in one of the
   worker's scripts, if the error did not occur while handling a
@@ -82351,9 +82326,9 @@
 
 
 
-  <h4 id=creating-workers><span class=secno>9.2.7 </span>Creating workers</h4>
+  <h4 id=creating-workers><span class=secno>9.2.6 </span>Creating workers</h4>
 
-  <h5 id=the-abstractworker-abstract-interface><span class=secno>9.2.7.1 </span>The <code><a href=#abstractworker>AbstractWorker</a></code> abstract interface</h5>
+  <h5 id=the-abstractworker-abstract-interface><span class=secno>9.2.6.1 </span>The <code><a href=#abstractworker>AbstractWorker</a></code> abstract interface</h5>
 
   <pre class=idl>[NoInterfaceObject]
 interface <dfn id=abstractworker>AbstractWorker</dfn> {
@@ -82369,7 +82344,7 @@
   <table><thead><tr><th><a href=#event-handlers title="event handlers">Event handler</a> <th><a href=#event-handler-event-type>Event handler event type</a>
    <tbody><tr><td><dfn id=handler-abstractworker-onerror title=handler-AbstractWorker-onerror><code>onerror</code></dfn> <td> <code title=event-error>error</code>
 <!-- v2-onclose    <tr><td><dfn title="handler-AbstractWorker-onclose"><code>onclose</code></dfn> <td> <code title="event-worker-close">close</code> -->
-  </table><h5 id=dedicated-workers-and-the-worker-interface><span class=secno>9.2.7.2 </span>Dedicated workers and the <code><a href=#worker>Worker</a></code> interface</h5>
+  </table><h5 id=dedicated-workers-and-the-worker-interface><span class=secno>9.2.6.2 </span>Dedicated workers and the <code><a href=#worker>Worker</a></code> interface</h5>
 
   <pre class=idl>[<a href=#dom-worker title=dom-Worker>Constructor</a>(DOMString scriptURL)]
 interface <dfn id=worker>Worker</dfn> : <a href=#eventtarget>EventTarget</a> {
@@ -82431,24 +82406,25 @@
 
    <li>
 
-    <p>If the <a href=#origin>origin</a> of the resulting <a href=#absolute-url>absolute
-    URL</a> is not the <a href=#same-origin title="same origin">same</a> as the
-    origin of the <a href=#entry-script>entry script</a>, then throw a
-    <code><a href=#securityerror>SecurityError</a></code> exception.</p>
+    <p>If the <a href=#url-scheme title=url-scheme><scheme></a> component of
+    the resulting <a href=#absolute-url>absolute URL</a> is not "<code title=data-protocol>data</code>", and the <a href=#origin>origin</a> of
+    the resulting <a href=#absolute-url>absolute URL</a> is not the <a href=#same-origin title="same origin">same</a> as the origin of the <a href=#entry-script>entry
+    script</a>, then throw a <code><a href=#securityerror>SecurityError</a></code> exception
+    and abort these steps.</p>
 
     <p class=note>Thus, scripts must either be external files with
-    the same scheme, host, and port as the original page, or <a href=#data-protocol title="data protocol"><code title="">data:</code> URLs</a> (the
-    latter are special-cases in the definition of
-    <a href=#origin>origin</a>). For example, you can't load a script from a
-    <a href=#javascript-protocol title="javascript protocol"><code title="">javascript:</code> URL</a>, and an <code>https:</code>
-    page couldn't start workers using scripts with <code>http:</code>
-    URLs.</p>
+    the same scheme, host, and port as the original page, or <a href=#data-protocol title="data protocol"><code title="">data:</code> URLs</a>. For
+    example, you can't load a script from a <a href=#javascript-protocol title="javascript
+    protocol"><code title="">javascript:</code> URL</a>, and an
+    <code>https:</code> page couldn't start workers using scripts with
+    <code>http:</code> URLs.</p>
 
    </li>
 
-   <li><p>Create a new <code><a href=#dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</a></code>
-   object. Let <var title="">worker global scope</var> be this new
-   object.</li>
+   <li><p>Create a new <code><a href=#dedicatedworkerglobalscope>DedicatedWorkerGlobalScope</a></code> object
+   whose <a href=#worker-origin>worker origin</a> is the origin of the <a href=#entry-script>entry
+   script</a>. Let <var title="">worker global scope</var> be this
+   new object.</li>
 
    <li><p>Create a new <code><a href=#worker>Worker</a></code> object, associated with
    <var title="">worker global scope</var>. Let <var title="">worker</var> be this new object.</li>
@@ -82527,7 +82503,7 @@
   implementing the <code><a href=#workerutils>WorkerUtils</a></code> interface.</p>
 
 
-  <h5 id=shared-workers-and-the-sharedworker-interface><span class=secno>9.2.7.3 </span>Shared workers and the <code><a href=#sharedworker>SharedWorker</a></code> interface</h5>
+  <h5 id=shared-workers-and-the-sharedworker-interface><span class=secno>9.2.6.3 </span>Shared workers and the <code><a href=#sharedworker>SharedWorker</a></code> interface</h5>
 
   <pre class=idl>[<a href=#dom-sharedworker title=dom-SharedWorker>Constructor</a>(DOMString scriptURL, optional DOMString name)]
 interface <dfn id=sharedworker>SharedWorker</dfn> : <a href=#eventtarget>EventTarget</a> {
@@ -82558,18 +82534,19 @@
 
    <li>
 
-    <p>If the <a href=#origin>origin</a> of <var title="">scriptURL</var> is
-    not the <a href=#same-origin title="same origin">same</a> as the origin of the
-    <a href=#entry-script>entry script</a>, then throw a <code><a href=#securityerror>SecurityError</a></code>
-    exception.</p>
+    <p>If the <a href=#url-scheme title=url-scheme><scheme></a> component of
+    <var title="">scriptURL</var> is not "<code title=data-protocol>data</code>", and the <a href=#origin>origin</a> of
+    <var title="">scriptURL</var> is not the <a href=#same-origin title="same
+    origin">same</a> as the origin of the <a href=#entry-script>entry
+    script</a>, then throw a <code><a href=#securityerror>SecurityError</a></code> exception
+    and abort these steps.</p>
 
     <p class=note>Thus, scripts must either be external files with
-    the same scheme, host, and port as the original page, or <a href=#data-protocol title="data protocol"><code title="">data:</code> URLs</a> (the
-    latter are special-cases in the definition of
-    <a href=#origin>origin</a>). For example, you can't load a script from a
-    <a href=#javascript-protocol title="javascript protocol"><code title="">javascript:</code> URL</a>, and an <code>https:</code>
-    page couldn't start workers using scripts with <code>http:</code>
-    URLs.</p>
+    the same scheme, host, and port as the original page, or <a href=#data-protocol title="data protocol"><code title="">data:</code> URLs</a>. For
+    example, you can't load a script from a <a href=#javascript-protocol title="javascript
+    protocol"><code title="">javascript:</code> URL</a>, and an
+    <code>https:</code> page couldn't start workers using scripts with
+    <code>http:</code> URLs.</p>
 
    </li>
 
@@ -82604,10 +82581,11 @@
       <p>If <var title="">name</var> is not the empty string and there
       exists a <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code> object whose <a href=#dom-workerglobalscope-closing title=dom-WorkerGlobalScope-closing>closing</a> flag is
       false, whose <code title=dom-WorkerGlobalScope-name>name</code> attribute is
-      exactly equal to <var title="">name</var>, and whose <code title=dom-WorkerGlobalScope-location><a href=#dom-workerglobalscope-location>location</a></code> attribute
-      represents an <a href=#absolute-url>absolute URL</a> with the <a href=#same-origin>same
-      origin</a> as <var title="">scriptURL</var>, then let <var title="">worker global scope</var> be that
-      <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code> object.</p>
+      exactly equal to <var title="">name</var>, and whose
+      <a href=#worker-origin>worker origin</a> is the <a href=#same-origin>same origin</a> as
+      <var title="">scriptURL</var>, then let <var title="">worker
+      global scope</var> be that <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code>
+      object.</p>
 
       <p>Otherwise, if <var title="">name</var> is the empty string
       and there exists a <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code> object
@@ -82696,9 +82674,10 @@
 
       </ol></li>
 
-     <li><p>Create a new <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code>
-     object. Let <var title="">worker global scope</var> be this new
-     object.</li>
+     <li><p>Create a new <code><a href=#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code> object
+     whose <a href=#worker-origin>worker origin</a> is the origin of the <a href=#entry-script>entry
+     script</a>. Let <var title="">worker global scope</var> be
+     this new object.</li>
 
      <li><p>Associate <var title="">worker</var> with <var title="">worker global scope</var>.</li>
 
@@ -82801,14 +82780,6 @@
    <li><p>If any fail, throw a <code><a href=#syntaxerror>SyntaxError</a></code>
    exception.</li>
 
-<!--
-   <li><p>If any of the resulting <span title="absolute URL">absolute
-   URLs</span> have an <span>origin</span> that is not the <span
-   title="same origin">same</span> as the origin of the script that
-   invoked the method, then throw a <code>SecurityError</code>
-   exception.</p></li>
--->
-
    <li>
 
     <p>Attempt to <a href=#fetch>fetch</a> each resource identified by the

Modified: source
===================================================================
--- source	2012-08-09 18:02:50 UTC (rev 7235)
+++ source	2012-08-09 18:29:52 UTC (rev 7236)
@@ -79575,37 +79575,11 @@
 
    <dd>
 
-    <dl class="switch">
+    <p>The <span>origin</span> and <span>effective script
+    origin</span> of the <span>URL</span> are the origin defined in
+    <cite>The Web Origin Concept</cite>. <a
+    href="#refsORIGIN">[ORIGIN]</a></p>
 
-     <dt>If the URL is a <span title="data protocol"><code
-     title="">data:</code> URL</span> used in a <code
-     title="dom-Worker">Worker()</code> or <code
-     title="dom-SharedWorker">SharedWorker()</code> constructor</dt>
-
-     <dd>
-
-      <p>The <span>origin</span> and <span>effective script
-      origin</span> of the <span>URL</span> are the
-      <span>origin</span> and <span>effective script origin</span> of
-      the <span>entry script</span> at the time that the constructor
-      is invoked. (They are not <span
-      title="concept-origin-alias">aliases</span>.)</p>
-
-     </dd>
-
-     <dt>Otherwise</dt>
-
-     <dd>
-
-      <p>The <span>origin</span> and <span>effective script
-      origin</span> of the <span>URL</span> are the origin defined in
-      <cite>The Web Origin Concept</cite>. <a
-      href="#refsORIGIN">[ORIGIN]</a></p>
-
-     </dd>
-
-    </dl>
-
    </dd>
 
 
@@ -95024,6 +94998,8 @@
 
   </ol>
 
+  <hr>
+
   <p>The following are the <span>event handlers</span> (and their
   corresponding <span title="event handler event type">event handler
   event types</span>) that must be supported, as IDL attributes, by
@@ -95040,9 +95016,20 @@
     <tr><td><dfn title="handler-WorkerGlobalScope-ononline"><code>ononline</code></dfn> <td> <code title="event-online">online</code> <!-- new -->
   </table>
 
+  <hr>
 
+  <p>Each <code>WorkerGlobalScope</code> object has a <dfn>worker
+  origin</dfn> that is set when the object is created.</p>
 
+  <p class="note">For <span title="data protocol"><code
+  title="">data:</code> URLs</span>, this is the <span>origin</span>
+  of the <span>entry script</span> that called the constructor. For
+  other <span title="URL">URLs</span>, this is the <span>origin</span>
+  of the value of the <span>absolute URL</span> given in the worker's
+  <code title="dom-WorkerGlobalScope-location"></code> attribute.</p>
 
+
+
   <h5>Dedicated workers and the <code>DedicatedWorkerGlobalScope</code> interface</h5>
 
   <pre class="idl">interface <dfn>DedicatedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope</span> {
@@ -95143,27 +95130,7 @@
   -->
 
 
-  <h4>Origins of workers</h4>
 
-  <p>Both the <span>origin</span> and <span>effective script
-  origin</span> of scripts running in a worker are the
-  <span>origin</span> of the <span>absolute URL</span> that was
-  obtained after <span title="resolve a URL">resolving</span> the
-  argument to the <code title="dom-Worker">Worker()</code> or <code
-  title="dom-SharedWorker">SharedWorker()</code> constructor that
-  initially created the worker, in the algorithm for that
-  constructor.</p>
-
-  <p class="note">For <span title="data protocol"><code
-  title="">data:</code> URLs</span>, this is the <span>origin</span>
-  of the <span>entry script</span> that called the constructor. For
-  other <span title="URL">URLs</span>, this is the
-  <span>origin</span> of the value of the <span>absolute URL</span>
-  given in the worker's <code
-  title="dom-WorkerGlobalScope-location"></code> attribute.</p>
-
-
-
   <h4>The event loop</h4>
 
   <p>Each <code>WorkerGlobalScope</code> object has an <span>event
@@ -95802,26 +95769,28 @@
 
    <li>
 
-    <p>If the <span>origin</span> of the resulting <span>absolute
-    URL</span> is not the <span title="same origin">same</span> as the
-    origin of the <span>entry script</span>, then throw a
-    <code>SecurityError</code> exception.</p>
+    <p>If the <span title="url-scheme"><scheme></span> component of
+    the resulting <span>absolute URL</span> is not "<code
+    title="data-protocol">data</code>", and the <span>origin</span> of
+    the resulting <span>absolute URL</span> is not the <span
+    title="same origin">same</span> as the origin of the <span>entry
+    script</span>, then throw a <code>SecurityError</code> exception
+    and abort these steps.</p>
 
     <p class="note">Thus, scripts must either be external files with
     the same scheme, host, and port as the original page, or <span
-    title="data protocol"><code title="">data:</code> URLs</span> (the
-    latter are special-cases in the definition of
-    <span>origin</span>). For example, you can't load a script from a
-    <span title="javascript protocol"><code
-    title="">javascript:</code> URL</span>, and an <code>https:</code>
-    page couldn't start workers using scripts with <code>http:</code>
-    URLs.</p>
+    title="data protocol"><code title="">data:</code> URLs</span>. For
+    example, you can't load a script from a <span title="javascript
+    protocol"><code title="">javascript:</code> URL</span>, and an
+    <code>https:</code> page couldn't start workers using scripts with
+    <code>http:</code> URLs.</p>
 
    </li>
 
-   <li><p>Create a new <code>DedicatedWorkerGlobalScope</code>
-   object. Let <var title="">worker global scope</var> be this new
-   object.</p></li>
+   <li><p>Create a new <code>DedicatedWorkerGlobalScope</code> object
+   whose <span>worker origin</span> is the origin of the <span>entry
+   script</span>. Let <var title="">worker global scope</var> be this
+   new object.</p></li>
 
    <li><p>Create a new <code>Worker</code> object, associated with
    <var title="">worker global scope</var>. Let <var
@@ -95945,20 +95914,21 @@
 
    <li>
 
-    <p>If the <span>origin</span> of <var title="">scriptURL</var> is
-    not the <span title="same origin">same</span> as the origin of the
-    <span>entry script</span>, then throw a <code>SecurityError</code>
-    exception.</p>
+    <p>If the <span title="url-scheme"><scheme></span> component of
+    <var title="">scriptURL</var> is not "<code
+    title="data-protocol">data</code>", and the <span>origin</span> of
+    <var title="">scriptURL</var> is not the <span title="same
+    origin">same</span> as the origin of the <span>entry
+    script</span>, then throw a <code>SecurityError</code> exception
+    and abort these steps.</p>
 
     <p class="note">Thus, scripts must either be external files with
     the same scheme, host, and port as the original page, or <span
-    title="data protocol"><code title="">data:</code> URLs</span> (the
-    latter are special-cases in the definition of
-    <span>origin</span>). For example, you can't load a script from a
-    <span title="javascript protocol"><code
-    title="">javascript:</code> URL</span>, and an <code>https:</code>
-    page couldn't start workers using scripts with <code>http:</code>
-    URLs.</p>
+    title="data protocol"><code title="">data:</code> URLs</span>. For
+    example, you can't load a script from a <span title="javascript
+    protocol"><code title="">javascript:</code> URL</span>, and an
+    <code>https:</code> page couldn't start workers using scripts with
+    <code>http:</code> URLs.</p>
 
    </li>
 
@@ -96002,12 +95972,11 @@
       title="dom-WorkerGlobalScope-closing">closing</span> flag is
       false, whose <code
       title="dom-WorkerGlobalScope-name">name</code> attribute is
-      exactly equal to <var title="">name</var>, and whose <code
-      title="dom-WorkerGlobalScope-location">location</code> attribute
-      represents an <span>absolute URL</span> with the <span>same
-      origin</span> as <var title="">scriptURL</var>, then let <var
-      title="">worker global scope</var> be that
-      <code>SharedWorkerGlobalScope</code> object.</p>
+      exactly equal to <var title="">name</var>, and whose
+      <span>worker origin</span> is the <span>same origin</span> as
+      <var title="">scriptURL</var>, then let <var title="">worker
+      global scope</var> be that <code>SharedWorkerGlobalScope</code>
+      object.</p>
 
       <p>Otherwise, if <var title="">name</var> is the empty string
       and there exists a <code>SharedWorkerGlobalScope</code> object
@@ -96112,9 +96081,10 @@
 
      </li>
 
-     <li><p>Create a new <code>SharedWorkerGlobalScope</code>
-     object. Let <var title="">worker global scope</var> be this new
-     object.</p></li>
+     <li><p>Create a new <code>SharedWorkerGlobalScope</code> object
+     whose <span>worker origin</span> is the origin of the <span>entry
+     script</span>. Let <var title="">worker global scope</var> be
+     this new object.</p></li>
 
      <li><p>Associate <var title="">worker</var> with <var
      title="">worker global scope</var>.</p></li>
@@ -96238,14 +96208,6 @@
    <li><p>If any fail, throw a <code>SyntaxError</code>
    exception.</p></li>
 
-<!--
-   <li><p>If any of the resulting <span title="absolute URL">absolute
-   URLs</span> have an <span>origin</span> that is not the <span
-   title="same origin">same</span> as the origin of the script that
-   invoked the method, then throw a <code>SecurityError</code>
-   exception.</p></li>
--->
-
    <li>
 
     <p>Attempt to <span>fetch</span> each resource identified by the




More information about the Commit-Watchers mailing list