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

Unified Diff: content/renderer/shared_worker/shared_worker_repository.cc

Issue 2600113003: (SUSPENDED) SharedWorker: Mojofy Renderer(Document)->Browser communication for SharedWorker
Patch Set: address review comments Created 3 years, 11 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/renderer/shared_worker/shared_worker_repository.cc
diff --git a/content/renderer/shared_worker/shared_worker_repository.cc b/content/renderer/shared_worker/shared_worker_repository.cc
index 9aa746af8d19531b9a9004fc16614858ba22a5db..b50dfe6b32ab12bafe24bb1c5bb8c5de115be924 100644
--- a/content/renderer/shared_worker/shared_worker_repository.cc
+++ b/content/renderer/shared_worker/shared_worker_repository.cc
@@ -8,11 +8,17 @@
#include "content/common/view_messages.h"
#include "content/renderer/render_frame_impl.h"
#include "content/renderer/shared_worker/websharedworker_proxy.h"
+#include "ipc/ipc_sync_channel.h"
namespace content {
SharedWorkerRepository::SharedWorkerRepository(RenderFrameImpl* render_frame)
- : render_frame_(render_frame){};
+ : render_frame_(render_frame) {
+ if (!ChildThreadImpl::current())
+ return; // May be null in some tests.
+ ChildThreadImpl::current()->channel()->GetRemoteAssociatedInterface(
+ &message_filter_);
+}
SharedWorkerRepository::~SharedWorkerRepository() = default;
@@ -26,28 +32,29 @@ SharedWorkerRepository::createSharedWorkerConnector(
blink::WebAddressSpace creation_address_space,
blink::WebSharedWorkerCreationContextType creation_context_type,
blink::WebWorkerCreationError* error) {
- ViewHostMsg_CreateWorker_Params params;
- params.url = url;
- params.name = name.utf16();
- params.content_security_policy = content_security_policy.utf16();
- params.security_policy_type = security_policy_type;
- params.document_id = document_id;
- params.render_frame_route_id = render_frame_->GetRoutingID();
- params.creation_address_space = creation_address_space;
- params.creation_context_type = creation_context_type;
- ViewHostMsg_CreateWorker_Reply reply;
- render_frame_->Send(new ViewHostMsg_CreateWorker(params, &reply));
- *error = reply.error;
+ mojom::SharedWorkerCreateParamsPtr params =
+ mojom::SharedWorkerCreateParams::New();
+ params->url = url;
+ params->name = name.utf16();
+ params->content_security_policy = content_security_policy.utf16();
+ params->security_policy_type = security_policy_type;
+ params->document_id = document_id;
+ params->render_frame_route_id = render_frame_->GetRoutingID();
+ params->creation_address_space = creation_address_space;
+ params->creation_context_type = creation_context_type;
+
+ int route_id;
+ message_filter_->OnCreateWorker(std::move(params), &route_id, error);
documents_with_workers_.insert(document_id);
- return base::MakeUnique<WebSharedWorkerProxy>(
- ChildThreadImpl::current()->GetRouter(), reply.route_id);
+
+ return base::MakeUnique<WebSharedWorkerProxy>(route_id);
}
void SharedWorkerRepository::documentDetached(DocumentID document) {
std::set<DocumentID>::iterator iter = documents_with_workers_.find(document);
if (iter != documents_with_workers_.end()) {
// Notify the browser process that the document has shut down.
- render_frame_->Send(new ViewHostMsg_DocumentDetached(document));
+ message_filter_->OnDocumentDetached(document);
documents_with_workers_.erase(iter);
}
}

Powered by Google App Engine
This is Rietveld 408576698