Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(149)

Unified Diff: chrome/renderer/websharedworkerrepository_impl.cc

Issue 390017: Added lifecycle management and sharing support for SharedWorkers. SharedWorkers (Closed)
Patch Set: Changed WebWorkerBase not not call a virtual function from the destructor Created 11 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();
}

Powered by Google App Engine
This is Rietveld 408576698