Add tracing for pending queue size

Change-Id: Ib31c2245feca31d0276ef1ebf6e6d237d0297671
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 8808af0..f06387c 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -245,8 +245,10 @@
 
     // Input event queue.
     QueuedInputEvent mFirstPendingInputEvent;
+    int mPendingInputEventCount;
     QueuedInputEvent mCurrentInputEvent;
     boolean mProcessInputEventsScheduled;
+    String mPendingInputEventQueueLengthCounterName = "pq";
 
     boolean mWindowAttributesChanged = false;
     int mWindowAttributesChangesFlag = 0;
@@ -642,6 +644,8 @@
                 if (view.getImportantForAccessibility() == View.IMPORTANT_FOR_ACCESSIBILITY_AUTO) {
                     view.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
                 }
+
+                mPendingInputEventQueueLengthCounterName = "pq:" + attrs.getTitle();
             }
         }
     }
@@ -4427,6 +4431,9 @@
             }
             last.mNext = q;
         }
+        mPendingInputEventCount += 1;
+        Trace.traceCounter(Trace.TRACE_TAG_INPUT, mPendingInputEventQueueLengthCounterName,
+                mPendingInputEventCount);
 
         if (processImmediately) {
             doProcessInputEvents();
@@ -4451,6 +4458,10 @@
             q.mNext = null;
             mCurrentInputEvent = q;
 
+            mPendingInputEventCount -= 1;
+            Trace.traceCounter(Trace.TRACE_TAG_INPUT, mPendingInputEventQueueLengthCounterName,
+                    mPendingInputEventCount);
+
             final int result = deliverInputEvent(q);
             if (result != EVENT_IN_PROGRESS) {
                 finishCurrentInputEvent(result == EVENT_HANDLED);