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

Unified Diff: extensions/renderer/request_sender.cc

Issue 2088663002: [Extensions] Add perf metrics for StartRequest()/HandleResponse() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 months 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/request_sender.h ('k') | extensions/renderer/send_request_natives.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/renderer/request_sender.cc
diff --git a/extensions/renderer/request_sender.cc b/extensions/renderer/request_sender.cc
index bd836b9e57a5de5a0a929f6fb5ed25f27a7b1d2d..17227f3a0133b10452c75ccccf72d98baa8273a6 100644
--- a/extensions/renderer/request_sender.cc
+++ b/extensions/renderer/request_sender.cc
@@ -4,6 +4,8 @@
#include "extensions/renderer/request_sender.h"
+#include "base/metrics/histogram_macros.h"
+#include "base/timer/elapsed_timer.h"
#include "base/values.h"
#include "content/public/renderer/render_frame.h"
#include "extensions/common/extension_messages.h"
@@ -66,7 +68,7 @@ int RequestSender::GetNextRequestId() const {
return next_request_id++;
}
-void RequestSender::StartRequest(Source* source,
+bool RequestSender::StartRequest(Source* source,
const std::string& name,
int request_id,
bool has_callback,
@@ -74,7 +76,7 @@ void RequestSender::StartRequest(Source* source,
base::ListValue* value_args) {
ScriptContext* context = source->GetContext();
if (!context)
- return;
+ return false;
bool for_service_worker =
context->context_type() == Feature::SERVICE_WORKER_CONTEXT;
@@ -86,12 +88,12 @@ void RequestSender::StartRequest(Source* source,
if (!for_service_worker && !render_frame) {
// It is important to early exit here for non Service Worker contexts so
// that we do not create orphaned PendingRequests below.
- return;
+ return false;
}
// TODO(koz): See if we can make this a CHECK.
if (!context->HasAccessOrThrowError(name))
- return;
+ return false;
GURL source_url;
if (blink::WebLocalFrame* webframe = context->web_frame())
@@ -116,6 +118,7 @@ void RequestSender::StartRequest(Source* source,
params.embedded_worker_id = -1;
SendRequest(render_frame, for_io_thread, params);
+ return true;
}
void RequestSender::SendRequest(content::RenderFrame* render_frame,
@@ -134,6 +137,7 @@ void RequestSender::HandleResponse(int request_id,
bool success,
const base::ListValue& response,
const std::string& error) {
+ base::ElapsedTimer timer;
linked_ptr<PendingRequest> request = RemoveRequest(request_id);
if (!request.get()) {
@@ -141,9 +145,13 @@ void RequestSender::HandleResponse(int request_id,
return;
}
+ // TODO(devlin): Would it be useful to partition this data based on
+ // extension function once we have a suitable baseline? crbug.com/608561.
blink::WebScopedUserGesture gesture(request->token);
request->source->OnResponseReceived(
request->name, request_id, success, response, error);
+ UMA_HISTOGRAM_TIMES("Extensions.Functions.HandleResponseElapsedTime",
+ timer.Elapsed());
}
void RequestSender::InvalidateSource(Source* source) {
« no previous file with comments | « extensions/renderer/request_sender.h ('k') | extensions/renderer/send_request_natives.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698