)]}'
{
  "log": [
    {
      "commit": "b36016c65f1d1b5846dba0349aab491dbd3a746a",
      "tree": "6ce0e78368d6797988cc9b9745b20de5919bb19f",
      "parents": [
        "4771577a342214ef4f7373a8d37d015749b00347"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 11 08:50:53 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 11 11:29:13 2015 -0700"
      },
      "message": "Cleanups \u0026 simplifications\n\nChange-Id: I5ad5e3b8fe55b1528f2e20c63e5abe51d9e40ff1\n"
    },
    {
      "commit": "ba6adf66d3c44c0aa2fd8a224862ff1901d64300",
      "tree": "8172a893f00caa283cf0386dd3d585ca8fac867c",
      "parents": [
        "004a46eb171bc86a3d40eb8fc6a4d9eed48027c7"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Feb 19 14:36:50 2015 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Feb 20 08:27:38 2015 -0800"
      },
      "message": "Initial attempt at jank-tracking stat collection\n\nIs a bit naive, perhaps overly aggressive, but sorta works\n\nChange-Id: I01a774e00dbe681439c02557d9728ae43c45ce50\n"
    },
    {
      "commit": "d41c4d8c732095ae99c955b6b82f7306633004b1",
      "tree": "dbb2e26c6c5a80c7ccf43e5cd5fb1554cc603555",
      "parents": [
        "8dfaa4904205772cdceee63ef3989bcdedf1a914"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jan 05 15:51:13 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jan 05 16:49:13 2015 -0800"
      },
      "message": "Add overrides and switch to nullptr keyword for all files\n\nAdds remaining missing overrides and nullptr usages, missed due to\nan extreme failure in tool usage.\n\nChange-Id: I56abd72975a3999ad13330003c348db40f59aebf\n"
    },
    {
      "commit": "aa95a88327d9a3ac8a4a00b065b78ac0f28b3a19",
      "tree": "1e2e65ec4a7d28ea3b0a253be0d31eaf397dd005",
      "parents": [
        "b9744c1c1f5e8cc936da7f1832665f77ad5bb18f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Nov 07 11:02:07 2014 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Nov 07 11:02:07 2014 -0800"
      },
      "message": "Have an actual fallback if the surface is lost\n\nBug: 17516789\n\nThis will force a relayout/reinitialize pass if the Surface\nis lost mid-render instead of crashing on the next frame\n\nChange-Id: If08bfa16f740728fa7c05904fa11e26f07b81e2e\n"
    },
    {
      "commit": "cd028f336e36b22dbe8cf623eb5bd2361314495c",
      "tree": "c878aab479fa4b75af024d9169aae04391569700",
      "parents": [
        "5444f3cd92ac42f72f86ba5bcd554e0d88bc265b"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 24 08:44:29 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 24 08:44:29 2014 -0700"
      },
      "message": "Fix contants; RT-enable WebView pt2\n\n Bug: 15838537\n\n * Fix kSync_UIRedrawRequired constant value (woops)\n * Tell CanvasContext that WebView is now rt-safe\n\nChange-Id: Idf15cf21115c2ca24b8ccd00025e8502864cd87c\n"
    },
    {
      "commit": "e4267ea4f20740c37c01bfb6aefcf61fddc4566a",
      "tree": "0d00c8bff43f8b0cbe4284e51299f5ca128c83c3",
      "parents": [
        "79c7de77a7da9cbcb9428ab6203987feb35a427f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 03 15:53:15 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jun 04 12:21:26 2014 -0700"
      },
      "message": "Even FASTER damage calculations!\n\n * Now with more native!\n * Less matrix math thanks to bulk-property-update support!\n * Zero JNI on the View.damageInParent() path!\n * Fully aware of RT-driven animators!\n * Likely full of new and exciting bugs!\n * But it also fixes at least 1 existing invalidate bug!\n\nChange-Id: Ie0773f85a60850ff2668370c58defef2e8aa079f\n"
    },
    {
      "commit": "d72e0a339b54af0c4e731513bbad120dff694723",
      "tree": "ca8ac198de9a0cfeeae1e9e8039e35523e7810c3",
      "parents": [
        "aee470c0232afdac4256d13020fa0cf04f30395c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu May 29 18:56:11 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 30 12:19:33 2014 -0700"
      },
      "message": "Re-jigger layers\n\n Bug: 15185239\n Bug: 15238382\n\n Make DeferredLayerUpdater ref counted so that\n HardwareLayer:finalizer() works non-crashily on\n leaked layers\n Give DeferredLayerUpdater the ability to have a layer destroyer\n set so that leaked layers can still be recycled on the\n RenderThread\n Order layer updates based off of pushLayerUpdate() calls to fix\n issue with nested layers\n\nChange-Id: I4449cee607f7e5126e02fed7464cf48038e3dfdf\n"
    },
    {
      "commit": "fe5e7b7346a54537b980796ceeca66bfdbd05561",
      "tree": "4036571ea103cd41fbd5fe3a805191c1bef9898c",
      "parents": [
        "45d01929291eba56e1bce582192941446b86bf5a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 23 17:42:28 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu May 29 15:00:29 2014 -0700"
      },
      "message": "Enable debug stuffs\n\n Bug: 14596762\n * dumpsys gfxinfo implemented\n * profile GPU visual_bars implemented\n\nChange-Id: Icb948a9d5af5989b5615504d0d76ade64b93ef5b\n"
    },
    {
      "commit": "a5dda645da738da7b4ae15e28fa7d93d3b04b94f",
      "tree": "5ce51af907c91030662b69c37e8ece7a63e041ed",
      "parents": [
        "d30241541c3adcb126bb263ad8596e7902a6b5ae"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu May 22 15:43:54 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 23 12:56:38 2014 -0700"
      },
      "message": "Bag of scheduling tweaks\n\n Bug: 15118640\n\n * Prevent over-stuffing the queue by dropping frames\n * Prevent double-drawing in one pulse by RT by deferring\n   vsync registration until post-draw so that it catches\n   the next vsync pulse instead of the current one\n * Bias vsync race condition towards the UI thread\n * Fix queueDelay to actually work\n\nChange-Id: Ibf584258bd93ebcbba058bd976dc8b307f1c6155\n"
    },
    {
      "commit": "f9be77940e365036fecd8cc0e491e8545c34e79b",
      "tree": "1f15905e518d09309bb35b863d7697deb2975f78",
      "parents": [
        "5d039c458c67e8c08334e597a6a8781eda6aab13"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 02 18:21:16 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon May 05 12:35:30 2014 -0700"
      },
      "message": "Make RenderNodeAnimator and WebView play nice\n\nChange-Id: Ifaefcf510b2d377663fc86f60608d6ec9be8329a\n"
    },
    {
      "commit": "18f16e6fba74eda173e1e7c869e6e2e2acc073ff",
      "tree": "d1ed13d4ea22a86109a09c309efb7e3d9c79112c",
      "parents": [
        "29e594c520e22b94b540873f72312614cc3fdca1"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 02 16:46:41 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon May 05 10:57:04 2014 -0700"
      },
      "message": "TIME LORD!\n\n Bug: 14444180\n\nChange-Id: I68bec3807c4d1c88d5af1aec2fe6907d60b5f2f3\n"
    },
    {
      "commit": "e45b1fd03b524d2b57cc6c222d89076a31a08bea",
      "tree": "31ad10387f2b59b3ee9d4396be44fce67228ca75",
      "parents": [
        "627aad9c200cb19aa505504dcd232a3710e96a25"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Apr 15 09:50:16 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Apr 29 10:42:11 2014 -0700"
      },
      "message": "RenderThread animator support\n\nChange-Id: Icf29098edfdaf7ed550bbe9d49e9eaefb4167084\n"
    },
    {
      "commit": "8ca3eecc2b7fe507d3482745efc4cd2567ad15a1",
      "tree": "804a5343674ab583447d7886e0197088cdd916e6",
      "parents": [
        "2271a91c327cee8a6c1dffcbfd3419c95d56c37e"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 10 10:28:45 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 10 10:46:55 2014 -0700"
      },
      "message": "Remove sync flush\n\n Bug: 13952590\n It was attempting to flush state changes after the canvas was\n destroyed, which caused layer updates to crash.\n\n Due to the removal of SetDisplayListData, the sync mode isn\u0027t able\n to do anything ever, so remove it.\n\nChange-Id: I1e18ce288d81fd47cc6e612afda9476f75ecef2e\n"
    },
    {
      "commit": "f4198b713e43c0c0f9adac74203cf24c2a49b802",
      "tree": "ed1e56915cfd87dbc949d72a49ccaf3ee122881b",
      "parents": [
        "8e1f918738abf70a4dc86dbb12b386a9deea37f8"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 09 17:00:04 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 09 17:00:04 2014 -0700"
      },
      "message": "Merge hasFunctors \u0026 pushStaging into prepareTree\n\n Bug: 13902607\n Fixes synchronous mode for WebView in HardwareLayers\n\nChange-Id: I90de1e26dcfd9b75cc2f03bac72705fc23237b68\n"
    },
    {
      "commit": "8de65a8e05285df52a1e6f0c1d5616dd233298a7",
      "tree": "267faf9277b441030b6276ca6a3a34424bb9aee8",
      "parents": [
        "10bdb4b9e966f0a3d8e1099bf8eff4c41c31981c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 09 15:23:38 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 09 15:48:00 2014 -0700"
      },
      "message": "Switch DisplayListData to a staging model\n\n Bug: 13912977\n\nChange-Id: I5b2f664e797be22a58300964f57ceb4fab60528c\n"
    },
    {
      "commit": "087bc0c14bdccf7c258dce0cdef46a69a839b427",
      "tree": "cab73aeed8e9a0bc8e74243a35c026ab0b321e08",
      "parents": [
        "ce16215d7b4d9bedfc62e172dc44ab439afef13a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 04 16:20:08 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 07 14:53:08 2014 -0700"
      },
      "message": "Refcount RenderNode\n\nChange-Id: I7a86db8acc2b78ef33d987a43a119f5933d7d752\n"
    },
    {
      "commit": "668f0e38ef0277d55d3118af37e17b8c435df85c",
      "tree": "d0703be6cce376c8a982d7c491445d2e94009375",
      "parents": [
        "bcad68ad80e5a44e5dc6988eddb8acabdc01a737"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 26 15:10:40 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 27 10:00:04 2014 -0700"
      },
      "message": "Async drawing!\n\nChange-Id: I7e728356f58af88174328a8c0b90d27b128bfe01\n"
    }
  ]
}
