)]}'
{
  "log": [
    {
      "commit": "4e21979f459d71d34daf300444815dd603417380",
      "tree": "628bb50c3c8c512e4942b5bf061576a516f28d39",
      "parents": [
        "1b7f76282f6630acb246ea426275256c219ec911"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Sep 22 21:43:09 2020 -0500"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Oct 20 23:23:37 2020 -0700"
      },
      "message": "Check window token when extending timeout\n\nWhen the \"no focused window\" ANR is raised, the policy responds with a\ntimeout. The timeout indicates whether or not to extend the ANR, and by\nhow much.\n\nWhen we process the response from the policy, it is done in the\n\u0027commands\u0027 portion of the dispatch cycle. At that time, we already have\nlost the context about the ANR.\n\nWe used to rely on the optional \u0027mNoFocusedWindowTimeout\u0027 being set to\ndetermine whether this is a \u0027no focused window\u0027 ANR. However, there\u0027s a\nbetter way to do this, by simply checking the inputs that were first\nprovided to the policy.\n\nThis way, we are free to modify \u0027mNoFocusedWindowTimeout\u0027 in other\nportions of the code.\n\nOther changes in this CL:\n\n* In \u0027onAnrLocked\u0027, we are assuming the connection is non-null, so let\u0027s\npass it by reference. This will get us closer to the goal of using\nstd::unique_ptr for the connection.\n\n* In \u0027InputDispatcher_test\u0027, when we had a missing ANR, we would go on\nto try to derefence a null (or empty) object. This caused crashes on\nhwasan build. Fix this by returning default pair when the error\ncondition has been detected.\n\nBug: 164754075\nTest: atest inputflinger_tests\nChange-Id: I656315eda001f1fff31cd265eadce5397606b855\nMerged-In: I656315eda001f1fff31cd265eadce5397606b855\n"
    },
    {
      "commit": "3695285a81ffc6d030461af136a76ded8b3f49be",
      "tree": "015a0503d7da4957a8b714b991af29b900fa4f5c",
      "parents": [
        "fe3c19fcbda29a1cbea6d6db360770e67647a289",
        "e08a7f71074046d2626a0db85a3a90e3f3c00ebd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 20 23:56:51 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 20 23:56:51 2020 +0000"
      },
      "message": "Merge \"Update VNDK version for common graphics HALs.\""
    },
    {
      "commit": "e08a7f71074046d2626a0db85a3a90e3f3c00ebd",
      "tree": "1a226e074029a72b9e0cbcbe7c11aedd9c31b4ed",
      "parents": [
        "07c60da5bfe26d2948bd13bf60d4c2bb8208f879"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Oct 16 23:46:04 2020 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Oct 20 23:56:41 2020 +0000"
      },
      "message": "Update VNDK version for common graphics HALs.\n\nWe are adding things to them, and in order for core libraries like libui\nto use them, the newer versions need to be in the VNDK.\n\nExempt-From-Owner-Approval: cherry-pick\n\nBug: 170435409\nTest: build\nChange-Id: I84fc02127254c6b9d6d7858e140bd256b0dff44b\nMerged-In: I84fc02127254c6b9d6d7858e140bd256b0dff44b\n"
    },
    {
      "commit": "c46b217c3580843037f578ee547254d5d27f97c2",
      "tree": "6b1938526189f1dc2bb12c47d4fb82cd9acc9fd3",
      "parents": [
        "8701377f1d7b893d8921edfa4d0a2034bbfec611",
        "a4d3a69c574a853e467eb03c87bc6d34f952017e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Oct 17 00:15:32 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Oct 17 00:15:32 2020 +0000"
      },
      "message": "Merge changes I3d727530,Ia17bc5a0 am: a4d3a69c57\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1463005\n\nChange-Id: I613429b2e1cbf7555f20eb8e555586ff8eb17911\n"
    },
    {
      "commit": "8701377f1d7b893d8921edfa4d0a2034bbfec611",
      "tree": "6249f1a081399bc46ad8fe07a0a107d77e3ae79e",
      "parents": [
        "e3ce34306ec02fbb9b3a34c41ed3bf914494e9b3",
        "acfe554b2a8351cea95ea4b963600ffe8e145b20"
      ],
      "author": {
        "name": "Kevin DuBois",
        "email": "kevindubois@google.com",
        "time": "Sat Oct 17 00:15:14 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Oct 17 00:15:14 2020 +0000"
      },
      "message": "VSR: dispatch cbs skipped due to timer lag. am: acfe554b2a\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1463004\n\nChange-Id: Iec7f813c25ace8db9ff4aca27f77b41580e20227\n"
    },
    {
      "commit": "5ff4bb8fe1780d8132ec967938ad5e5bdff1a2ac",
      "tree": "ecc81f539a042bd4c00f7923415f8cc2efbb3629",
      "parents": [
        "acfe554b2a8351cea95ea4b963600ffe8e145b20"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Sat Aug 15 15:47:56 2020 -0700"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Fri Oct 16 20:35:16 2020 +0000"
      },
      "message": "SurfaceFlinger: use TFD_TIMER_ABSTIME for VSP timer\n\nUsing the semantics of alarmIn in VSP timer may lead to lag\nif the thread is getting preempted. For example:\nTime 0: t1 calls to alarmIn(5)\n -- t1 gets preempted for 2ms --\nTime 2: t1 calls to timerfd_settime(5)\nTime 7: timer wakes up t1, results in 2ms lag\n\nSwitching to alarmAt semantics and using TFD_TIMER_ABSTIME to\nschedule the timer solves this problem:\nTime 0: t1 calls to alarmAt(5)\n -- t1 gets preempted for 2ms --\nTime 2: t1 calls to timerfd_settime(5)\nTime 5: timer wakes up t1\n\nBug: 159884130\nTest: bouncy ball with simulated scheduling delays\n\nChange-Id: I3d727530c2dd47c1a8d1d6a66114d654d7261d87\nMerged-In: I3d727530c2dd47c1a8d1d6a66114d654d7261d87\n"
    },
    {
      "commit": "acfe554b2a8351cea95ea4b963600ffe8e145b20",
      "tree": "d47860b88d35ca392d4d1e5256c1add36c4c9db5",
      "parents": [
        "ae8cd5544082e91d9eb1e05e9e2013a37a748d0b"
      ],
      "author": {
        "name": "Kevin DuBois",
        "email": "kevindubois@google.com",
        "time": "Thu Jul 16 10:21:36 2020 -0700"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Fri Oct 16 20:34:47 2020 +0000"
      },
      "message": "VSR: dispatch cbs skipped due to timer lag.\n\nIf the timer has a lot of lag relative to the intended wakeup time,\nthere could be two callbacks that should be dispatched during this\nwakeup, not just one, with the additional callback being woken up being\nthe one that was skipped because of the timer lag.\n\nFixes: 159884130\nTest: 1 new unit test\nTest: uibench a/b\n\nChange-Id: Ia17bc5a09a085fcb334226849214e5247e010b37\nMerged-In: Ia17bc5a09a085fcb334226849214e5247e010b37\n"
    },
    {
      "commit": "516068ee7e63fb236586d81ccf8e78a87b34c600",
      "tree": "77b3a2fd7858aaf878d3c911e15aef9c25d1c6ca",
      "parents": [
        "79ce21afee467ac83d7d9ee3a449c78cb329032d",
        "518751393161bed90f0dae4a522272deaa98a066"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 13 03:31:28 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 13 03:31:28 2020 +0000"
      },
      "message": "Merge \"Merge ab/6749736 in stage.\" into stage-aosp-master"
    },
    {
      "commit": "be23210bbe41644c8ca6378cc292439543db82b5",
      "tree": "9f37fea80160410d349c11d1bc2b32c157c93266",
      "parents": [
        "354a51c863c9c5523f2080470b65357f5b2f89f4",
        "4b2268c76aa62dc04e84dcaa5aefc96d32296a99"
      ],
      "author": {
        "name": "Linzhao Ye",
        "email": "lzye@google.com",
        "time": "Sat Oct 10 18:47:47 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Oct 10 18:47:47 2020 +0000"
      },
      "message": "Merge changes from topic \"ToupadPointerCapture\"\n\n* changes:\n  Revise RELATIVE_X and RELATIVE_Y motion ranges documentation.\n  Populate RELATIVE_X and RELATIVE_Y motion range for touchpad pointer capture mode.\n  Fix MultiTouchInputMapperTest#Process_TouchpadCapture test failure.\n  Add relative field to captured cursor device\n  Add relative coordinates for touchpad events.\n  Support \"pointer\" capture for touchpads\n  Allow touch if some pointers are MT_TOOL_PALM\n  Convert TouchInputMapper enums to enum classes.\n"
    },
    {
      "commit": "4b2268c76aa62dc04e84dcaa5aefc96d32296a99",
      "tree": "f6c1c4c9fba8f98722f8eeb45c94111f0ce3938c",
      "parents": [
        "1fb45302604d93f26b5dcf3dddf6795540df478d"
      ],
      "author": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Tue Sep 15 17:17:34 2020 -0700"
      },
      "committer": {
        "name": "Linzhao Ye",
        "email": "lzye@google.com",
        "time": "Sat Oct 10 05:01:44 2020 +0000"
      },
      "message": "Revise RELATIVE_X and RELATIVE_Y motion ranges documentation.\n\nRevise documentation for motion ranges of RELATIVE_X and RELATIVE_Y axes.\n\nBug: 117859192\nTest: atest inputflinger_tes\nChange-Id: I3a02400eb648fd4d5dc96a21c5d929e4f9a2428a\nMerged-In: I3a02400eb648fd4d5dc96a21c5d929e4f9a2428a\n"
    },
    {
      "commit": "1fb45302604d93f26b5dcf3dddf6795540df478d",
      "tree": "d6e252017d38dede1198e05e9a02caa0e7a1f460",
      "parents": [
        "dca44af78b0d3bc6b720e01642f6f15408a3b8d8"
      ],
      "author": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Wed Sep 02 22:41:50 2020 -0700"
      },
      "committer": {
        "name": "Linzhao Ye",
        "email": "lzye@google.com",
        "time": "Sat Oct 10 05:01:37 2020 +0000"
      },
      "message": "Populate RELATIVE_X and RELATIVE_Y motion range for touchpad pointer capture mode.\n\nWhen input device is set to touchpad pointer capture mode, Populate\ndevice info with motion range of RELATIVE_X and RELATIVE_Y axes.\n\nBug: 117859192\nTest: atest inputflinger_tests\n\nChange-Id: Ic963d0e718c669bd26dd7c83fba814fa29905fa6\nMerged-In: Ic963d0e718c669bd26dd7c83fba814fa29905fa6\n"
    },
    {
      "commit": "dca44af78b0d3bc6b720e01642f6f15408a3b8d8",
      "tree": "e7d9f8b32e28e97e1d0ce65260eb8563daaa4a10",
      "parents": [
        "611712ae14fd8d9810dff04cfb2d419ee77b9493"
      ],
      "author": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Wed Aug 05 15:07:56 2020 -0700"
      },
      "committer": {
        "name": "Linzhao Ye",
        "email": "lzye@google.com",
        "time": "Sat Oct 10 05:01:28 2020 +0000"
      },
      "message": "Fix MultiTouchInputMapperTest#Process_TouchpadCapture test failure.\n\nDo not consume raw event because of checking inside surface pass,\nif device mode is unscaled. This will prevent the first motion event\nto be consumed unexpectedly for touchpad pointer capture mode.\n\nBug: 162974380\nTest: atest MultiTouchInputMapperTest#Process_TouchpadCapture\nChange-Id: I3c5b0a4514d67990540967d7fa3d6b48011d3884\nMerged_In: I3c5b0a4514d67990540967d7fa3d6b48011d3884\n"
    },
    {
      "commit": "611712ae14fd8d9810dff04cfb2d419ee77b9493",
      "tree": "3f225805817a13e11cd18cc9dd59d0b44b7d638f",
      "parents": [
        "50908afd6e18b57b55def0e4a6972f8777db2021"
      ],
      "author": {
        "name": "Nathaniel R. Lewis",
        "email": "nathaniel.lewis@sony.com",
        "time": "Wed Aug 21 04:56:10 2019 +0000"
      },
      "committer": {
        "name": "Linzhao Ye",
        "email": "lzye@google.com",
        "time": "Sat Oct 10 05:01:19 2020 +0000"
      },
      "message": "Add relative field to captured cursor device\n\nMice by their nature are relative devices, there is no concept of an\nabsolute position of the physical device. Pointer capture is designed\nto provide apps the ability to get the raw motion of the mouse,\nhowever, the relative motion of the mouse is provided in the AXIS_X/Y\nfields, which are canonically used for absolute positions of touches\nor cursors on the display.\n\nThis patch copies these relative values into the AXIS_RELATIVE_X/Y\nfields so that apps that want exclusive relative information from a\ncaptured input device can use the same field for both mice and\ntouchpads.\n\nTest: connect a mouse to an android device and capture the pointer\n      within an app. MotionEvents from onCapturedPointerEvent() should\n      contain AXIS_RELATIVE_X/Y fields identical to the AXIS_X/Y\n      field.\n\nBug: 38511270\nChange-Id: Ib1dffb68411a5c632658715ab940bcf07d5181b8\nMerged-In: Ib1dffb68411a5c632658715ab940bcf07d5181b8\n"
    },
    {
      "commit": "50908afd6e18b57b55def0e4a6972f8777db2021",
      "tree": "889990ae3651bf6ff9767b65ec6cf0df0c5b072f",
      "parents": [
        "eba157bc566c7fe076e8cdae521891fff3e8758a"
      ],
      "author": {
        "name": "Nathaniel R. Lewis",
        "email": "nathaniel.lewis@sony.com",
        "time": "Wed Aug 21 04:46:29 2019 +0000"
      },
      "committer": {
        "name": "Linzhao Ye",
        "email": "lzye@google.com",
        "time": "Sat Oct 10 04:59:50 2020 +0000"
      },
      "message": "Add relative coordinates for touchpad events.\n\nBy their nature, touchpad devices deal in absolute coordinates. It\nmay prove useful for app developers to receive information about how\ntouches have changed position since the last event.\n\nTest: connect a device that android classifies as a touchpad (such\n      as a DualShock 4 in touchpad capture mode). MotionEvents\n      received in an app should have valid content in AXIS_RELATIVE_X\n      and AXIS_RELATIVE_Y fields.\n\nBug: 38511270\nChange-Id: Ic96323464af6f11027fbf36ee00e5d226c1b8626\nMerged-In: Ic96323464af6f11027fbf36ee00e5d226c1b8626\n"
    },
    {
      "commit": "eba157bc566c7fe076e8cdae521891fff3e8758a",
      "tree": "c6b9f7adb2942464e449bf38a26fa293fe28eda1",
      "parents": [
        "6560004049cc969ac62a906d1814ce5cdaa00345"
      ],
      "author": {
        "name": "Nathaniel R. Lewis",
        "email": "nathaniel.lewis@sony.com",
        "time": "Thu Feb 22 13:31:42 2018 -0800"
      },
      "committer": {
        "name": "Linzhao Ye",
        "email": "lzye@google.com",
        "time": "Sat Oct 10 04:59:19 2020 +0000"
      },
      "message": "Support \"pointer\" capture for touchpads\n\nIn N, pointer capture was added such that the input events from\ndevices such as mice could be captured directly without UI\ninteraction for applications such as games.\n\nAt present, pointer capture is only supported on cursor input\ndevices (mice, trackballs), but games and similar applications\ncould also easily want to use a touchpad in a similar fashion.\n\nThis patch adds support for \"pointer\" capture on touchpads.\n\nChanges:\n\nIf pointer capture is enabled, disable pointer mode for pointer\ndevices, causing them to fall back on a raw, unscaled mode. Android\nalready reports events from such devices via onGenericMotionEvent().\n\nAndroid assumes that all pointer devices have an associated display,\nso a condition was added to viewport calculation to fall back on a\nnon display viewport (raw dimensions) if the device is operating in\nunscaled mode.\n\nAdded pointer capture mode changes to reconfiguration condition\ncheck.\n\nAdded InputReader test demonstrating the concept.\n\nTest: Connect a touchpad.  Request pointer capture for a focused\n      view in an app and the touchpad events should come out over\n      onGenericMotionEvent(MotionEvent).\n\nTest: atest inputflinger_tests:MultiTouchInputMapperTest#Process_TouchpadCapture\nTest: atest inputflinger_tests:MultiTouchInputMapperTest#WhenCapturedAndNotCaptured_GetSources\n\nBug: 38511270\nChange-Id: I387708aad2d8bbe1e921fcb177f687af948dd052\nMerged-In: I387708aad2d8bbe1e921fcb177f687af948dd052\n"
    },
    {
      "commit": "6560004049cc969ac62a906d1814ce5cdaa00345",
      "tree": "91de8ed38743e6e45d539a2adfba27d1932aa26d",
      "parents": [
        "aff169e9c599455e67380fcb890a13de10a2da36"
      ],
      "author": {
        "name": "arthurhung",
        "email": "arthurhung@google.com",
        "time": "Thu Apr 30 17:55:40 2020 +0800"
      },
      "committer": {
        "name": "Linzhao Ye",
        "email": "lzye@google.com",
        "time": "Sat Oct 10 04:58:51 2020 +0000"
      },
      "message": "Allow touch if some pointers are MT_TOOL_PALM\n\nWe would cancel all touch when we recevied MT_TOOL_PALM because it\nbecomes accidental touch, and that would break user gesture when\nanother non-palm pointer is still active.\n\n- Send ACTION_POINTER_UP with AKEY_EVENT_FLAG_CANCELED when recevie\n  MT_TOOL_PALM if at least 2 pointers are active.\n- Send ACTION_CANEL when receive MT_TOOL_PALM if only one pointer.\n- Add test caseis for touch cancel scenarios, to test it would keep\n  dispatching non-palm event.\n\nTest: atest inputflinger_tests\nBug: 137221719\nChange-Id: Ife35a692c71e45159bfcc771317dff47fa764dda\nMerged-In: Ife35a692c71e45159bfcc771317dff47fa764dda\n"
    },
    {
      "commit": "aff169e9c599455e67380fcb890a13de10a2da36",
      "tree": "b7c5cd5df6a5938c1e081c9eac652e05fa2bd69c",
      "parents": [
        "dd99c310c0594c0dfd7eeaa50bbe20b425044924"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Jul 02 18:30:52 2020 +0100"
      },
      "committer": {
        "name": "Linzhao Ye",
        "email": "lzye@google.com",
        "time": "Fri Oct 09 22:56:29 2020 +0000"
      },
      "message": "Convert TouchInputMapper enums to enum classes.\n\nAlso, drop virtual for override methods. The override keyword requires\na method to both be virtual and overriding a parent\u0027s virtual method, so\nhaving both is redundant.\n\nBug: 160010896\nTest: atest InputReader_test.cpp\nChange-Id: Ia36e0fa95068531e5e23c3932b7c190dfa40ecd9\nMerged-In: Ia36e0fa95068531e5e23c3932b7c190dfa40ecd9\n"
    },
    {
      "commit": "518751393161bed90f0dae4a522272deaa98a066",
      "tree": "179a5910e4506e0859990ad559ded613f301038e",
      "parents": [
        "6653a7b4ddbfc61f053aae7e9a8a55f1a3d0976a",
        "864d48037d8cee84d0c1a7d9044153c9d757f2e0"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Oct 08 22:58:28 2020 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Oct 08 22:58:28 2020 -0700"
      },
      "message": "Merge ab/6749736 in stage.\n\nBug: 167233921\nMerged-In: Iac158e7721f651cc0d041fd310d01808d549a4db\nChange-Id: Ib8828047260ea745fa9513812b3dbc6b61806d86\n"
    },
    {
      "commit": "c69e2a45aa9a41ed64671725aae920b4629d6dcf",
      "tree": "44823fcfb304fb8fc51a346c0aea5e4aa0a8ac0e",
      "parents": [
        "11c276ec69142d9868f6bd163982427809276e5f"
      ],
      "author": {
        "name": "Anthony Stange",
        "email": "stange@google.com",
        "time": "Thu Jul 09 09:35:29 2020 -0400"
      },
      "committer": {
        "name": "Anthony Stange",
        "email": "stange@google.com",
        "time": "Thu Oct 01 09:16:32 2020 -0400"
      },
      "message": "Don\u0027t quantize max range with a resolution of 0\n\nSensors without a default resolution can be left with a resolution of 0\nduring initialization. Then, when the framework attempted to requantize\nthe max range using the resolution value, it would perform a\ndivide-by-zero operation. Encapsulate this logic with a check of the\nresolution value to ensure this case doesn\u0027t occur.\n\nBug: 160862405\nTest: Run on device and verify no crashes occur.\nMerged-In: I6ab02072a11078f05f65b61310d5637743e258ff\nChange-Id: I6ab02072a11078f05f65b61310d5637743e258ff\n(cherry picked from commit ec5b4b1eebd9919ec54ff2d03d17fbf387012d1d)\n"
    },
    {
      "commit": "e88f23af664f9c03f21d80b8f26022b7e70b2f05",
      "tree": "9f0efe833b699fe2c4af1cfc32344c599952797f",
      "parents": [
        "d4c28086bcbaffde7dd5a662ab9d5ab068097a84"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Wed Aug 05 12:50:03 2020 -0700"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Wed Sep 23 20:11:23 2020 +0000"
      },
      "message": "Fix refresh rate callback fan-out for choreographer\n\n* AChoreographer receives refresh rates from DisplayManager\nalready, so there\u0027s no need to default-enable them - AChoreographer only\nneeds to pump an event with the latest refresh rate to wake up looper. This\nalso ensures that AChoreographer\u0027s callbacks are entirely in-sync with\nDisplayManager since there\u0027s no raciness.\n* Instead of re-requesting a config change from SF, instead inject it in\nAChoreographer correctly to save on binder.\n\nBug: 154874011\nBug: 158680912\nBug: 161406626\nBug: 168776852\nTest: while [ true ]; do adb shell service call SurfaceFlinger 1035 i32\n1; adb shell service call SurfaceFlinger 1035 i32 0; and repeatedly\nrotate the home screen with auto-rotate off.\n\nChange-Id: I66abc2e28e60f06987ce3a54be294c94b77524fc\nMerged-In: I66abc2e28e60f06987ce3a54be294c94b77524fc\n"
    },
    {
      "commit": "bf2aa784bb2ee0a27800abc55b6e6b9b77c2e6f4",
      "tree": "796768f8a8470b8de8fb2ab75c3fd6f3a3306f50",
      "parents": [
        "f1d96134672648dd55ee67eb19911cebb19d8e02"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Mon Sep 21 01:25:16 2020 +0800"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Mon Sep 21 08:48:52 2020 +0800"
      },
      "message": "Use the newly introduced whole_program_vtables property\n\n... instead of manually adding -fwhole-program-vtables cflag.\n\nTest: build\nBug: 169004486\nChange-Id: Ie04b0ef3d5621b8304b6c04f92a00411cb0ea3ec\n"
    },
    {
      "commit": "6ba4920c3ac53336b7a6c5f25abeb50bbd9d0f93",
      "tree": "04a1adf08a2a9bb06b8e086f5bf65bc1ae11d4b9",
      "parents": [
        "4f77028e9386e75ffbb7f5a5af6ea6e87dfa1e83",
        "ac86719652724733cc75e54225b2c46494a95379"
      ],
      "author": {
        "name": "Max Spector",
        "email": "mspector@google.com",
        "time": "Wed Sep 16 01:20:00 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 16 01:20:00 2020 +0000"
      },
      "message": "Merge \"Adding onTransact method for testing\""
    },
    {
      "commit": "ac86719652724733cc75e54225b2c46494a95379",
      "tree": "9276f335ba473c2b9121fd2c7fa59f2fcbe74bb8",
      "parents": [
        "e51e48b0f04d5ef2350308dde2a118cad690723b"
      ],
      "author": {
        "name": "Eduardo Rocha",
        "email": "edro@google.com",
        "time": "Mon Sep 14 20:12:17 2020 +0000"
      },
      "committer": {
        "name": "Eduardo Rocha",
        "email": "edro@google.com",
        "time": "Tue Sep 15 21:12:17 2020 +0000"
      },
      "message": "Adding onTransact method for testing\n\nTest: Tested locally for fuzzing\nChange-Id: Ieadc20860e1f235b8f7cb6eda40c74d286b3d86b\n"
    },
    {
      "commit": "059b153d5f8c7a3247227830c3b564fad56440bf",
      "tree": "93abafccb75c1bef3bc7cc20be68a717fec8915b",
      "parents": [
        "c9c9a268e6939e3295aceac33f203723aaeacc7a",
        "0ff8bc9d517927e25017800267c713c97a1c0889"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 15 08:36:12 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 15 08:36:12 2020 +0000"
      },
      "message": "Merge \"Freeze SurfaceFlingerProperties API\""
    },
    {
      "commit": "c9c9a268e6939e3295aceac33f203723aaeacc7a",
      "tree": "15786a58462abe2a43bb9516446e71dca173568b",
      "parents": [
        "0ea24d2fcd2df2e58391d0d8a3d6b5f96e769799",
        "f66b752e5df7d7842a097f2b99b1c452ace822bb"
      ],
      "author": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Mon Sep 14 18:11:55 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 14 18:11:55 2020 +0000"
      },
      "message": "Merge \"Using DoAll\""
    },
    {
      "commit": "0ff8bc9d517927e25017800267c713c97a1c0889",
      "tree": "77afccf3af17940cdac425a03007a64a4e928be2",
      "parents": [
        "e51e48b0f04d5ef2350308dde2a118cad690723b"
      ],
      "author": {
        "name": "Inseob Kim",
        "email": "inseob@google.com",
        "time": "Mon Sep 14 13:47:26 2020 +0900"
      },
      "committer": {
        "name": "Inseob Kim",
        "email": "inseob@google.com",
        "time": "Mon Sep 14 13:50:23 2020 +0900"
      },
      "message": "Freeze SurfaceFlingerProperties API\n\nBug: 145259948\nTest: m SurfaceFlingerProperties-check-api\nChange-Id: I2f80ff2aa27377ab1cfa7d9611b7fc77328b5777\n"
    },
    {
      "commit": "f66b752e5df7d7842a097f2b99b1c452ace822bb",
      "tree": "c04c485cddebb97120d776ffb428c24b6f7da83c",
      "parents": [
        "e51e48b0f04d5ef2350308dde2a118cad690723b"
      ],
      "author": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Thu Sep 10 18:20:30 2020 -0700"
      },
      "committer": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Fri Sep 11 21:33:08 2020 +0000"
      },
      "message": "Using DoAll\n\nThe new googletest correctly put DoAll in testing namespace.\n\nChange-Id: I069adb9c0d29fe51d8170f73b75bca7dc6ebd2ec\n"
    },
    {
      "commit": "33522c452b24d79ae07e9fbc6fa2b668ad6eb194",
      "tree": "f8063acbd8aac75ff9c4d8fc0d67a0b1efe6ed4f",
      "parents": [
        "e51e48b0f04d5ef2350308dde2a118cad690723b"
      ],
      "author": {
        "name": "Luca Stefani",
        "email": "luca.stefani.ge1@gmail.com",
        "time": "Wed Sep 09 08:59:41 2020 +0200"
      },
      "committer": {
        "name": "Luca Stefani",
        "email": "luca.stefani.ge1@gmail.com",
        "time": "Fri Sep 11 12:41:44 2020 +0000"
      },
      "message": "SurfaceFlingerProperties: Use proper prop scope\n\n* System scope is deperecated,\n  Public scope should be used instead\n\nTest: m\nChange-Id: I758f41c4c6ec31f6781ebe87f8317063763f7134\n"
    },
    {
      "commit": "686662c1f99f18ed4cd84f047c265b5cad3fc6a0",
      "tree": "7aecaf40c76be57e013b5eb81703e008c071a277",
      "parents": [
        "6b7a48e02280ce124bc6741eb6e0c5ccdbf1fbbc",
        "a7aefe69b7c1eb8765c9f0842a63a124cf5ed112"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 08 16:17:05 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Sep 08 16:17:05 2020 +0000"
      },
      "message": "Merge \"Move PropertyMap from libutils to libinput\" am: a7aefe69b7\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1419036\n\nChange-Id: Ibc4c7cc15003794ac40ff56167fa6875bfa2223c\n"
    },
    {
      "commit": "32f36ae05e7407b0beb7623fdb9bf11ebca49546",
      "tree": "3627134414a0a0c9e12a36df8f5b11c84052b4c6",
      "parents": [
        "fa9212316a5067eef37e06e9550647e3dcd97083"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Sep 02 20:17:10 2020 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Sep 03 18:39:10 2020 -0700"
      },
      "message": "Move PropertyMap from libutils to libinput\n\nSince input is the only user of PropertyMap, move it here. This will\nhelp us maintain it (and eventually delete it in favor of xml files).\n\nBug: 163171599\nTest: make only\nChange-Id: I63ae29a2293d82e88581334c83a9b8c6af7a22ee\n"
    },
    {
      "commit": "52dcab05c028729840c9a4df55466d2dd6bce3d2",
      "tree": "9b42cdc10f1bd53f08b97db890ef5b19f196e6f7",
      "parents": [
        "eeabafba1667681738e7e7ed8df581f3c37e50df"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Sep 02 20:46:12 2020 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Sep 02 20:52:31 2020 -0700"
      },
      "message": "DO NOT MERGE Reorder include to remove merge conflict\n\nRearranging these #include directives will allow the child CLs to merge\ncleanly into master.\n\nBug: 163171599\nTest: make only\nChange-Id: I15aaf14b67accc1cd7470f51b40a00af6f1e9076\n"
    },
    {
      "commit": "e8b4e700b8950a07ea4155a31b742254002b7fad",
      "tree": "2d41d10a4615e16694be0eb20487ce96a128e41c",
      "parents": [
        "9592c9d586e606d0d762b4334981159d2236295b",
        "3fab51ee7064bc478ebaeadf068ceb628ca2365a"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Sat Aug 29 01:34:09 2020 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Sat Aug 29 01:34:09 2020 -0700"
      },
      "message": "Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)\n\nBug: 166295507\nMerged-In: I70ea776b8589ac3a7982c710c5c8b2941d86e55b\nChange-Id: Ic1d535e9d2d6f80d95215240dbdb024995b045f8\n"
    },
    {
      "commit": "739068c9bf237013018041e75ba235051531298a",
      "tree": "cf73a4a5fdaac5c7d46efba58d0083d870fb2dad",
      "parents": [
        "39b6ba3736f76f1bb30943152a782c6f7438cbd5",
        "39e5ccb9098bbd6b4c9c87c91f4fac3aa245c886"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 21 01:44:35 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Aug 21 01:44:35 2020 +0000"
      },
      "message": "Merge \"Revert \"Temporarily turn off ASAN for libcompositionengine_test\"\" am: 39e5ccb909\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1404869\n\nChange-Id: Id03649133f73c59a9761843d1cde70c9a3d10cdd\n"
    },
    {
      "commit": "d3e75896f98990aaa24b496da10d6a838d58ad00",
      "tree": "729cb3655910d75f93ed9a7107e55284a09cc308",
      "parents": [
        "02d7e69f93368a9cd7aa5259471f202662fe5719"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Wed Aug 19 08:52:56 2020 -0700"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Wed Aug 19 09:03:50 2020 -0700"
      },
      "message": "Revert \"Temporarily turn off ASAN for libcompositionengine_test\"\n\nThis reverts commit 2e8910eed98aa89455d1e0f9947b599318d0f156.\n\nThis turns ASan support back on for this test, since the bug preventing\nit has been fixed in a prior toolchain release.\n\nBug: http://b/139747256\nBug: http://b/131328001\nTest: atest libcompositionengine_test\n\nChange-Id: Id446b760c5d39a19f51144b09aa1484b644f3dfd\n"
    },
    {
      "commit": "864d48037d8cee84d0c1a7d9044153c9d757f2e0",
      "tree": "6d2519955d3eae608d7ef768abbcb1ee8513330f",
      "parents": [
        "b8b825be267ddfbae05f01579830c0acabcbf17f",
        "c080030e715082f7a910066bbcd8cc7a3a8500eb"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Aug 07 23:07:34 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Aug 07 23:07:34 2020 +0000"
      },
      "message": "Fix refresh rate callback fan-out for choreographer am: c080030e71\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/12329047\n\nChange-Id: Iac158e7721f651cc0d041fd310d01808d549a4db\n"
    },
    {
      "commit": "c080030e715082f7a910066bbcd8cc7a3a8500eb",
      "tree": "d6579862669cfd5249a433405726603cf77412f4",
      "parents": [
        "140f65189fd2aaa43bc991556a9678a4ff981731"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Wed Aug 05 12:50:03 2020 -0700"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Aug 07 20:59:20 2020 +0000"
      },
      "message": "Fix refresh rate callback fan-out for choreographer\n\n* AChoreographer receives refresh rates from DisplayManager\nalready, so there\u0027s no need to default-enable them - AChoreographer only\nneeds to pump an event with the latest refresh rate to wake up looper. This\nalso ensures that AChoreographer\u0027s callbacks are entirely in-sync with\nDisplayManager since there\u0027s no raciness.\n* Instead of re-requesting a config change from SF, instead inject it in\nAChoreographer correctly to save on binder.\n\nBug: 154874011\nBug: 158680912\nBug: 161406626\nTest: while [ true ]; do adb shell service call SurfaceFlinger 1035 i32\n1; adb shell service call SurfaceFlinger 1035 i32 0; and repeatedly\nrotate the home screen with auto-rotate off.\n\nChange-Id: I66abc2e28e60f06987ce3a54be294c94b77524fc\nMerged-In: I66abc2e28e60f06987ce3a54be294c94b77524fc\n"
    },
    {
      "commit": "140f65189fd2aaa43bc991556a9678a4ff981731",
      "tree": "b3b12760f9c2172d58e3a7ef0d2dcdfe3a1290d2",
      "parents": [
        "bad1977db570ac0d137118b37eb10ba2728982ad",
        "916c766b31ec99bf57a5249d7a0d3eaf553e24d0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 03 22:25:08 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Aug 03 22:25:08 2020 +0000"
      },
      "message": "Merge \"GpuService: secure setUpdatableDriverPath\" into rvc-dev am: 916c766b31\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/12257974\n\nChange-Id: I630ad28304ca52e8c2d9cc759b2f93b3d204d87b\n"
    },
    {
      "commit": "cb53d839f8e6fcbe2e56b71d0b8d11cc85e58a41",
      "tree": "986463f6ecf550d55316ec0e3cb3d91cc7cb5d69",
      "parents": [
        "2ef7695bf4784a5f17b186345d697b77d479a3fe",
        "c050d1e648ec5c8b163563162b16c042c84e4a07"
      ],
      "author": {
        "name": "Lihao Liang",
        "email": "lihaoliang@google.com",
        "time": "Sat Aug 01 00:44:32 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Aug 01 00:44:32 2020 +0000"
      },
      "message": "Merge \"Update language to comply with Android\u0027s inclusive language guidance\" am: 6ec9ae5431 am: 0cbee5918d am: c050d1e648\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1384296\n\nChange-Id: If9712eb750efcc971d12232daf5048adce10bb82\n"
    },
    {
      "commit": "c050d1e648ec5c8b163563162b16c042c84e4a07",
      "tree": "3fef17b99ca1897b5c32595652f19a893a507153",
      "parents": [
        "4ce5ecc37eac0b43fffc65c0f96c93deefaa356c",
        "0cbee5918d6603d0c92861f6ed16a6cb0192a862"
      ],
      "author": {
        "name": "Lihao Liang",
        "email": "lihaoliang@google.com",
        "time": "Sat Aug 01 00:19:03 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Aug 01 00:19:03 2020 +0000"
      },
      "message": "Merge \"Update language to comply with Android\u0027s inclusive language guidance\" am: 6ec9ae5431 am: 0cbee5918d\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1384296\n\nChange-Id: Ic373dc2b37443c42d8b0d22c33cda9ffe4152c22\n"
    },
    {
      "commit": "0cbee5918d6603d0c92861f6ed16a6cb0192a862",
      "tree": "aeeed0fadf0fe08ff495233f5f67d5b1b51d6773",
      "parents": [
        "c181a1e8d4abd461b97ff75bd2342cbd688f3108",
        "6ec9ae543103ba0a6ea2ada1c5b972c51a305051"
      ],
      "author": {
        "name": "Lihao Liang",
        "email": "lihaoliang@google.com",
        "time": "Fri Jul 31 23:47:20 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jul 31 23:47:20 2020 +0000"
      },
      "message": "Merge \"Update language to comply with Android\u0027s inclusive language guidance\" am: 6ec9ae5431\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1384296\n\nChange-Id: I2783f3780ce89d7d6a2850f06bf0c7415a2f4082\n"
    },
    {
      "commit": "73a3c9639795069536eb04c705b394373cbb89d5",
      "tree": "582eb360165ad2298d50d2ff58f1e68c5fc10608",
      "parents": [
        "dd39a292aa7ec2b69c88fec9c7f6a9391ccc17bb"
      ],
      "author": {
        "name": "Lihao Liang",
        "email": "lihaoliang@google.com",
        "time": "Fri Jul 31 21:47:20 2020 +0000"
      },
      "committer": {
        "name": "Lihao Liang",
        "email": "lihaoliang@google.com",
        "time": "Fri Jul 31 23:17:17 2020 +0000"
      },
      "message": "Update language to comply with Android\u0027s inclusive language guidance\n\nSee https://source.android.com/setup/contribute/respectful-code for reference\n\nBUG\u003d161896447\n\nChange-Id: Ib2eece23261c496172d4f3c5d0a8477d7195896f\n"
    },
    {
      "commit": "afe84f6be1f87027315c7ef90abc3de367b01b9d",
      "tree": "2af3679e0c7e67de452bc7c54065886e62fae9a1",
      "parents": [
        "e9d251bb1bcfd6345876f44d198df9d887d06173",
        "42b0a1062a52a57129d986f08a7928ce419240aa"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 29 20:22:25 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jul 29 20:22:25 2020 +0000"
      },
      "message": "Merge \"GpuService: secure setUpdatableDriverPath\" into rvc-dev-plus-aosp am: 42b0a1062a\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/12261498\n\nChange-Id: I6adf7a61bf8ac8dedbc123b19208e83deb95f002\n"
    },
    {
      "commit": "e9d251bb1bcfd6345876f44d198df9d887d06173",
      "tree": "eb318a05fcf73bef2b3f8121f7ebb5d8cdab8059",
      "parents": [
        "c4681987fe78d9d9d5ed5b7631bcf44c8126886c",
        "6da1a17423ae181b0dba26853a0f4057462320d9"
      ],
      "author": {
        "name": "Peiyong Lin",
        "email": "lpy@google.com",
        "time": "Wed Jul 29 20:20:52 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jul 29 20:20:52 2020 +0000"
      },
      "message": "Merge \"Use more inclusive terms.\" into rvc-dev-plus-aosp am: 6da1a17423\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/12255432\n\nChange-Id: Ia17a2ba15af6e06d8fe987821d25c1815e868b4c\n"
    },
    {
      "commit": "42b0a1062a52a57129d986f08a7928ce419240aa",
      "tree": "6cd8cf6e3513e8b872247af68ff837537d731a25",
      "parents": [
        "6da1a17423ae181b0dba26853a0f4057462320d9",
        "b72194dcc4ef715f48629ea47a1fa65832c0a68a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 29 18:25:15 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 29 18:25:15 2020 +0000"
      },
      "message": "Merge \"GpuService: secure setUpdatableDriverPath\" into rvc-dev-plus-aosp"
    },
    {
      "commit": "b72194dcc4ef715f48629ea47a1fa65832c0a68a",
      "tree": "d7c4fd5ecd8aa5a980ff28f9fd06e54cf53ff5b3",
      "parents": [
        "9e5ab12b9b06d4ba58ef5ed0f30f71afb6ebdaa8"
      ],
      "author": {
        "name": "Yiwei Zhang",
        "email": "zzyiwei@google.com",
        "time": "Tue Jul 28 23:11:21 2020 -0700"
      },
      "committer": {
        "name": "Yiwei Zhang",
        "email": "zzyiwei@google.com",
        "time": "Wed Jul 29 16:47:58 2020 +0000"
      },
      "message": "GpuService: secure setUpdatableDriverPath\n\nsetUpdatableDriverPath should only be called by system_server and\ndeveloper driver path needs to be protected by a lock.\n\nBug: 162383705\nBug: 159240322\nTest: ./gapit validate_gpu_profiling --os android\nChange-Id: I48896325598acab89079dbc658ddf9b92d303244\nMerged-In: I48896325598acab89079dbc658ddf9b92d303244\n"
    },
    {
      "commit": "2b65d6ca48773901c396344c5fdc851ec14a4bdf",
      "tree": "ceb2d76fe6d227a4fb5eeb551818316714cb71ea",
      "parents": [
        "df8a0739f7ab42ce59e2370867d26ed2793b6228"
      ],
      "author": {
        "name": "Yiwei Zhang",
        "email": "zzyiwei@google.com",
        "time": "Tue Jul 28 23:11:21 2020 -0700"
      },
      "committer": {
        "name": "Yiwei Zhang",
        "email": "zzyiwei@google.com",
        "time": "Tue Jul 28 23:45:18 2020 -0700"
      },
      "message": "GpuService: secure setUpdatableDriverPath\n\nsetUpdatableDriverPath should only be called by system_server and\ndeveloper driver path needs to be protected by a lock.\n\nBug: 162383705\nBug: 159240322\nTest: ./gapit validate_gpu_profiling --os android\nChange-Id: I48896325598acab89079dbc658ddf9b92d303244\nMerged-In: I48896325598acab89079dbc658ddf9b92d303244\n"
    },
    {
      "commit": "d8460c8a91d6e3721684fa887dc6ffd84e07bd7f",
      "tree": "617269fb3d3eadec68a728307c1663518feb2565",
      "parents": [
        "684928903e572ad3b4fbe1b53fd415f5a2d8ab2a"
      ],
      "author": {
        "name": "Peiyong Lin",
        "email": "lpy@google.com",
        "time": "Tue Jul 28 16:04:22 2020 -0700"
      },
      "committer": {
        "name": "Peiyong Lin",
        "email": "lpy@google.com",
        "time": "Tue Jul 28 18:08:16 2020 -0700"
      },
      "message": "Use more inclusive terms.\n\nBug: b/162288333\nTest: N/A\nChange-Id: I0b7df559b0aa5e7b30908f634cab7190a9fb4def\n"
    },
    {
      "commit": "8020d3782457b85b7a7fd07ab7d95678fd21cbdd",
      "tree": "ff9ce0e622803d7c79bf57114c06dd09c6631fcb",
      "parents": [
        "2293c89c1a352f918d3ecdf77bd8bafe757c8ecd",
        "3fab51ee7064bc478ebaeadf068ceb628ca2365a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 17 19:03:11 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jul 17 19:03:11 2020 +0000"
      },
      "message": "Merge \"Trace acquire fence at queue time instead of at latch time\" into rvc-dev-plus-aosp am: 3fab51ee70\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/12170611\n\nChange-Id: Ifa908e6f70aaa2d42b9b63b4bd4b90345a482c04\n"
    },
    {
      "commit": "6dd9fd763a385adba96c8de6d8919c5b61991e7d",
      "tree": "3ad584087fd21b8596a00184c2658bcc02ade9dc",
      "parents": [
        "bc5927524f36a5291d481b12f5e28bff170a637c"
      ],
      "author": {
        "name": "Adithya Srinivasan",
        "email": "adsrini@google.com",
        "time": "Fri Jun 19 14:57:06 2020 -0700"
      },
      "committer": {
        "name": "Adithya Srinivasan",
        "email": "adsrini@google.com",
        "time": "Thu Jul 16 17:44:41 2020 +0000"
      },
      "message": "Trace acquire fence at queue time instead of at latch time\n\nFor apps that do not use frame pacing, there is a chance that they keep\ndequeueing and queueing a buffer before the SF wake up. In this case,\nthe older queue item gets dropped by SurfaceFlinger if the expected present\ntime of the later submitted buffer gets satisfied. The GPU work still\nhappens for all the submissions however. The acquire fence gets signalled\nwhenever GPU is done with such work. We currently do not trace this\nacquirefence and instead, we trace only the one that gets latched by\nflinger. This behavior can break the new phases UI where the slices are\nformed based on certain assumptions. This change fixes that by tracing\nAcquireFence at queue time instead of latch time.\n\nTest: Take a trace with blur enabled.\nBug: 159472563\nChange-Id: I329a11c53dc18eb5d03df096c19dba5c9704ea4a\n(cherry picked from commit f1e87abccf9b394ab903579c5e0b6ffe3d5da7b4)\n"
    },
    {
      "commit": "48e5bd80007ccfdf5f5a08ff45107ca816779914",
      "tree": "1dd6606673067dcfeb1ad69bd78ae7735c7c6e78",
      "parents": [
        "2d54839781dd1c8b3f786386fb17d97742fca4b7",
        "a7c7360213e8b2969cb465cf488328c212eb22bf"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Sat Jul 11 02:49:06 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jul 11 02:49:06 2020 +0000"
      },
      "message": "Increase touch video buffer size am: a7c7360213\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/12130623\n\nChange-Id: I0516880edc71e9f5eeed7c5855df60d1db5eee8d\n"
    },
    {
      "commit": "a7c7360213e8b2969cb465cf488328c212eb22bf",
      "tree": "7f3f530b1a19fc06da2ecc5665327f29a85e02e7",
      "parents": [
        "f708228c0255cadaa23d9b0a7129c495bd95b818"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Jul 07 10:58:09 2020 -0500"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Jul 10 20:37:58 2020 +0000"
      },
      "message": "Increase touch video buffer size\n\nWe are currently limited to having 10 buffers max inside a\nTouchVideoDevice. That means that if too many frames are generated, we\nwill start dropping them. The dropped frames will never make it to the\nInputClassifier HAL.\n\nNow that touch is at 180 Hz, this becomes even more of a problem. If the\nsystem is running slow, it is easy to overrun the buffer.\n\nIncrease the buffer size to avoid dropping frames.\n\nBug: 160016140\nTest: none\nChange-Id: I3662236a518e908cec94c31bf7604eb830c3308a\nMerged-In: I3662236a518e908cec94c31bf7604eb830c3308a\n(cherry picked from commit 487938ec81c70076852b13d8ee49bf37bfa8290a)\n"
    },
    {
      "commit": "2d54839781dd1c8b3f786386fb17d97742fca4b7",
      "tree": "8b7ec1640a852d9c52708c13b23ca29889ab620b",
      "parents": [
        "a4bf903470aab4e7facae3e97153a512baf0b192",
        "1feaa2a1d15a8edb3c8f0feaa3a806b3f8f16e0f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 10 19:22:07 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jul 10 19:22:07 2020 +0000"
      },
      "message": "Merge \"sf: only look for graphics frame packets when asserting on traces\" into rvc-dev-plus-aosp am: 1feaa2a1d1\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/12125702\n\nChange-Id: Id1dadb3c18f38942095479aacbd5ffd20d944f17\n"
    },
    {
      "commit": "1feaa2a1d15a8edb3c8f0feaa3a806b3f8f16e0f",
      "tree": "1f76a90aef6f21010ddedc2fd60f72e7b86db1cf",
      "parents": [
        "29e1ae6598404ecdaa58b19b8c28ca2145439e31",
        "a371dfa3b8d368265e6e6d5ced55d5dce6315bee"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 10 19:08:57 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 10 19:08:57 2020 +0000"
      },
      "message": "Merge \"sf: only look for graphics frame packets when asserting on traces\" into rvc-dev-plus-aosp"
    },
    {
      "commit": "a4bf903470aab4e7facae3e97153a512baf0b192",
      "tree": "df517f4cc3d1e1058943322d6c59341aeabe27a8",
      "parents": [
        "584e5d9b3fb209bb60e64bf14f7968dd214f1fc3",
        "29e1ae6598404ecdaa58b19b8c28ca2145439e31"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Jul 10 18:46:53 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jul 10 18:46:53 2020 +0000"
      },
      "message": "Avoid TREBLE_TESTING_OVERRIDE am: 29e1ae6598\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/12122483\n\nChange-Id: Ie92c4becc13b42abc7d9dc1b9c6dd340a84e5f65\n"
    },
    {
      "commit": "a371dfa3b8d368265e6e6d5ced55d5dce6315bee",
      "tree": "c311a2f6c6664d58c3c07529ee45ffc1e5ab8e04",
      "parents": [
        "a1a0c516621a6d02d2d9c0816a20565f5a31b684"
      ],
      "author": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Wed Jul 08 16:37:01 2020 +0100"
      },
      "committer": {
        "name": "Lalit Maganti",
        "email": "lalitm@google.com",
        "time": "Fri Jul 10 10:49:14 2020 +0000"
      },
      "message": "sf: only look for graphics frame packets when asserting on traces\n\nAsserting on packet counts leads to extremely brittle tests as it\nprevent the Perfetto team from adding new service-generated packets\nas needed.\n\nInstead, perform all assertions on packets which have already been\nfiltered to contain just packets of relevance to sf - namely\nGraphicsFrameEvent packets.\n\n(this is a cherry-pick of ag/12108746 onto rvc-dev-plus-aosp because\nthe test failure on aosp/1355782 is affecting this branch as well).\n\nChange-Id: I0c323761acd35ca4d3b9e21c2a68d1baefdcd13a\nMerged-In: I0c323761acd35ca4d3b9e21c2a68d1baefdcd13a\n"
    },
    {
      "commit": "29e1ae6598404ecdaa58b19b8c28ca2145439e31",
      "tree": "33b1063cdd76de9587b51ff90eda9ab665b2e82b",
      "parents": [
        "a1a0c516621a6d02d2d9c0816a20565f5a31b684"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Jul 09 23:37:24 2020 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Jul 09 23:37:44 2020 +0000"
      },
      "message": "Avoid TREBLE_TESTING_OVERRIDE\n\nThis is moved from an environmental variable to a function since\ngetenv is problematic in multi-threaded testing environments.\n\nBug: 156668058\nBug: 160796914\nTest: N/A\nChange-Id: Ic90258adad95d3b3c2a6a4758c4e1b5efbedc8fd\n"
    },
    {
      "commit": "935cf8beb3f579946c75872b8f7d271085342596",
      "tree": "8858fab6b0e8f10b2922f9a36a59a224109c18ab",
      "parents": [
        "c4861628f8add6681165ce4cdc769db13e4df414",
        "f708228c0255cadaa23d9b0a7129c495bd95b818"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 09 22:10:10 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jul 09 22:10:10 2020 +0000"
      },
      "message": "Merge \"Check if sensor is accessible on flush\" into rvc-dev am: 9aacd0cffd am: f708228c02\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/12091816\n\nChange-Id: I7e22a33c28e04258d60b3e39e28fb6e80fb36f76\n"
    },
    {
      "commit": "a1a0c516621a6d02d2d9c0816a20565f5a31b684",
      "tree": "5adaf6370cedb6eed2fc81714350496ad47d5155",
      "parents": [
        "1fb9633fb313f51a12056590c9dd35125ddd4b52",
        "9aacd0cffd172b636f55f73fb620375c7c04021f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 09 21:58:57 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jul 09 21:58:57 2020 +0000"
      },
      "message": "Merge \"Check if sensor is accessible on flush\" into rvc-dev am: 9aacd0cffd\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/12091816\n\nChange-Id: I12ccbaa1196db62f1754b6eec9b812a1c76d02ce\n"
    },
    {
      "commit": "f708228c0255cadaa23d9b0a7129c495bd95b818",
      "tree": "61fca4a80d6c794a7b71c577c0976b08986b65d1",
      "parents": [
        "67656958094b60a379507b6a8f1be46f44059562",
        "9aacd0cffd172b636f55f73fb620375c7c04021f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 09 21:58:44 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jul 09 21:58:44 2020 +0000"
      },
      "message": "Merge \"Check if sensor is accessible on flush\" into rvc-dev am: 9aacd0cffd\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/12091816\n\nChange-Id: I7efa988c3c6d7f01d9d50918553ac83d2e7bc8b3\n"
    },
    {
      "commit": "9aacd0cffd172b636f55f73fb620375c7c04021f",
      "tree": "d3cb8bfa5b44587e0ac8d4b0916e30d035158510",
      "parents": [
        "747819d612d6d9ee6620baf932111d44199e2aa1",
        "29adc8ccbea56ca1bd00a054cb8a1f572ff0c114"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 09 21:44:35 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 09 21:44:35 2020 +0000"
      },
      "message": "Merge \"Check if sensor is accessible on flush\" into rvc-dev"
    },
    {
      "commit": "536e09c16479f11654bce1f685c4073dc60a86fb",
      "tree": "90daf6d9b3ef629a19bcb1674cc5a7234951eeb3",
      "parents": [
        "65a74d67dcb2a82c2fe74effa5df06c4339112f0",
        "67656958094b60a379507b6a8f1be46f44059562"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Jul 09 18:37:27 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jul 09 18:37:27 2020 +0000"
      },
      "message": "Merge \"SurfaceFlinger: only ExplicitDefault can use appRequestRange\" into rvc-dev am: 747819d612 am: 6765695809\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/12089386\n\nChange-Id: If231188caa9fe8649df9b32307b4ce76c2b358ee\n"
    },
    {
      "commit": "5993a1af56c2a46820c2b76b0e43447275131c4b",
      "tree": "1454f1c15d6972cc7c41e017088109d3671c6e90",
      "parents": [
        "7bcfb608ee9a3d71c8c9276f7edc46e2374bdd4c",
        "747819d612d6d9ee6620baf932111d44199e2aa1"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Jul 09 18:29:47 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jul 09 18:29:47 2020 +0000"
      },
      "message": "Merge \"SurfaceFlinger: only ExplicitDefault can use appRequestRange\" into rvc-dev am: 747819d612\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/12089386\n\nChange-Id: I9e30ea8c2eaf93b32f1fb7f4941c5e0e4ada7612\n"
    },
    {
      "commit": "67656958094b60a379507b6a8f1be46f44059562",
      "tree": "c6bb872b51b89d4d91dead4e3a6bc23edd3448b9",
      "parents": [
        "e29fcaca9ab7cf58d177a6ce5618c92e0655b7f3",
        "747819d612d6d9ee6620baf932111d44199e2aa1"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Jul 09 18:29:37 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jul 09 18:29:37 2020 +0000"
      },
      "message": "Merge \"SurfaceFlinger: only ExplicitDefault can use appRequestRange\" into rvc-dev am: 747819d612\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/12089386\n\nChange-Id: I74f3a9d8fc9a355b0544d4ce041120cf5dfa44e9\n"
    },
    {
      "commit": "f7adb9a96f727b43ee31fec229d03f8bfd1e15db",
      "tree": "3cabfb51374e0a417fab2c0e7b6a4e9d3a5f9c75",
      "parents": [
        "21dcb37a361061474ec374dceb108c8a6f855d37",
        "d6a1f122cc2b2d46262c2c9b657bb157c8eb4714"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 09 18:23:54 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jul 09 18:23:54 2020 +0000"
      },
      "message": "Merge \"Avoid TREBLE_TESTING_OVERRIDE\" am: 88fdc661b9 am: 1e59efe271 am: d6a1f122cc\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1357927\n\nChange-Id: Iced5c9c348ec60f202e215581e5713874d65a9a2\n"
    },
    {
      "commit": "747819d612d6d9ee6620baf932111d44199e2aa1",
      "tree": "42c71d1d25d23f5bb3d0b9c65a3ec53ed05f4283",
      "parents": [
        "9b2526e50d375d60e5a6a43992649d9bb25c176a",
        "20c029ce8217c2fd0e94ecebb985ed38324328bb"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Jul 09 18:16:05 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 09 18:16:05 2020 +0000"
      },
      "message": "Merge \"SurfaceFlinger: only ExplicitDefault can use appRequestRange\" into rvc-dev"
    },
    {
      "commit": "d6a1f122cc2b2d46262c2c9b657bb157c8eb4714",
      "tree": "0e83e1c50663a8af79451d38b3307e62d009b4ad",
      "parents": [
        "0e9db4a75259e56d71f61a0bfabf40687a62ecf8",
        "1e59efe2711604e45f43f9dc5b6be52f18560f43"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 09 18:13:27 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jul 09 18:13:27 2020 +0000"
      },
      "message": "Merge \"Avoid TREBLE_TESTING_OVERRIDE\" am: 88fdc661b9 am: 1e59efe271\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1357927\n\nChange-Id: I17298a3ff42138a1e3c98d4f3d162c6eaf49ecfa\n"
    },
    {
      "commit": "1e59efe2711604e45f43f9dc5b6be52f18560f43",
      "tree": "3dba2702a96ab807c8d1c996424d3ef449c8e48b",
      "parents": [
        "8ff469661b23efeeab1c44d6265d41c5bf9f335a",
        "88fdc661b92209dd115da725454e0b4b38b31f8d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 09 17:59:44 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jul 09 17:59:44 2020 +0000"
      },
      "message": "Merge \"Avoid TREBLE_TESTING_OVERRIDE\" am: 88fdc661b9\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1357927\n\nChange-Id: I27bb7be59b4347683484f7a849532bde22e6d062\n"
    },
    {
      "commit": "88fdc661b92209dd115da725454e0b4b38b31f8d",
      "tree": "fc68b532579a4066bac097556a06717da9aadac1",
      "parents": [
        "27174df9cc1e06fe062b6071384629d0c8a1b7a3",
        "7c8af94d47bf3e714bce8f01992044533d8d0b79"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 09 17:47:38 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 09 17:47:38 2020 +0000"
      },
      "message": "Merge \"Avoid TREBLE_TESTING_OVERRIDE\""
    },
    {
      "commit": "7c8af94d47bf3e714bce8f01992044533d8d0b79",
      "tree": "76791eb9006916fd5333a31db707279d385121ae",
      "parents": [
        "021f5e9d9d8b78ac3844b72b20dc81f092826590"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Jul 08 18:35:51 2020 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Jul 09 00:33:38 2020 +0000"
      },
      "message": "Avoid TREBLE_TESTING_OVERRIDE\n\nThis is moved from an environmental variable to a function since\ngetenv is problematic in multi-threaded testing environments.\n\nBug: 156668058\nTest: N/A (b/160796914)\nChange-Id: I065a13e295b368150b1a4a1fc87faa2432ec359b\n"
    },
    {
      "commit": "59aa529a5365c0c054444b8b36c2567cb23a7a48",
      "tree": "cebc5fe44246a66c25bd5e960ea2dbdf06ba042c",
      "parents": [
        "6deb290507f427e8c348cb118c4c5771a22d94d1",
        "e29fcaca9ab7cf58d177a6ce5618c92e0655b7f3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 08 03:03:21 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jul 08 03:03:21 2020 +0000"
      },
      "message": "Merge \"SurfaceFlinger: Enable ealy offset for reused client composition\" into rvc-d1-dev am: e29fcaca9a\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/12086962\n\nChange-Id: I17646629f895b6b0f289324e51f35b1211f40b9d\n"
    },
    {
      "commit": "e29fcaca9ab7cf58d177a6ce5618c92e0655b7f3",
      "tree": "b6e4a6fca17f7b2b65590b086297e2dcad15914e",
      "parents": [
        "58bf1b3535fd88f7d8783893f2827aa6404ee02b",
        "28dee2c582c74dd849483e2ae841251716f71609"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 08 02:41:32 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 08 02:41:32 2020 +0000"
      },
      "message": "Merge \"SurfaceFlinger: Enable ealy offset for reused client composition\" into rvc-d1-dev"
    },
    {
      "commit": "5bb6cfd7b14bc3bbfc613a0d5479efbe7a8ca717",
      "tree": "d093d5e2daa0807d460f2bdce5e38525082b4d5a",
      "parents": [
        "086a996b48b9bfb9b4f9dd186e9bc555c4956591",
        "87099b04c35331af0bceeef07c017dc546fa1a45"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 08 01:55:39 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jul 08 01:55:39 2020 +0000"
      },
      "message": "Merge changes from topics \"pc-enum\", \"pointer_controller\" am: 87099b04c3\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1356005\n\nChange-Id: Ic488bb0dff329b12afe882371be98406add26f6e\n"
    },
    {
      "commit": "086a996b48b9bfb9b4f9dd186e9bc555c4956591",
      "tree": "e09f4ed733b59826f049cb10b718f2ab14e8348f",
      "parents": [
        "a77f6994e74ec2d25472ea3d77706aba65f12aba",
        "a512bfda6d22f0ad8d523a9ea50880a9a89ab463"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Jul 08 01:55:37 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jul 08 01:55:37 2020 +0000"
      },
      "message": "Move PointerController from sp to shared_ptr am: a512bfda6d\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1356587\n\nChange-Id: Ia9dc3eb318db67b625ca88b0a5f93414b0b718c6\n"
    },
    {
      "commit": "20c029ce8217c2fd0e94ecebb985ed38324328bb",
      "tree": "4c2065950953a9dc32401f7488963b8909f63e42",
      "parents": [
        "f4beceb1e8497d18057818c526003bcbe4c3c06e"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Mon Jul 06 12:58:05 2020 -0700"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Wed Jul 08 01:07:20 2020 +0000"
      },
      "message": "SurfaceFlinger: only ExplicitDefault can use appRequestRange\n\nThis change is limiting layers that are ExplicitExactOrMultiple from\nusing a refresh rate outside of the primary range. When these layers\nare visible and there is an interaction with the device, we usually\nchange the refresh rate due to other layers that are animating. Letting\nlayers that are ExplicitExactOrMultiple to pick a refresh rate from the\nextended appRequestRange results in refresh rate changes which are not\ndesired.\n\nBug: 159940172\nTest: YouTube when the device the primary range is restricted\nChange-Id: I6aa60c359d690a92342963cb14bdeece4e6d5c5f\n"
    },
    {
      "commit": "976db0c3a27fcfd8122087a0b1a3936609b98487",
      "tree": "07e4307b24d1fe320e0a1e832855e2e5e5ab91dd",
      "parents": [
        "7a376674ad3b25ca99f28833a310f1b5d4703f8e"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Jul 02 00:00:29 2020 +0100"
      },
      "committer": {
        "name": "Garfield Tan",
        "email": "xutan@google.com",
        "time": "Tue Jul 07 21:56:47 2020 +0000"
      },
      "message": "Move PointerController enums to enum classes.\n\nBug: 160010896\nTest: atest PointerController_test, compile\nChange-Id: Ie5ba68a5082fff6ccc85ab01ff49344b73d0bb1b\nMerged-In: Ie5ba68a5082fff6ccc85ab01ff49344b73d0bb1b\n(cherry picked from commit ca5bede6d18f05e025b3c46c989091bad7895845)\n"
    },
    {
      "commit": "7a376674ad3b25ca99f28833a310f1b5d4703f8e",
      "tree": "6b28c8fd53c07455cf16942f62f6c0b41ba65503",
      "parents": [
        "4efc619e4a458940776300b32cb2a00ef0cd9f86"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Fri Jun 26 20:51:44 2020 +0100"
      },
      "committer": {
        "name": "Garfield Tan",
        "email": "xutan@google.com",
        "time": "Tue Jul 07 18:40:32 2020 +0000"
      },
      "message": "Move PointerController from sp to shared_ptr\n\nBug: 160010896\nTest: atest PointerController_test, atest InputReader_test, manual usage\nChange-Id: Ic43ab94ca76c736fde0d217efeab99b2afd6f622\nMerged-In: Ic43ab94ca76c736fde0d217efeab99b2afd6f622\n(cherry picked from commit 17db18e83fb3d4cdba0dcf25c2bcec350fab3d16)\n"
    },
    {
      "commit": "e6afda3fecc86b4affac9bfd256b80e34e6e1d7e",
      "tree": "5d02b7697e57f9d8395c2deab4e610f2c5a0ecfe",
      "parents": [
        "a512bfda6d22f0ad8d523a9ea50880a9a89ab463"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Jul 02 00:00:29 2020 +0100"
      },
      "committer": {
        "name": "Garfield Tan",
        "email": "xutan@google.com",
        "time": "Tue Jul 07 10:43:14 2020 -0700"
      },
      "message": "Move PointerController enums to enum classes.\n\nBug: 160010896\nTest: atest PointerController_test, compile\nChange-Id: Ie5ba68a5082fff6ccc85ab01ff49344b73d0bb1b\nMerged-In: Ie5ba68a5082fff6ccc85ab01ff49344b73d0bb1b\n"
    },
    {
      "commit": "a512bfda6d22f0ad8d523a9ea50880a9a89ab463",
      "tree": "a29cc040a553eec34c436f9f8288fe435777c84d",
      "parents": [
        "cb64d4e371a8fd2d427a5581be0088811ead84dc"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Fri Jun 26 20:51:44 2020 +0100"
      },
      "committer": {
        "name": "Garfield Tan",
        "email": "xutan@google.com",
        "time": "Tue Jul 07 10:41:16 2020 -0700"
      },
      "message": "Move PointerController from sp to shared_ptr\n\nBug: 160010896\nTest: atest PointerController_test, atest InputReader_test, manual usage\nChange-Id: Ic43ab94ca76c736fde0d217efeab99b2afd6f622\nMerged-In: Ic43ab94ca76c736fde0d217efeab99b2afd6f622\n"
    },
    {
      "commit": "29adc8ccbea56ca1bd00a054cb8a1f572ff0c114",
      "tree": "74e8ead08e6e4383ae0654155719ac91c55fcb8a",
      "parents": [
        "9b2526e50d375d60e5a6a43992649d9bb25c176a"
      ],
      "author": {
        "name": "Stan Rokita",
        "email": "srok@google.com",
        "time": "Mon Jul 06 17:38:03 2020 -0700"
      },
      "committer": {
        "name": "Stan Rokita",
        "email": "srok@google.com",
        "time": "Tue Jul 07 08:30:34 2020 -0700"
      },
      "message": "Check if sensor is accessible on flush\n\nIn cases where halVersion is less than or equal to 1 or the sensor is\nvirtual the sensor service does not first check that the sensor is\naccessible. This was causing failures for tests where a virtual sensor\nwas used because the flush command was not returning error. Now\nINVALID_OPERATION is returned when flush is called on an idle sensor.\n\nTest: set IGNORE_HARDWARE_FUSION to true and cts-tradefed \u0026\u0026 run cts -m\nCtsSensorTestCases -t\nandroid.hardware.cts.SensorTest#testBatchAndFlushUidIdle which fails\nbefore this change, but passes now\nBug: 160282248\n\nChange-Id: I6860bcdb9be341b5e2025caf7606d071779c9b39\n"
    },
    {
      "commit": "a82001555eb1f5c862f26dc99b9cfa4c12f87f82",
      "tree": "9863ed38b5c11446f0a476a4b75f0dc451fd1296",
      "parents": [
        "017f3a1ca63abc4fe4356131fa4e266be79d7912",
        "73a7dc4fed1d00d88982fb08b088b2a76d8962a6"
      ],
      "author": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Tue Jul 07 07:26:18 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jul 07 07:26:18 2020 +0000"
      },
      "message": "Merge android10-qpr3-release to aosp-master - DO NOT MERGE am: 73a7dc4fed\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1355921\n\nChange-Id: I363a1f502831f7fdd95c4075e8ee47b4bfc2f555\n"
    },
    {
      "commit": "73a7dc4fed1d00d88982fb08b088b2a76d8962a6",
      "tree": "a8eaa566a3bd450b08d328c26d07a3acf27c0128",
      "parents": [
        "066ff58724e2750390f8650c6cded3be26a988e1",
        "71e1890b755f126274e8225875050c7b785006e4"
      ],
      "author": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Mon Jul 06 21:37:19 2020 -0700"
      },
      "committer": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Tue Jul 07 04:49:30 2020 +0000"
      },
      "message": "Merge android10-qpr3-release to aosp-master - DO NOT MERGE\n\nChange-Id: I9c79f2cc954260b623ffaeba26e0fc3d84d975fc\n"
    },
    {
      "commit": "28dee2c582c74dd849483e2ae841251716f71609",
      "tree": "39e206411a0445b6b81059395ada4a70ffd13523",
      "parents": [
        "22615145ca07a161a14f16c99cb8ffb2600e0826"
      ],
      "author": {
        "name": "Yichi Chen",
        "email": "yichichen@google.com",
        "time": "Mon Jul 06 21:24:14 2020 +0800"
      },
      "committer": {
        "name": "Yichi Chen",
        "email": "yichichen@google.com",
        "time": "Mon Jul 06 21:35:48 2020 +0800"
      },
      "message": "SurfaceFlinger: Enable ealy offset for reused client composition\n\nIn the condition of reused client composition, SurfaceFlinger still\nneeded to call \u0027validate\u0027 and \u0027presentDisplay\u0027 and resulted in longer\nexecution time. Before we can enable skip validation in this case, we\nneed to provide the early offset to fit HWC behavior.\n\nBug: 160552879\nTest: Check the Vsync offset in PIP\nChange-Id: I6d11c6b1409997f550cf2441bba67de08ffb25a8\n"
    },
    {
      "commit": "7b69963494d1e45ce3fed87042f458a60d2f2428",
      "tree": "a35560ec09b9e24744b410536dc33a30f03765f4",
      "parents": [
        "221885f8b8e1a6219c43dd6cd4a26e54f93f30e0",
        "9b2526e50d375d60e5a6a43992649d9bb25c176a"
      ],
      "author": {
        "name": "Kevin DuBois",
        "email": "kevindubois@google.com",
        "time": "Tue Jun 30 19:26:29 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 30 19:26:29 2020 +0000"
      },
      "message": "Merge \"SF: update VSP timebase on error condition\" into rvc-dev am: 9b2526e50d\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/12014614\n\nChange-Id: I7f86ac5d4723e55e75d6ee5f500e2104dacc906c\n"
    },
    {
      "commit": "9b2526e50d375d60e5a6a43992649d9bb25c176a",
      "tree": "8a9897c09016f3c307574bbd251dd282a1f7a35b",
      "parents": [
        "f4beceb1e8497d18057818c526003bcbe4c3c06e",
        "241d0eed73c96288dd499697c15a1e3eabaad955"
      ],
      "author": {
        "name": "Kevin DuBois",
        "email": "kevindubois@google.com",
        "time": "Tue Jun 30 19:13:21 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 30 19:13:21 2020 +0000"
      },
      "message": "Merge \"SF: update VSP timebase on error condition\" into rvc-dev"
    },
    {
      "commit": "221885f8b8e1a6219c43dd6cd4a26e54f93f30e0",
      "tree": "1550d43afdf87c2a1fe1ae9608468c55aa2e4700",
      "parents": [
        "e3668e11d88411700eba57f6ab8144d0d83e41d0",
        "e667923c1560dedde45d60d8f75bba7397b94ea2"
      ],
      "author": {
        "name": "Inseob Kim",
        "email": "inseob@google.com",
        "time": "Tue Jun 30 11:10:37 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 30 11:10:37 2020 +0000"
      },
      "message": "Merge \"SurfaceFlingerProperties: Use proper prop scope\" am: f9e1a4794a am: e667923c15\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1351060\n\nChange-Id: I32fd1f662e93750fde1adb542eeecb144b09a9c9\n"
    },
    {
      "commit": "e667923c1560dedde45d60d8f75bba7397b94ea2",
      "tree": "0a36381c4563d9e737516f14627f8cb33e7534b8",
      "parents": [
        "c2a36a59c2151a4b4ddb3cb7e16e8f55e2987971",
        "f9e1a4794a29f36711b848ed5bf2026a73e51ecf"
      ],
      "author": {
        "name": "Inseob Kim",
        "email": "inseob@google.com",
        "time": "Tue Jun 30 10:58:15 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 30 10:58:15 2020 +0000"
      },
      "message": "Merge \"SurfaceFlingerProperties: Use proper prop scope\" am: f9e1a4794a\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1351060\n\nChange-Id: Iace4c940b24671316d622b5d8f5d7d19a3355065\n"
    },
    {
      "commit": "241d0eed73c96288dd499697c15a1e3eabaad955",
      "tree": "61e44998e4da897b84b2d2485a6d901f0baa5c25",
      "parents": [
        "b9adcf3bf476d7b2b529a7c21a402590480d4fdd"
      ],
      "author": {
        "name": "Kevin DuBois",
        "email": "kevindubois@google.com",
        "time": "Fri Jun 26 17:00:15 2020 -0700"
      },
      "committer": {
        "name": "Kevin DuBois",
        "email": "kevindubois@google.com",
        "time": "Mon Jun 29 11:59:01 2020 -0700"
      },
      "message": "SF: update VSP timebase on error condition\n\nWhen an vsync timestamp is recorded that is anonmolous to the currently\nrecorded timestamp ringbuffer, update the timebase for synthetic\ncalculations.\n\nTest: 2 new unit tests\nTest: visual spot checking interactions on pixel4 device\nTest: uibench a/b anti-regression\nTest: dogfood with patch based one recent rvc build.\nFixes: 159882858\nChange-Id: Ie201cd593a54586d9b1f488c6d2ca44178d75cf1\n"
    },
    {
      "commit": "ca3c11f80d8f70506bc57213e1df1eaa49390bff",
      "tree": "5f9641b72ad42c8e8aff3dca71c18f3de25ff987",
      "parents": [
        "bd1688f27dc31372052608fe14e3c9a1dd8cd227",
        "18c692ccd16ff35ad3214ee7342feab48a6b3d9e"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Fri Jun 26 23:36:43 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jun 26 23:36:43 2020 +0000"
      },
      "message": "Merge \"SurfaceFlinger: only focused layers can use appRequestRange\" into rvc-dev am: 18c692ccd1\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/12011138\n\nChange-Id: Ifd094ac5b50863738fd7fcb1cd2ce8f5239b5b25\n"
    },
    {
      "commit": "aae5ed5b7ad78f4a6fba62556d875ae95e7f9987",
      "tree": "1d3bbb3903ed342291631ed1c0377182ab235284",
      "parents": [
        "f4facf26144de0efcdb3806e6fc852b5be9c9501"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Fri Jun 26 09:32:43 2020 -0700"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Fri Jun 26 12:56:02 2020 -0700"
      },
      "message": "SurfaceFlinger: only focused layers can use appRequestRange\n\nWhen DisplayManager sets the DisplayConfigsSpecs with a policy\nthat the appRequestRange is broader than the primaryRange,\nit means that an app can choose a refresh rate from the\nappRequestRange and not from the primaryRange only if that app\nexplicitly specified a frame rate using setFrameRate API. However,\nto avoid cases where we switch the refresh rate back and forth from\nthe two ranges, we are allowing only applications that their window\nis focused from WindowManager\u0027s perspective to select refresh rate out\nthe primaryRange. This matches the behavior of an application that sets\nthe preferredDisplayModeId.\n\nBug: 144307188\nBug: 159940172\nTest: adb shell /data/nativetest64/libsurfaceflinger_unittest/libsurfaceflinger_unittest\nTest: YouTube in PIP mode while device is restricted by primaryRange\n\nChange-Id: I26a9690210bb5771bd8aae2bff301031617f7c8f\n"
    },
    {
      "commit": "fbede9718a2d80132ec452f5407ad1b30d797900",
      "tree": "5728d024c7f3d2d73534a0b6b0f9a93bf0407063",
      "parents": [
        "794dc13775bfc2d801e2db869a28261b9bc9b1c9"
      ],
      "author": {
        "name": "Luca Stefani",
        "email": "luca.stefani.ge1@gmail.com",
        "time": "Fri Jun 26 18:58:43 2020 +0200"
      },
      "committer": {
        "name": "Luca Stefani",
        "email": "luca.stefani.ge1@gmail.com",
        "time": "Fri Jun 26 18:58:45 2020 +0200"
      },
      "message": "SurfaceFlingerProperties: Use proper prop scope\n\n* System scope is deperecated,\n  Public scope should be used instead\n\nTest: m\nChange-Id: I9fc658487397f1dfb2175d071736e0bc1eb3ad04\n"
    },
    {
      "commit": "b729c4329177b309ef0432d9fc71561b41a4619e",
      "tree": "10b69541106f788e4a18bc41f887d4dd1673b1dd",
      "parents": [
        "1ff2009bd194fb65bf7b4affe12f9a66bab96e82",
        "31e7a17effe49cf626c233602f718892d756a752"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 25 18:37:27 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jun 25 18:37:27 2020 +0000"
      },
      "message": "Merge \"Clear spam log for INPUT_FEATURE_NO_INPUT_CHANNEL window\" into rvc-dev am: 31e7a17eff\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/11970055\n\nChange-Id: I6d78734ba19c8204dc1e64f65699f4050509c806\n"
    },
    {
      "commit": "31e7a17effe49cf626c233602f718892d756a752",
      "tree": "400a88fd3f271812d1b1c412044e4456db81171b",
      "parents": [
        "de435229e36390f044e14724fd5dda253703a8d6",
        "be737674afd67f67e7053d3c0c87ed5dc61f052d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 25 18:26:17 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 25 18:26:17 2020 +0000"
      },
      "message": "Merge \"Clear spam log for INPUT_FEATURE_NO_INPUT_CHANNEL window\" into rvc-dev"
    },
    {
      "commit": "1ff2009bd194fb65bf7b4affe12f9a66bab96e82",
      "tree": "333d23432dabe058a616a053408f3c6e7ddf0a6b",
      "parents": [
        "7d070e7632106fb1e13457f73a544da750f49422",
        "de435229e36390f044e14724fd5dda253703a8d6"
      ],
      "author": {
        "name": "Rob Carr",
        "email": "racarr@google.com",
        "time": "Thu Jun 25 14:32:02 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jun 25 14:32:02 2020 +0000"
      },
      "message": "Merge \"SurfaceFlinger: Force runHandleTransaction\" into rvc-dev am: de435229e3\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/11991929\n\nChange-Id: I969aba02d76504aca3625193cb6a1928282679b2\n"
    },
    {
      "commit": "de435229e36390f044e14724fd5dda253703a8d6",
      "tree": "d59a86148c106333836af86ed235177dd903cc2f",
      "parents": [
        "017bcd179d70208bb8a3fcbe115f8cfa5e64b794",
        "6417d2e504e6d5ac86b753b3ab9d05a5c20fb838"
      ],
      "author": {
        "name": "Rob Carr",
        "email": "racarr@google.com",
        "time": "Thu Jun 25 14:22:53 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 25 14:22:53 2020 +0000"
      },
      "message": "Merge \"SurfaceFlinger: Force runHandleTransaction\" into rvc-dev"
    },
    {
      "commit": "6417d2e504e6d5ac86b753b3ab9d05a5c20fb838",
      "tree": "3fd8b3d352977c5ecacfb965235ee0a72f54eb2c",
      "parents": [
        "109ad7156997f031717183664ac51a03110bc2b3"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Wed Jun 24 15:26:32 2020 -0700"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Wed Jun 24 15:26:32 2020 -0700"
      },
      "message": "SurfaceFlinger: Force runHandleTransaction\n\nIn the linked bug, there are traces documenting cases where\nthe user observes jank while deferred transactions are in play.\nWe can see several cases where the client gets stuck for a long\ntime on dequeueBuffer. Around these times we can also see cases where\nlatchBuffer aborts early due to the !allTransactionsSignaled condition.\nWe expect all the transactions to be signalled at this point, because\nbefore handlePageFlip we expect to reach handleTransactionLocked,\nwhich should call notifyAvailableFrames, marking the sync points\navailable based on the head frame number. However if we study the trace\nwe also see there is an onMessageInvalidate, which contains\na handlePageFlip but does NOT contain the handleTransaction before it\nwhich we would expect. However we know if onMessageInvalidate calls\nhandlePageFlip (via handleMessageInvalidate) then it must have called\nhandleMessageTransaction, as these two lines are right next to\neachother. We can thus conclude that we see the problem because\nhandleMessageTransaction didn\u0027t call handleTransaction due to\nrunHandleTransaction evaluating to false. This makes sense in the\ncontext of recent changes. Previously deferred transactions would set\nthe transaction flags continuously while they were pending, so the\nserver would always perform transactions when waking up, and we wouldn\u0027t\nget in this condition. However, setting the transaction flags\nalways triggers a wake up! But we don\u0027t actually want to wake up until\nthe frame actually arrives, so first we tried setting the transaction\nflags without triggering a wake up. But we found this could prevent\nother people from triggering wakeups, so a recent CL modified it to\nset mForceTraversal instead. Intending to force that we call\ndoTransaction from handleMessageInvalidate regardless of whether a\nnew transaction has arrived (because we need to check if an old\ntransaction is now ready). However, it didn\u0027t quite work because of this\nearly abort due to runHandleTransaction.\n\nBug: 159677043\nTest: Existing tests pass\nChange-Id: I84f2a9cca2ebb3f59d30924efdb39c917f47111b\n"
    },
    {
      "commit": "be737674afd67f67e7053d3c0c87ed5dc61f052d",
      "tree": "5ca186e14e97ec850df44140998bece96eac86c0",
      "parents": [
        "017bcd179d70208bb8a3fcbe115f8cfa5e64b794"
      ],
      "author": {
        "name": "arthurhung",
        "email": "arthurhung@google.com",
        "time": "Wed Jun 24 12:29:21 2020 +0800"
      },
      "committer": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Wed Jun 24 04:33:05 2020 +0000"
      },
      "message": "Clear spam log for INPUT_FEATURE_NO_INPUT_CHANNEL window\n\nCurrently, in order to detect occlusion input, all buffered layers\nwould update input info into InputFlinger, so the window may contain\nnull token, we should check if id is also identical to prevent get the\nwrong result\n\nBug: 159349058\nTest: Enable show tap, open bubble and watch logs.\nChange-Id: I8412812e9b100988ab380ad64366f2548e50d9e5\n"
    },
    {
      "commit": "c8d91977abee92c6a494140efecd73f2e2dade53",
      "tree": "d1e37482a6dedf77f6c1467ea83510043e1a25ea",
      "parents": [
        "192841f0d27ab5ed027783bbf9cf5229fca386a9",
        "017bcd179d70208bb8a3fcbe115f8cfa5e64b794"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Tue Jun 23 23:26:20 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 23 23:26:20 2020 +0000"
      },
      "message": "Revert \"Clear spam log for INPUT_FEATURE_NO_INPUT_CHANNEL window\" am: 017bcd179d\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/11974384\n\nChange-Id: I1e14a8ee30375bc5b156076d044289b7f6b47236\n"
    },
    {
      "commit": "017bcd179d70208bb8a3fcbe115f8cfa5e64b794",
      "tree": "fc33b34e32328391564e33888d6dc5ca551c5a9f",
      "parents": [
        "80d685aef18683ed175e0a3fddbd8f55a83c788d"
      ],
      "author": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Tue Jun 23 19:12:00 2020 +0000"
      },
      "committer": {
        "name": "Mady Mellor",
        "email": "madym@google.com",
        "time": "Tue Jun 23 23:10:48 2020 +0000"
      },
      "message": "Revert \"Clear spam log for INPUT_FEATURE_NO_INPUT_CHANNEL window\"\n\nThis reverts commit 80d685aef18683ed175e0a3fddbd8f55a83c788d.\n\nReason for revert: seeing if maybe caused regression (b/159719013)\nBug: 159719013\nBug: 159349058\nChange-Id: Iac21f799822bab5c26b9753ed78617e0087810bf\n"
    },
    {
      "commit": "192841f0d27ab5ed027783bbf9cf5229fca386a9",
      "tree": "a448e0e2d814dd6ada0cd424e7915be95f72f098",
      "parents": [
        "260e3e793e369e870e6bcac8b5a5e8de9ee4d30d",
        "80d685aef18683ed175e0a3fddbd8f55a83c788d"
      ],
      "author": {
        "name": "arthurhung",
        "email": "arthurhung@google.com",
        "time": "Tue Jun 23 13:44:28 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 23 13:44:28 2020 +0000"
      },
      "message": "Clear spam log for INPUT_FEATURE_NO_INPUT_CHANNEL window am: 80d685aef1\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/11931262\n\nChange-Id: Iec89556b3a5a98157cba0ab91377dcda10de830d\n"
    },
    {
      "commit": "80d685aef18683ed175e0a3fddbd8f55a83c788d",
      "tree": "e6f04395215b02ba886dee778961b5e7f197830c",
      "parents": [
        "402bbb4a570644c0f0a5cac6c6740db34e759f0b"
      ],
      "author": {
        "name": "arthurhung",
        "email": "arthurhung@google.com",
        "time": "Fri Jun 19 23:35:28 2020 +0800"
      },
      "committer": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Tue Jun 23 02:20:54 2020 +0000"
      },
      "message": "Clear spam log for INPUT_FEATURE_NO_INPUT_CHANNEL window\n\nCurrently, in order to detect occlusion input, all buffered layers\nwould update input info into InputFlinger, so the window may contain\nnull token, we should check if id is also identical to prevent get the\nwrong result.\n\nBug: 159349058\nTest: Enable show tap, open bubble and watch logs.\nChange-Id: Ia1841ba51bce00fc9901fdf7324e8e31d9737082\n"
    }
  ],
  "next": "260e3e793e369e870e6bcac8b5a5e8de9ee4d30d"
}
