| Index: chrome/renderer/render_view.cc
|
| diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc
|
| index 006ae43eb35bed0d3abab3d450028e38938a57b9..aa8d86d53c0fe59f0abed3c9742b8bce3fbea362 100644
|
| --- a/chrome/renderer/render_view.cc
|
| +++ b/chrome/renderer/render_view.cc
|
| @@ -1805,13 +1805,19 @@ WebWorker* RenderView::createWorker(WebFrame* frame, WebWorkerClient* client) {
|
|
|
| WebSharedWorker* RenderView::createSharedWorker(
|
| WebFrame* frame, const WebURL& url, const WebString& name,
|
| - unsigned long long documentId) {
|
| + unsigned long long document_id) {
|
|
|
| - // TODO(atwilson): Call to the browser process to check if there's an existing
|
| - // worker (passing MSG_ROUTING_NONE for now, to indicate no existing worker).
|
| - int worker_route_id = MSG_ROUTING_NONE;
|
| - return new WebSharedWorkerProxy(
|
| - RenderThread::current(), worker_route_id, routing_id_);
|
| + int route_id = MSG_ROUTING_NONE;
|
| + bool url_mismatch = false;
|
| + Send(new ViewHostMsg_LookupSharedWorker(
|
| + url, name, document_id, &route_id, &url_mismatch));
|
| + if (url_mismatch) {
|
| + return NULL;
|
| + } else {
|
| + return new WebSharedWorkerProxy(RenderThread::current(),
|
| + route_id,
|
| + routing_id_);
|
| + }
|
| }
|
|
|
| WebMediaPlayer* RenderView::createMediaPlayer(
|
|
|