Index: chrome/renderer/websharedworkerrepository_impl.cc |
diff --git a/chrome/renderer/websharedworkerrepository_impl.cc b/chrome/renderer/websharedworkerrepository_impl.cc |
index 24664b7d286678631b69324ed69499c6513529d6..89fda39b8b861724ceb0fdf37a978979a7bd163e 100644 |
--- a/chrome/renderer/websharedworkerrepository_impl.cc |
+++ b/chrome/renderer/websharedworkerrepository_impl.cc |
@@ -4,21 +4,24 @@ |
#include "chrome/renderer/websharedworkerrepository_impl.h" |
+#include "chrome/common/render_messages.h" |
+#include "chrome/renderer/render_thread.h" |
#include "chrome/renderer/websharedworker_proxy.h" |
void WebSharedWorkerRepositoryImpl::addSharedWorker( |
WebKit::WebSharedWorker* worker, DocumentID document) { |
- // TODO(atwilson): Track shared worker creation here. |
+ shared_worker_parents_.insert(document); |
} |
-void WebSharedWorkerRepositoryImpl::documentDetached( |
- DocumentID document) { |
- // TODO(atwilson): Update this to call to WorkerService to shutdown any |
- // associated SharedWorkers. |
+void WebSharedWorkerRepositoryImpl::documentDetached(DocumentID document) { |
+ DocumentSet::iterator iter = shared_worker_parents_.find(document); |
+ if (iter != shared_worker_parents_.end()) { |
+ // Notify the browser process that the document has shut down. |
+ RenderThread::current()->Send(new ViewHostMsg_DocumentDetached(document)); |
jam
2009/11/12 20:11:23
nit: if you make this ChildThread::, this file can
|
+ shared_worker_parents_.erase(iter); |
+ } |
} |
-bool WebSharedWorkerRepositoryImpl::hasSharedWorkers( |
- DocumentID document) { |
- // TODO(atwilson): Update this when we track shared worker creation. |
- return false; |
+bool WebSharedWorkerRepositoryImpl::hasSharedWorkers(DocumentID document) { |
+ return shared_worker_parents_.find(document) != shared_worker_parents_.end(); |
} |