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

Unified Diff: content/browser/shared_worker/shared_worker_message_filter.cc

Issue 2249173003: Removes the references to shared workers from the all documents in being deleted frames (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Keep WorkerStoragePartitionId in SharedWorkerMessageFilter Created 4 years, 4 months 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: content/browser/shared_worker/shared_worker_message_filter.cc
diff --git a/content/browser/shared_worker/shared_worker_message_filter.cc b/content/browser/shared_worker/shared_worker_message_filter.cc
index fd306ac47e5da613ce60c6098b3f1b62bb5be250..2a1edf5dd53607818b7c0685fea70ed89c349e32 100644
--- a/content/browser/shared_worker/shared_worker_message_filter.cc
+++ b/content/browser/shared_worker/shared_worker_message_filter.cc
@@ -12,6 +12,7 @@
#include "content/common/devtools_messages.h"
#include "content/common/view_messages.h"
#include "content/common/worker_messages.h"
+#include "content/public/browser/browser_thread.h"
#include "third_party/WebKit/public/web/WebSharedWorkerCreationErrors.h"
namespace content {
@@ -39,12 +40,11 @@ SharedWorkerMessageFilter::SharedWorkerMessageFilter(
arraysize(kFilteredMessageClasses)),
render_process_id_(render_process_id),
resource_context_(resource_context),
- partition_(partition),
+ partition_id_(WorkerStoragePartitionId(partition)),
message_port_message_filter_(message_port_message_filter) {
}
SharedWorkerMessageFilter::~SharedWorkerMessageFilter() {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
nhiroki 2016/08/17 06:58:04 Why did you remove this?
horo 2016/08/17 07:15:54 SharedWorkerMessageFilter may be deleted on UI thr
}
void SharedWorkerMessageFilter::OnChannelClosing() {
@@ -86,13 +86,23 @@ int SharedWorkerMessageFilter::GetNextRoutingID() {
return message_port_message_filter_->GetNextRoutingID();
}
+void SharedWorkerMessageFilter::DetachAllDocument() {
+ if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) {
+ BrowserThread::PostTask(
+ BrowserThread::IO, FROM_HERE,
+ base::Bind(&SharedWorkerMessageFilter::DetachAllDocument, this));
+ return;
+ }
+ SharedWorkerServiceImpl::GetInstance()->DetachAllDocument(this);
+}
+
void SharedWorkerMessageFilter::OnCreateWorker(
const ViewHostMsg_CreateWorker_Params& params,
ViewHostMsg_CreateWorker_Reply* reply) {
reply->route_id = GetNextRoutingID();
reply->error = SharedWorkerServiceImpl::GetInstance()->CreateWorker(
params, reply->route_id, this, resource_context_,
- WorkerStoragePartitionId(partition_));
+ partition_id_);
if (CreateWorkerErrorIsFatal(reply->error))
reply->route_id = MSG_ROUTING_NONE;
}

Powered by Google App Engine
This is Rietveld 408576698