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

Unified Diff: extensions/renderer/extension_frame_helper.cc

Issue 2547753002: [Extensions] Extension Port Ids and Initialization 2.0 (Closed)
Patch Set: rkaplow 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
« no previous file with comments | « extensions/renderer/extension_frame_helper.h ('k') | extensions/renderer/extension_port.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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;
}
« no previous file with comments | « extensions/renderer/extension_frame_helper.h ('k') | extensions/renderer/extension_port.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698