- From: <bugzilla@jessica.w3.org>
- Date: Sat, 19 Mar 2011 14:10:02 +0000
- To: public-webapps@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=12340
Summary: It is not clear which worker to use when using
nameless SharedWorker
Product: WebAppsWG
Version: unspecified
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: Web Workers (editor: Ian Hickson)
AssignedTo: ian@hixie.ch
ReportedBy: Olli.Pettay@gmail.com
QAContact: member-webapi-cvs@w3.org
CC: mike@w3.org, public-webapps@w3.org
http://www.w3.org/TR/2011/WD-workers-20110310/#shared-workers-and-the-sharedworker-interface
Step 7.5 is
"If name is not the empty string and there exists a SharedWorkerGlobalScope
object whose closing flag is false, whose name attribute is exactly equal to
name, and whose location attribute represents an absolute URL with the same
origin as scriptURL, then let worker global scope be that
SharedWorkerGlobalScope object."
7.6. is
"Otherwise, if name is the empty string and there exists a
SharedWorkerGlobalScope object whose closing flag is false, and whose location
attribute represents an absolute URL that is exactly equal to scriptURL, then
let worker global scope be that SharedWorkerGlobalScope object."
7.8 is
"Create a new SharedWorkerGlobalScope object. Let worker global scope be this
new object."
Example web page is
<script>
var sw1 = new SharedWorker("worker.js", "1");
sw1.port.onmessage = function(e) { alert("sw1: " + e.data); }
var sw2 = new SharedWorker("worker.js", "2");
sw2.port.onmessage = function(e) { alert("sw2: " + e.data); }
var sw3 = new SharedWorker("worker.js");
sw3.port.onmessage = function(e) { alert("sw3: " + e.data); }
</script>
and worker
onconnect = function(e) {
var port = e.ports[0];
port.postMessage("worker name: " + name);
}
Since sw1 and sw2 have different names, they get separate workers per 7.5 and
7.8.
Because sw3 doesn't have name, 7.6 applies. Both sw1 and sw2 fulfill the
criteria of a worker
whose closing flag is false and location attribute is the same as sw3's
location, so sw3 is
connected randomly to either one of those workers.
That is very strange.
Opera seems to implement what the spec says, Chrome creates a new worker for
sw3.
--
Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
Received on Saturday, 19 March 2011 14:10:04 UTC