Runs in the same renderer process as its parent document, but on a different thread (see Source/core/workers/WorkerThread.* in blink for details). Note that it’s NOT the chromium’s worker process thread implemented in content/worker/worker_thread.*.

In Chromium the renderer process’s main thread is implemented by content/renderer/render_thread_impl.*, while the Blink’s worker thread does NOT have corresponding message_loop/thread in chromium (yet). You can use webkit_glue::WorkerTaskRunner (webkit/child/worker_task_runner.*) to post tasks to the Blink’s worker threads in chromium.

The embedder’s platform code in Chromium for Dedicated Worker is /content/renderer/* (in addition to content/child/*), but NOT content/worker/*.

Platform APIs are accessible in Worker contexts via WebKit::Platform::current(), and it’s implemented in RendererWebKitPlatformSupport (content/renderer/renderer_webkitplatformsupport_impl.cc) in Chromium (as in the case for regular document contexts).

Note that to call Platform APIs from Worker contexts it needs to be implemented in a thread-safe way in the embedder code (e.g. do not lazily create a shared object without lock), or the worker code should explicitly relay the call onto the renderer’s main thread in Blink (e.g. by WTF::callOnMainThread).

Shared Worker (the following was valid until April 2014)

Runs in its own separate process called worker process and is connected to multiple renderer processes via the browser process. Shared Worker also runs in its own worker thread.

In Chromium the worker process’s main thread is implemented by content/worker/worker_thread.* (note that this is NOT the worker thread you refer in Blink!!). As well as in Dedicated Workers the Blink’s worker thread does not have corresponding message_loop/thread in chromium.

The embedder’s platform code in Chromium for Shared Worker is /content/worker/* (in addition to content/child/*).

Platform APIs are accessible in Worker contexts via WebKit::Platform::current(), and it’s implemented in WorkerWebKitPlatformSupportImpl (content/worker/worker_webkitplatformsupport_impl.cc) in Chromium. As well as for Dedicated Worker, to use a platform API in Worker contexts the API needs to be implemented in a thread-safe way in the embedder code, or Blink-side code should explicitly relay the platform API access onto the main thread byWTF::callOnMainThread.