Index: extensions/renderer/extension_port.cc |
diff --git a/extensions/renderer/extension_port.cc b/extensions/renderer/extension_port.cc |
index 7ba4571ddc3cd0546cdbdb613f42b7d72dcce24a..47a472e870ce64456ea6c256edb9f727c2a10d43 100644 |
--- a/extensions/renderer/extension_port.cc |
+++ b/extensions/renderer/extension_port.cc |
@@ -6,59 +6,36 @@ |
#include "content/public/renderer/render_frame.h" |
#include "extensions/common/api/messaging/message.h" |
+#include "extensions/common/api/messaging/port_id.h" |
#include "extensions/common/extension_messages.h" |
#include "extensions/renderer/script_context.h" |
namespace extensions { |
-ExtensionPort::ExtensionPort(ScriptContext* script_context, int local_id) |
- : script_context_(script_context), local_id_(local_id) {} |
+ExtensionPort::ExtensionPort(ScriptContext* script_context, |
+ const PortId& id, |
+ int js_id) |
+ : script_context_(script_context), id_(id), js_id_(js_id) {} |
ExtensionPort::~ExtensionPort() {} |
-void ExtensionPort::SetGlobalId(int id) { |
- global_id_ = id; |
- content::RenderFrame* render_frame = script_context_->GetRenderFrame(); |
- for (const auto& message : pending_messages_) |
- PostMessageImpl(render_frame, *message); |
- if (is_disconnected_) |
- SendDisconnected(render_frame); |
- pending_messages_.clear(); |
-} |
- |
void ExtensionPort::PostExtensionMessage(std::unique_ptr<Message> message) { |
- if (!initialized()) { |
- pending_messages_.push_back(std::move(message)); |
- return; |
- } |
- PostMessageImpl(script_context_->GetRenderFrame(), *message); |
-} |
- |
-void ExtensionPort::Close(bool close_channel) { |
- is_disconnected_ = true; |
- close_channel_ = close_channel; |
- if (!initialized()) |
- return; |
- |
- SendDisconnected(script_context_->GetRenderFrame()); |
-} |
- |
-void ExtensionPort::PostMessageImpl(content::RenderFrame* render_frame, |
- const Message& message) { |
+ content::RenderFrame* render_frame = script_context_->GetRenderFrame(); |
// TODO(devlin): What should we do if there's no render frame? Up until now, |
// we've always just dropped the messages, but we might need to figure this |
// out for service workers. |
if (!render_frame) |
return; |
render_frame->Send(new ExtensionHostMsg_PostMessage( |
- render_frame->GetRoutingID(), global_id_, message)); |
+ render_frame->GetRoutingID(), id_, *message)); |
} |
-void ExtensionPort::SendDisconnected(content::RenderFrame* render_frame) { |
+void ExtensionPort::Close(bool close_channel) { |
+ content::RenderFrame* render_frame = script_context_->GetRenderFrame(); |
if (!render_frame) |
return; |
render_frame->Send(new ExtensionHostMsg_CloseMessagePort( |
- render_frame->GetRoutingID(), global_id_, close_channel_)); |
+ render_frame->GetRoutingID(), id_, close_channel)); |
} |
} // namespace extensions |