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

Unified Diff: content/renderer/shared_worker_repository.cc

Issue 2600113003: (SUSPENDED) SharedWorker: Mojofy Renderer(Document)->Browser communication for SharedWorker
Patch Set: Created 4 years 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_repository.cc
diff --git a/content/renderer/shared_worker_repository.cc b/content/renderer/shared_worker_repository.cc
index cc6ca68117a5a0ad88c43c7689828834b301006d..5c638545b5c7ab0354197b8fee8ce9fd10a35e31 100644
--- a/content/renderer/shared_worker_repository.cc
+++ b/content/renderer/shared_worker_repository.cc
@@ -8,11 +8,17 @@
#include "content/common/view_messages.h"
#include "content/renderer/render_frame_impl.h"
#include "content/renderer/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,34 @@ 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::SharedWorker_CreateWorker_ParamsPtr params =
+ mojom::SharedWorker_CreateWorker_Params::New();
+ params->url = url;
+ params->name = name.utf16();
+ params->content_security_policy = content_security_policy.utf16();
+ params->security_policy_type =
+ static_cast<mojom::WebContentSecurityPolicyType>(security_policy_type);
nhiroki 2016/12/28 09:24:30 I plan to add enum traits or replace blink::Enum w
nhiroki 2017/01/10 08:44:06 Added typemap in this CL.
+ params->document_id = document_id;
+ params->render_frame_route_id = render_frame_->GetRoutingID();
+ params->creation_address_space =
+ static_cast<mojom::WebAddressSpace>(creation_address_space);
+ params->creation_context_type =
+ static_cast<mojom::WebSharedWorkerCreationContextType>(
+ creation_context_type);
+
+ mojom::SharedWorker_CreateWorker_ReplyPtr reply;
+ message_filter_->OnCreateWorker(std::move(params), &reply);
+ *error = static_cast<blink::WebWorkerCreationError>(reply->error);
documents_with_workers_.insert(document_id);
- return base::MakeUnique<WebSharedWorkerProxy>(
- ChildThreadImpl::current()->GetRouter(), reply.route_id);
+
+ return base::MakeUnique<WebSharedWorkerProxy>(reply->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