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); |
} |
} |