Index: extensions/renderer/extension_frame_helper.cc |
diff --git a/extensions/renderer/extension_frame_helper.cc b/extensions/renderer/extension_frame_helper.cc |
index c0b6878f2f5240157e5b92659037584d510a4f83..5d3709e4fadc7d55b977087e060a60bb988149a9 100644 |
--- a/extensions/renderer/extension_frame_helper.cc |
+++ b/extensions/renderer/extension_frame_helper.cc |
@@ -9,6 +9,7 @@ |
#include "base/timer/elapsed_timer.h" |
#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/constants.h" |
#include "extensions/common/extension_messages.h" |
#include "extensions/common/manifest_handlers/background_info.h" |
@@ -90,19 +91,6 @@ enum class PortType { |
} // namespace |
-struct ExtensionFrameHelper::PendingPortRequest { |
- PendingPortRequest(PortType type, const base::Callback<void(int)>& callback) |
- : type(type), callback(callback) {} |
- ~PendingPortRequest() {} |
- |
- base::ElapsedTimer timer; |
- PortType type; |
- base::Callback<void(int)> callback; |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(PendingPortRequest); |
-}; |
- |
ExtensionFrameHelper::ExtensionFrameHelper(content::RenderFrame* render_frame, |
Dispatcher* extension_dispatcher) |
: content::RenderFrameObserver(render_frame), |
@@ -112,7 +100,6 @@ ExtensionFrameHelper::ExtensionFrameHelper(content::RenderFrame* render_frame, |
browser_window_id_(-1), |
extension_dispatcher_(extension_dispatcher), |
did_create_current_document_element_(false), |
- next_port_request_id_(0), |
weak_ptr_factory_(this) { |
g_frame_helpers.Get().insert(this); |
} |
@@ -194,64 +181,6 @@ void ExtensionFrameHelper::ScheduleAtDocumentEnd( |
document_load_finished_callbacks_.push_back(callback); |
} |
-void ExtensionFrameHelper::RequestPortId( |
- const ExtensionMsg_ExternalConnectionInfo& info, |
- const std::string& channel_name, |
- bool include_tls_channel_id, |
- const base::Callback<void(int)>& callback) { |
- int port_request_id = next_port_request_id_++; |
- pending_port_requests_[port_request_id] = |
- base::MakeUnique<PendingPortRequest>(PortType::EXTENSION, callback); |
- { |
- SCOPED_UMA_HISTOGRAM_TIMER( |
- "Extensions.Messaging.GetPortIdSyncTime.Extension"); |
- render_frame()->Send(new ExtensionHostMsg_OpenChannelToExtension( |
- render_frame()->GetRoutingID(), info, channel_name, |
- include_tls_channel_id, port_request_id)); |
- } |
-} |
- |
-void ExtensionFrameHelper::RequestTabPortId( |
- const ExtensionMsg_TabTargetConnectionInfo& info, |
- const std::string& extension_id, |
- const std::string& channel_name, |
- const base::Callback<void(int)>& callback) { |
- int port_request_id = next_port_request_id_++; |
- pending_port_requests_[port_request_id] = |
- base::MakeUnique<PendingPortRequest>(PortType::TAB, callback); |
- { |
- SCOPED_UMA_HISTOGRAM_TIMER("Extensions.Messaging.GetPortIdSyncTime.Tab"); |
- render_frame()->Send(new ExtensionHostMsg_OpenChannelToTab( |
- render_frame()->GetRoutingID(), info, extension_id, channel_name, |
- port_request_id)); |
- } |
-} |
- |
-void ExtensionFrameHelper::RequestNativeAppPortId( |
- const std::string& native_app_name, |
- const base::Callback<void(int)>& callback) { |
- int port_request_id = next_port_request_id_++; |
- pending_port_requests_[port_request_id] = |
- base::MakeUnique<PendingPortRequest>(PortType::NATIVE_APP, callback); |
- { |
- SCOPED_UMA_HISTOGRAM_TIMER( |
- "Extensions.Messaging.GetPortIdSyncTime.NativeApp"); |
- render_frame()->Send(new ExtensionHostMsg_OpenChannelToNativeApp( |
- render_frame()->GetRoutingID(), native_app_name, port_request_id)); |
- } |
-} |
- |
-int ExtensionFrameHelper::RequestSyncPortId( |
- const ExtensionMsg_ExternalConnectionInfo& info, |
- const std::string& channel_name, |
- bool include_tls_channel_id) { |
- int port_id = 0; |
- render_frame()->Send(new ExtensionHostMsg_OpenChannelToExtensionSync( |
- render_frame()->GetRoutingID(), info, channel_name, |
- include_tls_channel_id, &port_id)); |
- return port_id; |
-} |
- |
void ExtensionFrameHelper::DidMatchCSS( |
const blink::WebVector<blink::WebString>& newly_matching_selectors, |
const blink::WebVector<blink::WebString>& stopped_matching_selectors) { |
@@ -317,19 +246,18 @@ bool ExtensionFrameHelper::OnMessageReceived(const IPC::Message& message) { |
OnNotifyRendererViewType) |
IPC_MESSAGE_HANDLER(ExtensionMsg_Response, OnExtensionResponse) |
IPC_MESSAGE_HANDLER(ExtensionMsg_MessageInvoke, OnExtensionMessageInvoke) |
- IPC_MESSAGE_HANDLER(ExtensionMsg_AssignPortId, OnAssignPortId) |
IPC_MESSAGE_UNHANDLED(handled = false) |
IPC_END_MESSAGE_MAP() |
return handled; |
} |
-void ExtensionFrameHelper::OnExtensionValidateMessagePort(int port_id) { |
+void ExtensionFrameHelper::OnExtensionValidateMessagePort(const PortId& id) { |
MessagingBindings::ValidateMessagePort( |
- extension_dispatcher_->script_context_set(), port_id, render_frame()); |
+ extension_dispatcher_->script_context_set(), id, render_frame()); |
} |
void ExtensionFrameHelper::OnExtensionDispatchOnConnect( |
- int target_port_id, |
+ const PortId& target_port_id, |
const std::string& channel_name, |
const ExtensionMsg_TabConnectionInfo& source, |
const ExtensionMsg_ExternalConnectionInfo& info, |
@@ -344,7 +272,7 @@ void ExtensionFrameHelper::OnExtensionDispatchOnConnect( |
render_frame()); |
} |
-void ExtensionFrameHelper::OnExtensionDeliverMessage(int target_id, |
+void ExtensionFrameHelper::OnExtensionDeliverMessage(const PortId& target_id, |
const Message& message) { |
MessagingBindings::DeliverMessage( |
extension_dispatcher_->script_context_set(), target_id, message, |
@@ -352,10 +280,10 @@ void ExtensionFrameHelper::OnExtensionDeliverMessage(int target_id, |
} |
void ExtensionFrameHelper::OnExtensionDispatchOnDisconnect( |
- int port_id, |
+ const PortId& id, |
const std::string& error_message) { |
MessagingBindings::DispatchOnDisconnect( |
- extension_dispatcher_->script_context_set(), port_id, error_message, |
+ extension_dispatcher_->script_context_set(), id, error_message, |
render_frame()); |
} |
@@ -394,31 +322,6 @@ void ExtensionFrameHelper::OnExtensionMessageInvoke( |
render_frame(), extension_id, module_name, function_name, args); |
} |
-void ExtensionFrameHelper::OnAssignPortId(int port_id, int request_id) { |
- auto iter = pending_port_requests_.find(request_id); |
- DCHECK(iter != pending_port_requests_.end()); |
- PendingPortRequest& request = *iter->second; |
- switch (request.type) { |
- case PortType::EXTENSION: { |
- UMA_HISTOGRAM_TIMES("Extensions.Messaging.GetPortIdAsyncTime.Extension", |
- request.timer.Elapsed()); |
- break; |
- } |
- case PortType::TAB: { |
- UMA_HISTOGRAM_TIMES("Extensions.Messaging.GetPortIdAsyncTime.Tab", |
- request.timer.Elapsed()); |
- break; |
- } |
- case PortType::NATIVE_APP: { |
- UMA_HISTOGRAM_TIMES("Extensions.Messaging.GetPortIdAsyncTime.NativeApp", |
- request.timer.Elapsed()); |
- break; |
- } |
- } |
- request.callback.Run(port_id); |
- pending_port_requests_.erase(iter); |
-} |
- |
void ExtensionFrameHelper::OnDestruct() { |
delete this; |
} |