summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/api/identity/identity_mint_queue.cc
diff options
context:
space:
mode:
authorcourage@chromium.org <courage@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-29 09:04:45 +0000
committercourage@chromium.org <courage@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-29 09:04:45 +0000
commit5dc43ecb316563a5e74ed517be8c2d4bc31ef2ea (patch)
tree9e0c29fcbf0087b3b36a9d4f357b1a810355b2de /chrome/browser/extensions/api/identity/identity_mint_queue.cc
parent94bdde96dd735aaade108f1d7672092a228551aa (diff)
downloadchromium_src-5dc43ecb316563a5e74ed517be8c2d4bc31ef2ea.zip
chromium_src-5dc43ecb316563a5e74ed517be8c2d4bc31ef2ea.tar.gz
chromium_src-5dc43ecb316563a5e74ed517be8c2d4bc31ef2ea.tar.bz2
Identity API TRACE_EVENT logging
This change adds "identity" events to chrome://tracing, mostly for getAuthToken calls. This will allow users or developers to capture traces to debug identity API issues. Review URL: https://codereview.chromium.org/423513003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@286131 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/api/identity/identity_mint_queue.cc')
-rw-r--r--chrome/browser/extensions/api/identity/identity_mint_queue.cc25
1 files changed, 23 insertions, 2 deletions
diff --git a/chrome/browser/extensions/api/identity/identity_mint_queue.cc b/chrome/browser/extensions/api/identity/identity_mint_queue.cc
index a6131ab..5103e02 100644
--- a/chrome/browser/extensions/api/identity/identity_mint_queue.cc
+++ b/chrome/browser/extensions/api/identity/identity_mint_queue.cc
@@ -4,6 +4,7 @@
#include "chrome/browser/extensions/api/identity/identity_mint_queue.h"
+#include "base/debug/trace_event.h"
#include "base/logging.h"
#include "base/stl_util.h"
@@ -31,28 +32,40 @@ void IdentityMintRequestQueue::RequestStart(
IdentityMintRequestQueue::MintType type,
const ExtensionTokenKey& key,
IdentityMintRequestQueue::Request* request) {
+ TRACE_EVENT_ASYNC_BEGIN1(
+ "identity", "IdentityMintRequestQueue", request, "type", type);
RequestQueue& request_queue = GetRequestQueueMap(type)[key];
request_queue.push_back(request);
// If this is the first request, start it now. RequestComplete will start
// all other requests.
if (request_queue.size() == 1)
- request_queue.front()->StartMintToken(type);
+ RunRequest(type, request_queue);
}
void IdentityMintRequestQueue::RequestComplete(
IdentityMintRequestQueue::MintType type,
const ExtensionTokenKey& key,
IdentityMintRequestQueue::Request* request) {
+ TRACE_EVENT_ASYNC_END1("identity",
+ "IdentityMintRequestQueue",
+ request,
+ "completed",
+ "RequestComplete");
RequestQueue& request_queue = GetRequestQueueMap(type)[key];
CHECK_EQ(request_queue.front(), request);
request_queue.pop_front();
if (request_queue.size() > 0)
- request_queue.front()->StartMintToken(type);
+ RunRequest(type, request_queue);
}
void IdentityMintRequestQueue::RequestCancel(
const ExtensionTokenKey& key,
IdentityMintRequestQueue::Request* request) {
+ TRACE_EVENT_ASYNC_END1("identity",
+ "IdentityMintRequestQueue",
+ request,
+ "completed",
+ "RequestCancel");
GetRequestQueueMap(MINT_TYPE_INTERACTIVE)[key].remove(request);
GetRequestQueueMap(MINT_TYPE_NONINTERACTIVE)[key].remove(request);
}
@@ -71,4 +84,12 @@ IdentityMintRequestQueue::GetRequestQueueMap(
: noninteractive_request_queue_map_;
}
+void IdentityMintRequestQueue::RunRequest(
+ IdentityMintRequestQueue::MintType type,
+ RequestQueue& request_queue) {
+ TRACE_EVENT_ASYNC_STEP_INTO0(
+ "identity", "IdentityMintRequestQueue", request_queue.front(), "RUNNING");
+ request_queue.front()->StartMintToken(type);
+}
+
} // namespace extensions