Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / api / identity / identity_mint_queue.cc
index a6131ab..5103e02 100644 (file)
@@ -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