)]}'
{
  "log": [
    {
      "commit": "e07a91a8dbcadd9898fdea0bc19ddb55014f3eeb",
      "tree": "c9d870396e31cc5a4de22f555d3acab3b48a0fa2",
      "parents": [
        "a017e573b5a900f6d7e0f1c6e4ed01fd569cc89f"
      ],
      "author": {
        "name": "Matt Sarett",
        "email": "msarett@google.com",
        "time": "Tue Apr 18 18:09:52 2017 -0400"
      },
      "committer": {
        "name": "Matt Sarett",
        "email": "msarett@google.com",
        "time": "Wed Apr 19 12:38:30 2017 +0000"
      },
      "message": "Add unit test for Skia path behavior\n\nTest: This is a test.\nBug: 35369941\n\nChange-Id: Iaf21d3a903702f81a20e08e8b50b782f311ce7f3\n"
    },
    {
      "commit": "190fe086df0c3a054e09dafc6fe459b929af0756",
      "tree": "336dac77e027f6d1593861ec7be45748a0a041d1",
      "parents": [
        "2b499e4eba123baeb1ed7ba884c842623970ebd4",
        "f7d98f436cf1351cb479e0abd6af7056553a6fa9"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Tue Apr 18 16:06:35 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 18 16:06:41 2017 +0000"
      },
      "message": "Merge \"Remove round rect clipping optimization.\" into oc-dev"
    },
    {
      "commit": "c84824942db6c37343a3580c23308e2f07037267",
      "tree": "aec423055385810e02845419fedf6bd76880a5b0",
      "parents": [
        "3b41407f1908cea425b753003b31a16b49bad822"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Apr 17 13:58:21 2017 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Apr 17 13:58:22 2017 -0700"
      },
      "message": "Disable crashing drop shadow tests\n\nBug: 36272398\nTest: HWUI unit tests now run without crashing\n\nChange-Id: I2877ed184640e5043d33b10605db71dde501fd2a\n"
    },
    {
      "commit": "f7d98f436cf1351cb479e0abd6af7056553a6fa9",
      "tree": "c128c8329eaaab5b713f3ae164122f62ddf9738f",
      "parents": [
        "676590d060778f7e1fb896f03ba53817eb910f93"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Mon Apr 17 11:27:36 2017 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Mon Apr 17 18:05:42 2017 +0000"
      },
      "message": "Remove round rect clipping optimization.\n\nThis optimization fails to account for inverse fill.\n\nTest: bit CtsGraphicsTestCases.CanvasTest\nBug: 37417782\nChange-Id: I04adfa93542b1bd1f5d905c64bb40e521242e29d\n"
    },
    {
      "commit": "55455181233cadcd6d2e28d28d0dfc9a653f7787",
      "tree": "df8e1a022f7363fa15d0b11a0f90035b7a76c259",
      "parents": [
        "7859022e8eeabb5aa65af15773fe9cff329c71ec"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sat Apr 15 21:41:22 2017 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sat Apr 15 21:41:22 2017 -0700"
      },
      "message": "Properly decode colors spaces in BitmapRegionDecoder\n\nReusing a bitmap with BitmapRegionDecoder would preserve the\nprevious color space. This change also tweaks color space\nmatching to make sure we pick Display P3 with parameter d\u003d0.039\nor d\u003d0.04045\n\nBug: 36905374\nTest: CtsGraphicsTestCases\nChange-Id: I4d2d66e5babebb0b5ce5cbdc7e8244177b4b7f9c\n"
    },
    {
      "commit": "ca9b703b8862b4b0a9c6134a0b3e0d1a89a9ae64",
      "tree": "58420e7a23295e653a54067a06806e4ac278b642",
      "parents": [
        "b7f0db8d89d16ed653c04f0ddf1d6513bb95c55f"
      ],
      "author": {
        "name": "Matt Sarett",
        "email": "msarett@google.com",
        "time": "Thu Apr 13 12:18:47 2017 -0400"
      },
      "committer": {
        "name": "Matt Sarett",
        "email": "msarett@google.com",
        "time": "Fri Apr 14 16:26:50 2017 +0000"
      },
      "message": "Bug fix: use legacy SkCanvas regardless of color space tag\n\nTest: Added unit test. CtsGraphicsModule.\n\nBug: 32984164\n\nChange-Id: If72e1e31c98e01f97f3a05d763f5d4c71cf88313\n"
    },
    {
      "commit": "d154829cb15d61f1469f939d608e691256e2a765",
      "tree": "f34aa249ab66bb36486af742f39a4b51b06d0de7",
      "parents": [
        "92fc8bdd518cccf1c4fe2c9ad2460178cf61e3b4"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Apr 11 21:00:27 2017 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Apr 14 00:54:46 2017 +0000"
      },
      "message": "Use provided style for fallback font selection\n\nIf the developer gives some weight/italic to the Typeface.Builder\nthe fallback used the metadata in the font file. We should use\nprovided data instead.\n\nThis CL also adjusts upper and lower limits on weight, from 100..900 to\n1..1000\n\nBug: 37257745\nBug: 37251569\nTest: android.graphics.cts.TypefaceTest passes\nChange-Id: I7cf390d96b49afcce359928373698b0c9a9babd8\n"
    },
    {
      "commit": "1be9766a68ab25d4912aa19859414c8b2af6242b",
      "tree": "e60ef64a5d050298540bf9727106bd357f61756b",
      "parents": [
        "29c70437b337a8645fc2fb1e47c947b895af9180",
        "5745a0a37fa8b09e6ce538ab8ef58684cc00604e"
      ],
      "author": {
        "name": "Jim Van Verth",
        "email": "jvanverth@google.com",
        "time": "Thu Apr 13 20:01:43 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 13 20:01:47 2017 +0000"
      },
      "message": "Merge \"Add uncached and perspective shadows to Skia renderer\" into oc-dev"
    },
    {
      "commit": "729a515e5ebcf38e3472bb8fee4e9400745c400c",
      "tree": "b7763ed1b7b35a151fae87b50f9cde4f0a5141da",
      "parents": [
        "e425b366ba5fb2228182b8ac3d3fbaf396194cdc",
        "5b6347a6af668ba47b3fab14cefbe03cc440c3a4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 13 19:21:21 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 13 19:21:25 2017 +0000"
      },
      "message": "Merge \"Introduce setFallbackTypeface\" into oc-dev"
    },
    {
      "commit": "5b6347a6af668ba47b3fab14cefbe03cc440c3a4",
      "tree": "cec4564a2adfdb8909f512ac103f554575071d44",
      "parents": [
        "061db23b79b0f07b3b843e081420fbbcc606b451"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Mar 31 14:30:05 2017 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Apr 13 10:12:27 2017 -0700"
      },
      "message": "Introduce setFallbackTypeface\n\nsetFallbackTypeface is returned by Builder.build() method when the\nprovided font is not loaded due to some reasons.\nThe fallback family is resolved with width/italic passed to Builder.\n\nBug: 36794225\nTest: android.graphics.cts.TypefaceTest passes\nChange-Id: I65e220aca823fd815a52437b11c8e6dc952de8e2\n"
    },
    {
      "commit": "44dc270830758d5b0f5b099e7c0e308bdf027dfb",
      "tree": "f2c1aac8d0234485f555cd0cf1367f9947979d30",
      "parents": [
        "061db23b79b0f07b3b843e081420fbbcc606b451"
      ],
      "author": {
        "name": "Matt Sarett",
        "email": "msarett@google.com",
        "time": "Thu Apr 13 09:33:18 2017 -0400"
      },
      "committer": {
        "name": "Matt Sarett",
        "email": "msarett@google.com",
        "time": "Thu Apr 13 11:11:11 2017 -0400"
      },
      "message": "Add SkiaCanvas::captureCanvasState()\n\nTest: Verified bug is fixed.  Wrote unit test.\n\nBug: 37268771\n\nChange-Id: I9deb7db353cd2129ad245e7f65419670463bb717\n"
    },
    {
      "commit": "5745a0a37fa8b09e6ce538ab8ef58684cc00604e",
      "tree": "2cacf861d62d79b9604a802d1b8936a4cce68bd2",
      "parents": [
        "7ecd40c1fca96db6289aff0fea37573b843ee336"
      ],
      "author": {
        "name": "Jim Van Verth",
        "email": "jvanverth@google.com",
        "time": "Wed Apr 12 14:08:46 2017 -0400"
      },
      "committer": {
        "name": "Jim Van Verth",
        "email": "jvanverth@google.com",
        "time": "Thu Apr 13 13:15:12 2017 +0000"
      },
      "message": "Add uncached and perspective shadows to Skia renderer\n\nTest: manual - looked at FrameworkShadow app\n\nBug: 37300468\nChange-Id: I72d820479141db2d83363747d9f76abbaca70d98\n"
    },
    {
      "commit": "eb69cbbe22d993a9ba88a1206853c660f8f43628",
      "tree": "686051fef2cbea3e73a140ab82de7dd2c3e32986",
      "parents": [
        "2d008a5fc11f607943235cacfaf523eb403b52f2"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Tue Apr 11 13:58:45 2017 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Tue Apr 11 14:00:25 2017 -0400"
      },
      "message": "Change behavior of setBitmap to cleanly reset the canvas\n\n - identity matrix\n - no save stack\n - wide-open clip\n\nThis reverts commit 4f641d1e4586b027969052cc0ad6b65c1158e72e\n\nTest: bit CtsGraphicsTestCases:.CanvasTest\nBug: 36218535\nChange-Id: Id11deb06e37d6df61f1f171d424ab150d812a7a8\n"
    },
    {
      "commit": "8242656f495847c50c9ceaea92839dce78218a75",
      "tree": "467b8d3ceb1c305c8ba13d5b6edbdfceed390fbf",
      "parents": [
        "7a7c0ace8277d06513ab9eaa19159d66919764ba"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Apr 04 19:38:50 2017 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Apr 07 07:56:14 2017 -0700"
      },
      "message": "Color management, the missing pieces\n\nImplement missing color management pieces for bitmaps:\n\n- Bitmap.createBitmap(Bitmap src, ...) now creates a bitmap\n  in the same color space as the source bitmap\n- Bitmap.createScaledBitmap() now creates a bitmap in the\n  same color space as the source bitmap\n- Bitmap.createBitmap(..., ColorSpace colorSpace) to create\n  bitmaps in a specific color space\n- Fix copy from A8 to F16\n- Copying bitmaps in F16 or with a color space does not work,\n  it\u0027s currently a limitation in Skia\n\nBug: 36905374\nTest: BitmapColorSpaceTest\nChange-Id: I0092fe4432511db50daa3a9393389a9db05e0c2a\n"
    },
    {
      "commit": "c273784c91fa938586eda2a91b7268e431e838d5",
      "tree": "c29e34466667d76074f86e223ec5fd30e5891a16",
      "parents": [
        "43fed9afe41ee5cf7bc208f37f373d7061b5be19",
        "89de234c721244fe9063971ca33839392b66387f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 06 21:21:55 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 06 21:21:59 2017 +0000"
      },
      "message": "Merge changes I6f00614d,I987eeab2 into oc-dev\n\n* changes:\n  Convert 16 bit bitmaps to 8 bit on devices that do not have GLES3.0\n  Fix HardwareBitmapTests.testBitmapConfigFromRGB565\n"
    },
    {
      "commit": "89de234c721244fe9063971ca33839392b66387f",
      "tree": "6549e50e3bdc1249a8ae5c5827c9d7aba958aa09",
      "parents": [
        "7c98f5da3d95ef383de04fb5e941adec4fe1a4cf"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Apr 06 12:24:29 2017 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Apr 06 12:24:29 2017 -0700"
      },
      "message": "Convert 16 bit bitmaps to 8 bit on devices that do not have GLES3.0\n\nBug: 37077308\nTest: CtsUiRenderingTests (ran to manually emulate 2.0 devices)\nChange-Id: I6f00614d79797835adcfe4716bd331573e1463e3\n"
    },
    {
      "commit": "7c98f5da3d95ef383de04fb5e941adec4fe1a4cf",
      "tree": "c961d209766dc454869c3425ba5caa42bd6f1512",
      "parents": [
        "8d84e4cd1c1ea46caaf29660a74f65ca7d9fda39"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Apr 06 11:00:21 2017 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Apr 06 11:00:21 2017 -0700"
      },
      "message": "Fix HardwareBitmapTests.testBitmapConfigFromRGB565\n\nBug: 37077304\nTest: HardwareBitmapTests.testBitmapConfigFromRGB565\nChange-Id: I987eeab243f93f9ee8fe8d1b6a12ddbd23225651\n"
    },
    {
      "commit": "ea70d22dc8dc5d61f075edf6d03f86f6a68169cd",
      "tree": "076905e7bf8d2a09631a597d8c1c4975964e8ab6",
      "parents": [
        "3cc32f2aa205db9770c694a823f6d9a532ff0901"
      ],
      "author": {
        "name": "Matt Sarett",
        "email": "msarett@google.com",
        "time": "Wed Mar 29 16:25:10 2017 -0400"
      },
      "committer": {
        "name": "Matt Sarett",
        "email": "msarett@google.com",
        "time": "Thu Apr 06 15:14:00 2017 +0000"
      },
      "message": "Xform bitmaps to sRGB on SW and PDF canvases\n\nFor picture-backed canvases, we will defer the xform\nuntil playback.\n\nTest: Unit tests and cts test.\nBug: 32984164\nChange-Id: Ib74663bcb688b74b6ba8792b403b0475126732af\n"
    },
    {
      "commit": "d7410f7829ff591ca81ad93c9c9b1632ea80d1bc",
      "tree": "df96deb44315806245c9d53a850a8919d3dcc19e",
      "parents": [
        "5879d28f4df66e0222476226ce7a8e8b62314d04"
      ],
      "author": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Tue Apr 04 15:23:54 2017 -0400"
      },
      "committer": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Tue Apr 04 16:24:55 2017 -0400"
      },
      "message": "Fix pop-up shadow drawn in the wrong place with Skia pipeline\n\nFix a bug in DrawShadow matrix calculation. Recorded matrix does\nnot need to be applied, because parent display lists have already\nreplayed matrix transformations.\n\nTest: added a new HWUI unit test that is passing only after this fix\nBug: 33103723\nChange-Id: I7a47dbe879df6b9e5920a47c0e1168d9902a3e70\n"
    },
    {
      "commit": "f9340ca491f1e5bd7ba2d937c8e7d1c42a4edb6f",
      "tree": "135f4591869169e73ce9d94582831a697cea82da",
      "parents": [
        "8f6b9d80587ffec6899fe45bd3a6930eac3b65d5",
        "669b15a93548b82135c73196665bcb7f03d87795"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 04 19:06:28 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 04 19:06:32 2017 +0000"
      },
      "message": "Merge \"Fix HWUI/Skia Gradients to premultiply the colors prior to interpolation\" into oc-dev"
    },
    {
      "commit": "eabb5621dd67a159500c7a35eaa2f7999004c004",
      "tree": "2f5fe08e6bd54ff8b8adbccf3da6c5f7990068b2",
      "parents": [
        "2ac969827115c1b8bc86d9017eb1c7c1d5421b10",
        "817b4947397dc01d0c066ae847a3efd0e4a84a24"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Apr 04 17:16:33 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 04 17:16:43 2017 +0000"
      },
      "message": "Merge \"Revert \"Switch libplatformproto to sharedlib\"\" into oc-dev"
    },
    {
      "commit": "669b15a93548b82135c73196665bcb7f03d87795",
      "tree": "7ff6e8179d2ac972db944e94b30f036af659ec52",
      "parents": [
        "3f2bbcbe92cd2500746153ed2378278c1b2a53e2"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Mar 31 12:09:24 2017 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Tue Apr 04 12:07:28 2017 -0400"
      },
      "message": "Fix HWUI/Skia Gradients to premultiply the colors prior to interpolation\n\nThis is fixed in Skia by passing the appropriate flag when the shader is\ngenerated.  The fix in HWUI is to reverse the premultiplication and\ninterpolation steps.\n\nTest: bit CtsUiRenderingTestCases:.testclasses.ShaderTests\nBug: 34323783\nChange-Id: I3417141949f62fcc696b6d8213a4b446d7d0cbf8\n"
    },
    {
      "commit": "817b4947397dc01d0c066ae847a3efd0e4a84a24",
      "tree": "15eb72ffa4d1bc63334308dae02306f50173e720",
      "parents": [
        "e5549d414c7231ee0037cf413dad17e28b8905ba"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Apr 03 21:46:44 2017 +0000"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Apr 03 21:46:44 2017 +0000"
      },
      "message": "Revert \"Switch libplatformproto to sharedlib\"\n\nBug:36847782\n\nThis reverts commit e5549d414c7231ee0037cf413dad17e28b8905ba.\n\nChange-Id: I38f1c501b7e40be11ba5f0a7a50651e0c3e41fc5\n"
    },
    {
      "commit": "72c27609434dcc9f6db6292a114214b69a5c7bd7",
      "tree": "471761bdd2c957e5d59fa6fc84a9c65ab34b4e53",
      "parents": [
        "8d686949515ca665406b24f0073adf117f77546c",
        "e5549d414c7231ee0037cf413dad17e28b8905ba"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 30 16:42:31 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 30 16:42:36 2017 +0000"
      },
      "message": "Merge \"Switch libplatformproto to sharedlib\" into oc-dev"
    },
    {
      "commit": "33813bd4396f02409f4014e194da64b4170175d2",
      "tree": "a5b60d64135673a4d546c57fd69d3278c3466daf",
      "parents": [
        "5acdc8c3d5a42534c7de3fc579d8e7d54737de0a",
        "caaaa66e57293e4a6f312649bf472eab84d5c7fe"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Mar 30 01:42:25 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 30 01:42:32 2017 +0000"
      },
      "message": "Merge \"Convert bitmaps to sRGB/scRGB when they have a color profile\" into oc-dev"
    },
    {
      "commit": "e5549d414c7231ee0037cf413dad17e28b8905ba",
      "tree": "fdbfe410b13038c91eec5e69dbfd3491ce5d1030",
      "parents": [
        "d686e9c26e84e56810fcf87f6002ba8ba2b3f0c5"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 29 18:41:27 2017 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 29 18:41:27 2017 -0700"
      },
      "message": "Switch libplatformproto to sharedlib\n\nlibplatformprotos is really really unhappy if it gets\nloaded twice into the same process which trivially happens\nif it\u0027s a static library. Switch it to a shared library\ninstead to fix this.\n\nChange-Id: I90297d076d0739bab683fbd9607d7fc0884a002d\nFixes: 36272398\nTest: Ran hwui_unit_test, didn\u0027t crash\n"
    },
    {
      "commit": "33af6c730f9f7fc51f04516c7a22cac82cb9823e",
      "tree": "94f834ef6df06b8b534cb3a053de308f74793a09",
      "parents": [
        "c463bed8dbfbb5bbac791299e8997282685e64d2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Mar 29 13:00:35 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Mar 29 20:11:04 2017 +0000"
      },
      "message": "AAPT2: Parse an ID encoded as a map\n\nID types should not be encoded as a map. AAPT and AAPT2 emit\nIDs as boolean types.\n\nSome apps exist that for some reason have their ID types encoded\nas empty maps. This is the case only for the auto generated IDs\nfrom enum values in \u003cattr\u003e tags.\n\nAllow IDs as maps and ignore their content when processing an APK\nfor optimizing.\n\nAlso fixes an issue with expected size of the ResTable_package struct.\n\nBug: 35861796\nTest: tested against the APK in b/35861796\nChange-Id: I29a19cd9777bb10bed6766cd42e35e50e098797b\n"
    },
    {
      "commit": "caaaa66e57293e4a6f312649bf472eab84d5c7fe",
      "tree": "66beeca493da1046b482736293441a70f29474b3",
      "parents": [
        "b7980a3bbee067eae4665c8abbe8d39aefb2d36a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 27 00:40:21 2017 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Mar 28 18:35:49 2017 -0700"
      },
      "message": "Convert bitmaps to sRGB/scRGB when they have a color profile\n\nThis change also fixes an issue with RGBA16F bitmaps when modulated\nwith a color (for instance by setting an alpha on the Paint object).\n\nThe color space conversion is currently done entirely in the shader,\nby doing these operations in order:\n\n1. Sample the texture\n2. Un-premultiply alpha\n3. Apply the EOTF\n4. Multiply by the 3x3 color space matrix\n5. Apply the OETF\n6. Premultiply alpha\n\nOptimizations:\n- Steps 2 \u0026 6 are skipped for opaque (common) bitmaps\n- Step 3 is skipped when the color space\u0027s EOTF is close\n  to sRGB (Display P3 for instance). Instead, we use\n  a hardware sRGB fetch (when the GPU supports it)\n- When step 3 is necessary, we use one of four standard\n  EOTF implementations, to save cycles when possible:\n  + Linear (doesn\u0027t do anything)\n  + Full parametric (ICC parametric curve type 4 as defined\n    in ICC.1:2004-10, section 10.15)\n  + Limited parametric (ICC parametric curve type 3)\n  + Gamma (ICC parametric curve type 0)\n\nColor space conversion could be done using texture samplers\ninstead, for instance 3D LUTs, with or without transfer\nfunctions baked in, or 1D LUTs for transfer functions. This\nwould result in dependent texture fetches which may or may\nnot be an advantage over an ALU based implementation. The\ncurrent solution favor the use of ALUs to save precious\nbandwidth.\n\nTest: CtsUiRenderingTests, CtsGraphicsTests\nBug: 32984164\nChange-Id: I10bc3db515e13973b45220f129c66b23f0f7f8fe\n"
    },
    {
      "commit": "2c6ac0ead0b1e35333011e20bbc43d22d9906981",
      "tree": "362a0a24200a10403d535ba4acf1490801528255",
      "parents": [
        "6e42a1d0ce86dda0b69dcfeed9c1804db1531680",
        "2f944482ece3aba2068ac71cd9c5067e4bc8424c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 28 00:41:08 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 28 00:41:11 2017 +0000"
      },
      "message": "Merge \"Add missing assert that task isn\u0027t queued\""
    },
    {
      "commit": "55bea5e30808856eb039d74e2fa7e06ee0dd05e7",
      "tree": "c6c474df1147a89443c5f68911a21876f819bf57",
      "parents": [
        "52b716df852d1190b282f0393c24803ffd56059f",
        "1b7184f8d206505804042833a3825a3b8a9649dc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 27 23:30:18 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 27 23:30:22 2017 +0000"
      },
      "message": "Merge \"Add a few asserts for possible corruption cases\""
    },
    {
      "commit": "1b7184f8d206505804042833a3825a3b8a9649dc",
      "tree": "4c14412bcccfe7b4da3c467f4ce32ac7266aa812",
      "parents": [
        "48a153e57032fccf9ea7dac728d60738c3c848d2"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Mar 27 14:47:46 2017 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Mar 27 14:47:46 2017 -0700"
      },
      "message": "Add a few asserts for possible corruption cases\n\nBug: 36502346\nTest: builds \u0026 boots\nChange-Id: Id96a26a30e4a8c6f51a68bf07cfe6bd6d07c244e\n"
    },
    {
      "commit": "2f944482ece3aba2068ac71cd9c5067e4bc8424c",
      "tree": "1a603ac13c0fadc45b630348de25691ca6f7bd67",
      "parents": [
        "48a153e57032fccf9ea7dac728d60738c3c848d2"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Mar 27 14:34:28 2017 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Mar 27 21:38:09 2017 +0000"
      },
      "message": "Add missing assert that task isn\u0027t queued\n\nProbably won\u0027t fix anything but this assert is in queue()\nbut not queueAtFront() and inserting a task twice is Really Bad.\n\nBug: 36139852\nTest:  ¯\\_(ツ)_/¯\nChange-Id: Ida0f829eecfdd46c17c36b816528c49d12b7cf29\n"
    },
    {
      "commit": "81ff6ee47a9373430e4c8f30bbe5129ca48643bd",
      "tree": "a8a617c42953e0cd0d7c6a16be117257881e7d5e",
      "parents": [
        "b03314dad82dbfa19906947df20699e4c8b2fc83",
        "48f9bb6254324006a4595f4576c28498a4aaf5d2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 27 18:36:23 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 27 18:36:28 2017 +0000"
      },
      "message": "Merge \"Register functor draw correctly\""
    },
    {
      "commit": "48f9bb6254324006a4595f4576c28498a4aaf5d2",
      "tree": "8515c14731d2ade67f5b8961e3d2af906b33186e",
      "parents": [
        "1087bd9f350fe80a584b4685f0abd149d49c86ac"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Mar 24 17:00:39 2017 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Mar 24 17:12:19 2017 -0700"
      },
      "message": "Register functor draw correctly\n\nBug: 36602041\nTest: existing tests still pass\n\nChange-Id: I9f385da89e9e49e562031578a02f13a68697e0df\n"
    },
    {
      "commit": "bbf038bc5ee8adac6c52fd2fd4c66bbdaba89a43",
      "tree": "f8190fd5603f7c91e9bcea494e7170f29382d5b6",
      "parents": [
        "27a01ef0632fc31d558d6cb91c98e6eb8457eb33",
        "cc5a731fd725a4687625c93cf8490b63ce99884f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 24 22:25:16 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 24 22:25:20 2017 +0000"
      },
      "message": "Merge \"Remove \"Allow persistent changes to the vendor overlay theme\"\""
    },
    {
      "commit": "3c01a07fff19c5166274de5960935875ea89e455",
      "tree": "4c2e0f07efa9f06774cff5ae41e6ba397602e887",
      "parents": [
        "c439456ac212ec5201624bd7dd57814726650814"
      ],
      "author": {
        "name": "Robert Phillips",
        "email": "robertphillips@google.com",
        "time": "Thu Mar 23 11:24:40 2017 -0400"
      },
      "committer": {
        "name": "Robert Phillips",
        "email": "robertphillips@google.com",
        "time": "Thu Mar 23 12:29:39 2017 -0400"
      },
      "message": "Update RenderNodeDrawableTests to new onNewImageSnapshot API\nTest: does it compiles\n\nChange-Id: I55e3d7e2e59bfde88357fd455fe567d07c8a26b7\n"
    },
    {
      "commit": "cc5a731fd725a4687625c93cf8490b63ce99884f",
      "tree": "ec19afff7b21bc39f932ae59a6c494c5b66e8c62",
      "parents": [
        "ad63bafad002ea9b88091a9760a4760fb53943d7"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Thu Mar 23 11:13:22 2017 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Thu Mar 23 11:25:59 2017 -0400"
      },
      "message": "Remove \"Allow persistent changes to the vendor overlay theme\"\n\nThis reverts commit 2dc804be11444565e3d1d151c2a693db3ade94c0.\nIt also removes the related calls from UiModeManager.\n\nFixes: 32721178\nTest: make \u0026 flash\nChange-Id: Id371bccec611155cc6910e46b3277c3d27fc1c79\n"
    },
    {
      "commit": "442c8226aafdad13d535cb831639253603caa796",
      "tree": "926d42d081cdc2a9eb40fe19b56b62c57265f9d7",
      "parents": [
        "86e4497982e5f4d356e12b2ecf4e454fba7272c7",
        "2b53748a2139ff069fd6cff16e145fc784fdc5b3"
      ],
      "author": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Wed Mar 22 00:36:30 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Mar 22 00:36:30 2017 +0000"
      },
      "message": "Merge \"Fix warning: Potential leak of memory pointed to by \u0027set\u0027\" am: 58ba53bd53 am: 0889a8a070\nam: 2b53748a21\n\nChange-Id: Icec70d3e3efef0eea9c117911821dfd05bcb2ced\n"
    },
    {
      "commit": "0889a8a070a3efca70b0284b8df7145e82c7cc4f",
      "tree": "2b95cec99ac0dc2704af1723fc3e3f16848d9855",
      "parents": [
        "4ff81206e05880943dc34af4b4e23f644f06bde3",
        "58ba53bd53d08c8d23f8fa338aa4c4bb6bc86c91"
      ],
      "author": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Wed Mar 22 00:21:57 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Mar 22 00:21:57 2017 +0000"
      },
      "message": "Merge \"Fix warning: Potential leak of memory pointed to by \u0027set\u0027\"\nam: 58ba53bd53\n\nChange-Id: I7186dc35fb7f4a3c226e35447ce9c748164e7bf8\n"
    },
    {
      "commit": "58ba53bd53d08c8d23f8fa338aa4c4bb6bc86c91",
      "tree": "a117080b7ca7f2c58ac5a4e6f6d666099d87aa7e",
      "parents": [
        "c6c19bd6c0f52c90a4571590f28b246d4258076f",
        "a7645bd9478afa463e9708fbc0b91ec51b3f4bf3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 22 00:17:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 22 00:17:33 2017 +0000"
      },
      "message": "Merge \"Fix warning: Potential leak of memory pointed to by \u0027set\u0027\""
    },
    {
      "commit": "d9770c3c6c5b6a4fc7fa8774cf041e1ed1623119",
      "tree": "46e38e8eda245fd69c3f1ebf1c2da7f82d97425a",
      "parents": [
        "5c9fb3c5271b3e602d0d018a5bcfd3d6dbb98d9c"
      ],
      "author": {
        "name": "Robert Phillips",
        "email": "robertphillips@google.com",
        "time": "Mon Mar 20 13:44:46 2017 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Tue Mar 21 15:33:33 2017 +0000"
      },
      "message": "Update SkiaPipelineTests.cpp to use new onNewImageSnapshot signature\nTest: code compiles \u0026 test continues to succeed\n\nhttps://skia-review.googlesource.com/c/9882/ (Remove budgeted parameter \nfrom SkSurface::makeImageSnapshot (take 2)) seems to have stuck so this \nshould be safe to land.\n\nChange-Id: I9e6fdcc8debe7964e9522f7acd8829b54bc90986\n"
    },
    {
      "commit": "2c64d5739b444b8ffe6283d8c703ad920fad7a95",
      "tree": "576f6070039a93797e5a2a641d5d6be8851d439d",
      "parents": [
        "a9031fe3b563ff529f5dface2ccd65695c655317",
        "cc29a5dde1ef0a3cf0fcec10eb9d37d9e8fa3afb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 21 13:29:16 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 21 13:29:24 2017 +0000"
      },
      "message": "Merge \"Modify VectorDrawable to scale path through canvas matrix\""
    },
    {
      "commit": "1f4497c9c0cc0524765a0a48bb87040f8e15506c",
      "tree": "6c86564e9eda522fe5327749b8412bc808763199",
      "parents": [
        "60ec4506f71650c7283efe899c05a3270f3404b0",
        "ed69ce84bdfa5ba82008a9b66485ef71c953657a"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Mar 21 03:54:10 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 21 03:54:16 2017 +0000"
      },
      "message": "Merge changes I8c710af6,Iedf30212\n\n* changes:\n  libandroidfw: Fix mass logspam of ResourceTypes warnings\n  NativeActivity JNI: Retain VM reference to AssetManager\n"
    },
    {
      "commit": "ed69ce84bdfa5ba82008a9b66485ef71c953657a",
      "tree": "a255aa92ea253c3cc2ec575279d4e28adfca8c2a",
      "parents": [
        "5c690d55dd2d0286db1ba3331a64769c07636ff8"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Mar 20 10:55:01 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Mar 20 14:51:13 2017 -0700"
      },
      "message": "libandroidfw: Fix mass logspam of ResourceTypes warnings\n\nAn overlay was incorrectly leaking its own resources into the\nframework resource package, which caused warnings for every app\nthat tried to access framework resources (all of them).\n\nThis change skips including any resources that are not overlaying\nanything (not present in IDMAP).\n\nBug: 36256974\nTest: make libandroidfw_tests\nChange-Id: I8c710af6849bb848938825aacca02799ee96c003\n"
    },
    {
      "commit": "da3ab1a2dd2e3fa84cef277d8c7ff9e43e15ba23",
      "tree": "b418caf82c89b7a8c8400127e0f140a077864dc3",
      "parents": [
        "12b8ff31a2c7b5416afd258e6f55f0b48cd22cd5",
        "871cd2dd6074544bd41a84ff38255d81a392546a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 20 19:23:04 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 20 19:23:08 2017 +0000"
      },
      "message": "Merge \"use SkVertices::Builder in drawBitmapLattice override new virtual onDrawVerticesObject\""
    },
    {
      "commit": "cc29a5dde1ef0a3cf0fcec10eb9d37d9e8fa3afb",
      "tree": "3212df1c8e0fad9cd218829804b498ab51f5d27f",
      "parents": [
        "f87e2344880fde52ec0b619c0bb91fdfb29c0fc4"
      ],
      "author": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Wed Mar 15 16:37:10 2017 -0400"
      },
      "committer": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Mon Mar 20 11:49:51 2017 -0400"
      },
      "message": "Modify VectorDrawable to scale path through canvas matrix\n\nApply the path matrix to the canvas instead of creating a new path.\nDelete logic that scales the stroke, because this is done through\nthe matrix as well. Merge/delete some functions.\n\nBug: 36392701\nTest: CTS graphics tests pass with minor changes in 6 golden images.\nQuick settings and settings app drawables are OK. Vector icon app\ndraws identical paths.\nChange-Id: If623bc0a535fad95a2839f79bd997c016bcd9d4d\n"
    },
    {
      "commit": "95502300efffd29686f2c9bc4cc1b12edd323a1c",
      "tree": "41831f9bc9f6a519ec71215b1938f83c1dafed83",
      "parents": [
        "10df3fe76fc2311049bb748b17570f08ceb0553c",
        "3aeda5c5c47ae29197e8b8b665749cb6cb449e19"
      ],
      "author": {
        "name": "Ben Wagner",
        "email": "bungeman@google.com",
        "time": "Mon Mar 20 14:17:48 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 20 14:17:56 2017 +0000"
      },
      "message": "Merge \"Use access directly instead of sk_exists.\""
    },
    {
      "commit": "871cd2dd6074544bd41a84ff38255d81a392546a",
      "tree": "fa234148087908607ddd7cb22f57df7c57d9eb71",
      "parents": [
        "96f6a1a7d60147eb51db5e18aa52b7d084b9f64e"
      ],
      "author": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Fri Mar 17 10:15:52 2017 -0400"
      },
      "committer": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Mon Mar 20 08:40:12 2017 -0400"
      },
      "message": "use SkVertices::Builder in drawBitmapLattice\noverride new virtual onDrawVerticesObject\n\nTest:  CtsGraphicsTestCases\n\nChange-Id: I38e3ee0aa2a1ee9c11474c2c5d648ee5fca20d78\n"
    },
    {
      "commit": "10eb1455b9047084261442392f00235ec023eec2",
      "tree": "6b6254e6a2285d00e9a9d91e3ab193f08c88a92d",
      "parents": [
        "cdf3dc290b131986794d1909d9a58e2edf3da64e",
        "0e25d9ae776053d9186200f2f698faea45313cb6"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Mar 17 23:19:04 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 17 23:19:13 2017 +0000"
      },
      "message": "Merge changes from topic \u0027configForSplit\u0027\n\n* changes:\n  libandroidfw: Search all packages for an identifier\n  AAPT2: Finish support for feature splits\n  Add support for configForSplit\n"
    },
    {
      "commit": "3aeda5c5c47ae29197e8b8b665749cb6cb449e19",
      "tree": "484ebb22d38340ac6f31604418884f202841d7ee",
      "parents": [
        "13a8b797552d80b6d8bf6a210dcf3b89ff504a16"
      ],
      "author": {
        "name": "Ben Wagner",
        "email": "bungeman@google.com",
        "time": "Fri Mar 17 17:22:01 2017 -0400"
      },
      "committer": {
        "name": "Ben Wagner",
        "email": "bungeman@google.com",
        "time": "Fri Mar 17 17:22:01 2017 -0400"
      },
      "message": "Use access directly instead of sk_exists.\n\nSkia would like to move SkOSFile and make it private spi. This appears\nto be the only place SkOSFile is used outside Skia, and using access\nhere directly is more apropriate.\n\nTest: Simple inline refactor, built and ran. Changes test code only.\nChange-Id: Ib76c180bb3bccc54c20dcadc842837e3e8270929\n"
    },
    {
      "commit": "08153e655afbc5ba010f04077fa282e23abcd5fd",
      "tree": "d84b34fe45c5c54cd9c479c99b652eb6824124ba",
      "parents": [
        "ffe0bbbf604583e092d340e898875b10feeabfc4",
        "cd2eb91c40e71b278585e1fb099db614dab94655"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Mar 17 00:41:12 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 17 00:41:16 2017 +0000"
      },
      "message": "Merge \"Remove usage of deprecated makeImageSnapshot parameter Test: Does it compile?\""
    },
    {
      "commit": "0e25d9ae776053d9186200f2f698faea45313cb6",
      "tree": "30083398e936182005dd624b1ea0171b18840dc1",
      "parents": [
        "b0c47ef8779e445865e63355ab66265461e1f2a3"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Mar 10 15:14:27 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 16 15:45:16 2017 -0700"
      },
      "message": "libandroidfw: Search all packages for an identifier\n\nIn order to allow multiple packages with the same package name, but\ndifferent package ID, we need to keep searching packages until the\nresource is found.\n\nBug: 30999713\nTest: make libandroidfw_tests\nChange-Id: If4540e12731ca18a18e9e550a9bf248606a586c5\n"
    },
    {
      "commit": "f596ba9375d1c5b70df7d6b8d3ac8a8b1a6fceaf",
      "tree": "dbc0a690564236282a263860926f268a0091a8c8",
      "parents": [
        "2257285aef5e5b8d43567a40ef7c813c1ec344ad",
        "6183c97e5f317ad52ad16fe50e40129e2c7b2150"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 16 21:15:12 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 16 21:15:15 2017 +0000"
      },
      "message": "Merge \"Bowing my head in shame, going back to gamma interpolated gradients\""
    },
    {
      "commit": "6183c97e5f317ad52ad16fe50e40129e2c7b2150",
      "tree": "3b0d5ed72a57fa5d10567aff1ecb5174b7b4340b",
      "parents": [
        "0d86d7ebc2b83f0bdd28bb99e57289215947f2e0"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Mar 16 12:24:55 2017 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Mar 16 12:29:03 2017 -0700"
      },
      "message": "Bowing my head in shame, going back to gamma interpolated gradients\n\nFrankengradients (linearly interpolated RGB, gamma interpolated alpha) look\nfantastic but unfortunately create sligh compatibility issues. For instance,\na gradient from 0xffea1030 to 0x00ea1030 (opaque to alpha, with a single\ncolor) blended on top of 0xff101010 would not look the same as a single\nopaque gradient from 0xffea1030 to 0xff101010. The difference is hardly\nnoticeable on simple gradients but it could cause confusion amongst app\ndevelopers. Their life is hard enough as it is, let\u0027s be good to them.\n\nMy crusade against the gamma world is not over and one day I shall\nbe the victor. I am patience.\n\nBug: 35485208\nTest: UiRendering.ShaderTests, UiRendering.GradientTests, manual testing\nChange-Id: I8204e60cdf0a6b12dfe22638d30ca9622687000e\n"
    },
    {
      "commit": "cd2eb91c40e71b278585e1fb099db614dab94655",
      "tree": "1e1429b711e4c64f4e6bcf1dd47e549e334e3962",
      "parents": [
        "0730328885aeb56390f7952be27af6e9ce5b9e2c"
      ],
      "author": {
        "name": "Robert Phillips",
        "email": "robertphillips@google.com",
        "time": "Thu Mar 16 14:42:00 2017 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Mar 16 19:13:39 2017 +0000"
      },
      "message": "Remove usage of deprecated makeImageSnapshot parameter\nTest: Does it compile?\n\nChange-Id: Ia51ad621daa3409f65b2f3e4d5691891271918a2\n"
    },
    {
      "commit": "9e8f05f77d53020fe1c506778476e8039cd603c8",
      "tree": "519c36588524b548680f6e1fa107dfbfef3129c5",
      "parents": [
        "587b60282e4d9f9cb4bd02df0bb13e69d098b0db",
        "0d86d7ebc2b83f0bdd28bb99e57289215947f2e0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 16 17:41:40 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 16 17:41:43 2017 +0000"
      },
      "message": "Merge \"Improve dithering of alpha gradients\""
    },
    {
      "commit": "0d86d7ebc2b83f0bdd28bb99e57289215947f2e0",
      "tree": "82ec8c3a46ab66d222dba295b60ed2b57a5c1a46",
      "parents": [
        "1176f7b2b097a25db3b0150e92e60b446a9952c9"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Mar 15 20:38:11 2017 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Mar 15 20:38:11 2017 -0700"
      },
      "message": "Improve dithering of alpha gradients\n\nBug: 32984164\nTest: CtsUiRenderingTestCases\nChange-Id: Ic728725845befd3c52cc7b043d5c6f8e33fcfcd2\n"
    },
    {
      "commit": "26fddcd74252bdda95dd7c3f819353e79c622012",
      "tree": "767a4bb83b872155040d8f507b03b8d1cb16df1b",
      "parents": [
        "5fff20cac1da9a6105673fb1e4fc49e2e3f269e9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Mar 15 14:17:22 2017 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Mar 15 14:19:40 2017 -0700"
      },
      "message": "Get rid of LinearTransform\n\nA copy of LinearTransform is moved here.\n\nThis reverts commit b80f086f69a4bc2e51d1f94ae58d7ba6b20514c4.\n\nTest: compile/run\nBug: treble cleanup\nChange-Id: I435cac1f57ded10d434e4354985ad1a1bd3841f3\n"
    },
    {
      "commit": "402a384ac83338b5ec4c04dde3c9ba969de51c0f",
      "tree": "6cec60f924626d4690b7148d7f8284f3f11987c0",
      "parents": [
        "3ff3dde601f9cec0e4ee72265e4e6ac22fd6d1dc",
        "51218e80f70601193e43d90aaf1599a7f6d11062"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 15 17:34:16 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 15 17:34:21 2017 +0000"
      },
      "message": "Merge \"Pass FontCollection to doLayout\u0027s argument instead of ctor\""
    },
    {
      "commit": "51218e80f70601193e43d90aaf1599a7f6d11062",
      "tree": "901c4d2cf6dc02af36eedfe9268349d935c01146",
      "parents": [
        "64e93531b0b2db10a581e30d6e7e758d98950151"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Mar 14 15:45:29 2017 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Mar 14 16:56:10 2017 -0700"
      },
      "message": "Pass FontCollection to doLayout\u0027s argument instead of ctor\n\nTest: minikin_unit_tests\nTest: minikin_stress_tests\nBug: 36223724\nChange-Id: I55aca62eab4df0c138fec764d616984b50bd73f1\n"
    },
    {
      "commit": "95e8afbb5e1ff795f7601eea916b299943f4c429",
      "tree": "9a366da6c54272d5fde09bbb87b39641bd4a7df6",
      "parents": [
        "0b404b49a036c88a419afd64434846651698f555",
        "4f641d1e4586b027969052cc0ad6b65c1158e72e"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 14 23:35:23 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 14 23:35:29 2017 +0000"
      },
      "message": "Merge \"Revert \"Change behavior of setBitmap to cleanly reset the canvas - identity matrix - no save stack - wide-open clip\"\""
    },
    {
      "commit": "4f641d1e4586b027969052cc0ad6b65c1158e72e",
      "tree": "4da95a435728ba30d78fcd3f208f07cae47c7d91",
      "parents": [
        "269f989fbf198b17994baf9141c4640aeaf34b4e"
      ],
      "author": {
        "name": "Tony Mantler",
        "email": "nicoya@google.com",
        "time": "Tue Mar 14 22:36:14 2017 +0000"
      },
      "committer": {
        "name": "Tony Mantler",
        "email": "nicoya@google.com",
        "time": "Tue Mar 14 22:40:31 2017 +0000"
      },
      "message": "Revert \"Change behavior of setBitmap to cleanly reset the canvas - identity matrix - no save stack - wide-open clip\"\n\nhttps://buganizer.corp.google.com/issues/36218535\n\nThis reverts commit 269f989fbf198b17994baf9141c4640aeaf34b4e.\n\nChange-Id: Ib2473e4fce90c9abaa39eea2b77082ae26197b80\n"
    },
    {
      "commit": "b73ea72723aba116f0ad1701f755ab869c2b0aad",
      "tree": "7c4f8ea8790900556b47e942296f855baf5fdaea",
      "parents": [
        "1f5c182162b36c71494f269faffbe4b2ee483919",
        "b80f086f69a4bc2e51d1f94ae58d7ba6b20514c4"
      ],
      "author": {
        "name": "Ian Pedowitz",
        "email": "ijpedowitz@google.com",
        "time": "Tue Mar 14 08:15:38 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 14 08:15:42 2017 +0000"
      },
      "message": "Merge \"Revert \"remove LinearTransform from libutils\"\""
    },
    {
      "commit": "b80f086f69a4bc2e51d1f94ae58d7ba6b20514c4",
      "tree": "02a4e752a1aef463f0bcd3846f1f8f89c5b79d00",
      "parents": [
        "d4d6167f614a9001d9827a8634a26b5e9445a22c"
      ],
      "author": {
        "name": "Ian Pedowitz",
        "email": "ijpedowitz@google.com",
        "time": "Tue Mar 14 08:09:17 2017 +0000"
      },
      "committer": {
        "name": "Ian Pedowitz",
        "email": "ijpedowitz@google.com",
        "time": "Tue Mar 14 08:11:32 2017 +0000"
      },
      "message": "Revert \"remove LinearTransform from libutils\"\n\nThis reverts commit d4d6167f614a9001d9827a8634a26b5e9445a22c.\n\nBug: 36206160\nTest:  Fugu compiles, didn\u0027t before the revert\nChange-Id: I2b0d3a05546ee2605555a9aa7ae028f2baeaf439\n"
    },
    {
      "commit": "a813413a6e4bc4d0995f994f770bb909369684c3",
      "tree": "e2d337256e9f462a01977f498aac4490889594f2",
      "parents": [
        "3fcba6afdedc1e2b8f7638b7269d756e31b96223",
        "d4d6167f614a9001d9827a8634a26b5e9445a22c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 13 22:06:09 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 13 22:06:15 2017 +0000"
      },
      "message": "Merge \"remove LinearTransform from libutils\""
    },
    {
      "commit": "d4d6167f614a9001d9827a8634a26b5e9445a22c",
      "tree": "c6a6b408918d91824fc19458e1f4cc00610d0361",
      "parents": [
        "0b8c8133c8259b0584450eae894a330154d1a769"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Mar 13 12:26:06 2017 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Mar 13 13:36:52 2017 -0700"
      },
      "message": "remove LinearTransform from libutils\n\nthis was the only client.\n\nTest: compile\nBug: cleanup for treble\nChange-Id: Ibe2308d5fffb18c398db47e27d0123d629f675fe"
    },
    {
      "commit": "9b0a5d191960668e6884b85588f4d9f31c662153",
      "tree": "2ac33d157ac08e3327e319d04ef99d2e5e1da0f1",
      "parents": [
        "fa71ecb08aef3a7fd200de5a54f912f251ed16d1",
        "a0a74d5f8ee1dbd04772ffb1775d045ce6b5934b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 13 19:19:28 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 13 19:19:34 2017 +0000"
      },
      "message": "Merge \"use _deprecated suffix for deprecated clipops\""
    },
    {
      "commit": "a0a74d5f8ee1dbd04772ffb1775d045ce6b5934b",
      "tree": "50da252e550baf17945b40815cdb79661f4f3953",
      "parents": [
        "f26f346a27d72d34d1bd0c9a9f96e9fc3e619847"
      ],
      "author": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Mon Mar 13 13:26:00 2017 -0400"
      },
      "committer": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Mon Mar 13 17:38:16 2017 +0000"
      },
      "message": "use _deprecated suffix for deprecated clipops\n\nAllows skia to remove legacy flag for older names\n- SK_SUPPORT_EXOTIC_CLIPOPS\n- SK_SUPPORT_LEGACY_CLIPOP_EXOTIC_NAMES\n\nTest: CtsGraphicsTestCases\n\nChange-Id: I78478d94d059641a9381579cae6d28f9f0685ad1\n"
    },
    {
      "commit": "1965d2898c25e8688dd9d412da08038bb1ebc0ea",
      "tree": "f4b5c683413eedd536d69032059d1c3bbd692f73",
      "parents": [
        "764edd7627c3aecbd1bd59e6963c1058589e782f",
        "269f989fbf198b17994baf9141c4640aeaf34b4e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 13 17:32:56 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 13 17:33:05 2017 +0000"
      },
      "message": "Merge \"Change behavior of setBitmap to cleanly reset the canvas - identity matrix - no save stack - wide-open clip\""
    },
    {
      "commit": "269f989fbf198b17994baf9141c4640aeaf34b4e",
      "tree": "977866c16b51bb806514f88f909ee879fe469c82",
      "parents": [
        "f26f346a27d72d34d1bd0c9a9f96e9fc3e619847"
      ],
      "author": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Wed Mar 01 11:32:53 2017 -0500"
      },
      "committer": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Mon Mar 13 15:39:57 2017 +0000"
      },
      "message": "Change behavior of setBitmap to cleanly reset the canvas\n- identity matrix\n- no save stack\n- wide-open clip\n\nBehavior around the new bitmap is the same.\n\nTests : CtsGraphicsTestCases\n\nChange-Id: Ieaf8c2a1b96262ed33940dd852a86089eb93efdb\n"
    },
    {
      "commit": "7d73fc2303805a207e67eeee750c961618fb0e6b",
      "tree": "fd76aeae797463e2e9758f62f402a217a060dc49",
      "parents": [
        "a3b642a854c8ea85e06ef87fe6ebf51b4e0dbd52"
      ],
      "author": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Wed Sep 28 18:14:24 2016 -0400"
      },
      "committer": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Mon Mar 13 10:16:08 2017 -0400"
      },
      "message": "Add a new macrobench to test layer resize\n\nCreate a new HWUI macrobench to test hardware layer resize code path.\n\nTest: Executed the new test on bullhead device with \"adb shell\n/data/benchmarktest64/hwuimacro hwlayersize --onscreen --wait-for-gpu -c\n1000\".\n\nChange-Id: I9ed411d76ac3d51339a69add8ab1843c3256994a\n"
    },
    {
      "commit": "cfdfd997bd3aa8e32d9d1eefddb1d5921c1db5ee",
      "tree": "a4a072ac5836189adcb9afc572142abaf9822165",
      "parents": [
        "6698ff30c41a6142bcc08149bd3169859ea638fc",
        "d5c7dd6da810a6b89151b337bea79fd817e6b72a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 10 05:15:18 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 10 05:15:21 2017 +0000"
      },
      "message": "Merge \"Modify SurfaceView to use SurfaceFlinger child surfaces.\""
    },
    {
      "commit": "0c1563d3dd35969e293ebde116c74b8938046758",
      "tree": "7f83d88742d616fb987a03bd449a41a74eb149ee",
      "parents": [
        "af0c4233263b925f4929a5960334ade81d4515b5",
        "d7f13f84f8aefcad10ccb83aad794f1864623642"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 09 21:42:58 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 09 21:43:01 2017 +0000"
      },
      "message": "Merge \"Prematurely optimizing a Path.\""
    },
    {
      "commit": "d7f13f84f8aefcad10ccb83aad794f1864623642",
      "tree": "9813d857a486c52607d3a900bd5975ffcfcf93a8",
      "parents": [
        "748bf77274f6b1badc18c0f2b2f9e54fb7f282e8"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Mar 09 13:08:27 2017 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Mar 09 13:59:23 2017 -0500"
      },
      "message": "Prematurely optimizing a Path.\n\nIf the path had an inverse fill type we were incorrectly\nconverting ovals and roundRects to their primitive form\nwithout checking to ensure the path was not inverse fill.\n\nThis CL removes these optimizations as they happen internally\nwithin Skia.\n\nBug: 34245907\nTest: verified broken app is fixed and that skia has existing tests\nChange-Id: I8c1ff6522ae19fc6c21520adc7e9bc2473a8a4ad\n"
    },
    {
      "commit": "d5c7dd6da810a6b89151b337bea79fd817e6b72a",
      "tree": "900f90bfc47d999d7e74bc4b4cd7dda3ac523320",
      "parents": [
        "cf8a98af481923bc61db347fdf053ea6e9152731"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Wed Mar 08 10:39:30 2017 -0800"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Wed Mar 08 17:36:10 2017 -0800"
      },
      "message": "Modify SurfaceView to use SurfaceFlinger child surfaces.\n\nHere we have SurfaceView bypass the WindowManager and speak\ndirectly to SurfaceFlinger using child surfaces. We also\nimplement some logic in the WM to handle child surfaces\nin various Surface replacement scenarios.\n\nFor those following along in the revert Saga, this\nalso includes the follow up CLs to the original CL.\n- Surface inset calculation\n- Animation fixes.\n\nThe error causing the revert was an incorrect JNI signature\naround deferTransactionUntilSurface. I\u0027ve noted it inline.\n\nBug: 28858420\nBug: 31518219\nBug: 34888808\nBug: 35588318\nBug: 35396882\nTest: Existing tests still pass (except for the ones that don\u0027t and will be deleted).\nChange-Id: Ie56b6f7ab16f32d7fc459b8eba26594337ad55de\n"
    },
    {
      "commit": "2bd7d98fe844ebd6632a55eee9abf6d18651caf5",
      "tree": "1a47e7dc53683c35820bf11931cbef05fc410e82",
      "parents": [
        "62dd27ab3b11e8aba5b50d4edc799b628702fe3b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 27 19:34:45 2017 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Mar 08 23:12:06 2017 +0000"
      },
      "message": "fallout from getting rid of IGraphicBufferAlloc\n\nTest: compiled \u0026 run\nBug: cleanup\nChange-Id: I1590105d3abef985c2ae7c1a03cdf5fd2ec4bef9"
    },
    {
      "commit": "07be4d67813bdda4479e0e5a482f76b3f52160e7",
      "tree": "9f0aaedbb183f62f96aedaddebae788d2e010f97",
      "parents": [
        "a76761d55c714b1d859dabcdbb689a567c7366ab",
        "5aec7b90310ba05f9816fd89030ba41ce48c568e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 08 06:28:06 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 08 06:28:11 2017 +0000"
      },
      "message": "Merge \"Revert \"Modify SurfaceView to use SurfaceFlinger child surfaces.\"\""
    },
    {
      "commit": "5aec7b90310ba05f9816fd89030ba41ce48c568e",
      "tree": "8c2f21ab63ec54660403a1ebe9a4c7776312da71",
      "parents": [
        "a851664403a6ddad6e3a8fbd71410c9948161dd4"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Mar 07 17:15:50 2017 -0800"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Wed Mar 08 01:52:19 2017 +0000"
      },
      "message": "Revert \"Modify SurfaceView to use SurfaceFlinger child surfaces.\"\n\nThis reverts commit cd4aeef88052571365d4e193a2c41e2e6d145491.\n\nBug: 36027342\nBug: 36015884\nChange-Id: Ifd5b69caf64d65a8cd6570b7fe1fb6abe90e30b8\n"
    },
    {
      "commit": "f4f093c52c295c97f14eb6b84e45af326c01d7de",
      "tree": "c8537f54f75057ebf3bb566e3150b61e6681886c",
      "parents": [
        "6587430d6f942ae9f6d66aabfd3748f6dd50be86",
        "7de2f9c73fbe93bfb7dff3c046cf7a3137599f6c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 08 00:42:57 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 08 00:43:00 2017 +0000"
      },
      "message": "Merge \"Reinstate codes to enable RRO on system server\""
    },
    {
      "commit": "7ef25b78941ded7e1d757dc42897529a02fa10a3",
      "tree": "7f273441eda4caa0213b74f77388de25f01edc0e",
      "parents": [
        "31b0486d1b3bef3d84759299442146d054665505",
        "efb4b06493fe7b1604c762a448b13c7af2845a8d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 07 18:37:09 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 07 18:37:13 2017 +0000"
      },
      "message": "Merge \"Add ColorSpace information on Bitmap\""
    },
    {
      "commit": "3cad2c33ee161f84f44a6d796fba0292ef47931e",
      "tree": "1e695aa202c6591e6982079a110f3ac5767e0cc7",
      "parents": [
        "877f51ae882b6d647e4d4400811429988d05b2ba",
        "49b403dc9c47ada51c8e5b883347682a868515f8"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 07 17:53:19 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 07 17:53:22 2017 +0000"
      },
      "message": "Merge \"Workaround arc textures drawing outside of bounds\""
    },
    {
      "commit": "efb4b06493fe7b1604c762a448b13c7af2845a8d",
      "tree": "310d40716decb7686065339226534dac0bb35faa",
      "parents": [
        "4f357c081260c5bb36498169eb698adf7089899c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Feb 27 11:00:04 2017 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 06 19:33:25 2017 -0800"
      },
      "message": "Add ColorSpace information on Bitmap\n\nThis is the first step toward interpreting color spaces at render time.\n\nBug: 32984164\nTest: BitmapColorSpaceTest in CtsGraphicsTestCases\n\nChange-Id: I0164a18f1ed74a745874fe5229168042afe27a04\n"
    },
    {
      "commit": "49b403dc9c47ada51c8e5b883347682a868515f8",
      "tree": "1bc4b9b604b1e7f0ff468b2e67958bc07d916f9f",
      "parents": [
        "1e92e7fbfc128a3103e98f12d579ae01d027e2a4"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Mar 06 13:51:43 2017 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Mar 06 13:51:44 2017 -0800"
      },
      "message": "Workaround arc textures drawing outside of bounds\n\nFixes: 34077513\nTest: hwui unit tests passing\n\nThis fixes an issue where drawArc operations would cause artifacts by\ndrawing outside of the clip / screen damage area. We now more\nconservatively clip drawArc operations specifically, as they tend to\ndraw into the outer parts of their path textures more than other\noperations.\n\nA more long term fix would involve alignment between draw operation\nsizing (in terms of what\u0027s resolved in a BakedOpState), and\nPathTexture sizing (which currently conservatively expands beyond\nstroked op bounds).\n\nChange-Id: I5aff39cc04382323b457b159974032f5f371251a\n"
    },
    {
      "commit": "4d7094dc998b4765cb73c6ec26e61a6cc0df030f",
      "tree": "8591e81826218bc34a1e2af492e0ebb3f32da2f6",
      "parents": [
        "df2870df9ae6e5dbb7acfe3d5fd840a3317b0e66",
        "1344c034c537f5335b44eae69715b07c1f94d555"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Mar 06 20:14:37 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Mar 06 20:14:37 2017 +0000"
      },
      "message": "Merge \"Check for spurious wake ups\" am: 3a3cd0a27f am: c2dcebe6e6\nam: 1344c034c5\n\nChange-Id: I8ffc749ab6fbd825ce238fff4ba1d12609585c04\n"
    },
    {
      "commit": "df2870df9ae6e5dbb7acfe3d5fd840a3317b0e66",
      "tree": "0b25318bf65a84bb9cf9cb4f9cb59ec375395a3e",
      "parents": [
        "a3d279fa4b258498f3b7ee678e546a82e76cdaaf",
        "136fd0764faf7a588b4a1b479d7a8cc6fe18fcc6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 06 20:01:13 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 06 20:01:17 2017 +0000"
      },
      "message": "Merge \"AAPT2: Fix parsing ResTable_type\""
    },
    {
      "commit": "c2dcebe6e631f499d75c57bfe24eccbb0129c863",
      "tree": "9ad20416b36b4b248442ceb44bccfcbaad38932b",
      "parents": [
        "4ddee9722dd47060570b11a7ae9f4c20358fc079",
        "3a3cd0a27f98a360fad69030eedacd0d863586b4"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Mar 06 19:57:18 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Mar 06 19:57:18 2017 +0000"
      },
      "message": "Merge \"Check for spurious wake ups\"\nam: 3a3cd0a27f\n\nChange-Id: Ia445070278f5a80c85b48e06ddf614d462db45af\n"
    },
    {
      "commit": "b85f02e9add59192b4d45ec3b52f9c01747edfc2",
      "tree": "2825ddaad0e103c1861af72ae5c675aedc0cb309",
      "parents": [
        "272fe5c33866ccc9f590e8fa383f7d96577f8068",
        "46c6f4c5ea7846fee4e6ef40c035ef2bee1adcbb"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Mon Mar 06 19:19:06 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 06 19:19:11 2017 +0000"
      },
      "message": "Merge \"Frameworks support for hyphenation for various complex cases\""
    },
    {
      "commit": "46c6f4c5ea7846fee4e6ef40c035ef2bee1adcbb",
      "tree": "e6253cb71f611b2726e3f25f790acbe3e8c5b2a9",
      "parents": [
        "195bbc6d5e4e01000eed1ab80a0b7c146c1062ac"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Tue Feb 21 12:18:31 2017 -0800"
      },
      "committer": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Fri Mar 03 15:34:42 2017 -0800"
      },
      "message": "Frameworks support for hyphenation for various complex cases\n\nThis adds better support for Arabic script languages, Armenian,\nCatalan, Hebrew, Kannada, Malayalam, Polish, Tamil, and Telugu by\nadding various hyphenation types and edits appropriate for the\nlocales.\n\nThe actual implementations are in Minikin. This CL takes care of the\nchanges needed in frameworks, to support different end-of-line and\nstart-of-line hyphen edits.\n\nTwo bugs in TextLine.java are also fixed:\n\n1. Where hyphen edits on non-spanned texts were not eliminated in\nhandleRun() when they should have. This had manifested itself in\ndouble hyphenation in some bidi paragraphs.\n\n2. Some no op assignments and comparions around the change for the\nabove bug are removed.\n\nTest: thorough manual testing for various cases\nBug: 19756624\nBug: 19950445\nBug: 19955011\nBug: 25623243\nBug: 26154469\nBug: 26154471\nBug: 33387871\nBug: 33560754\nBug: 33752592\nBug: 33754204\nChange-Id: I48c047d1f6a75c39a78a6ea38a0a3282f63326ec\n"
    },
    {
      "commit": "f1e54c9a1cb294096dcf361eb9511a4baa2f51fc",
      "tree": "b3da83c4366807cb5ebae922a6212f2ae7af709e",
      "parents": [
        "e096df0063f9b22af1bf9159e4b6056c1c5c70f0",
        "cd4aeef88052571365d4e193a2c41e2e6d145491"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 03 22:45:20 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 03 22:45:24 2017 +0000"
      },
      "message": "Merge \"Modify SurfaceView to use SurfaceFlinger child surfaces.\""
    },
    {
      "commit": "136fd0764faf7a588b4a1b479d7a8cc6fe18fcc6",
      "tree": "91f7316861e5d879a627bd00578170791889c528",
      "parents": [
        "485c0feea53199b1d43db8782073044c846424c4"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Mar 03 13:50:21 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Mar 03 14:01:09 2017 -0800"
      },
      "message": "AAPT2: Fix parsing ResTable_type\n\nResTable_type\u0027s size changes due to it containing\nResTable_config. Make sure we check for the minimum size\nrequired to read it.\n\nBug: 35861796\nTest: Manual (don\u0027t have an integration test harness setup yet)\nChange-Id: Ifb0cd1d732625f59835c8ed0449adb78129636de\n"
    },
    {
      "commit": "cd4aeef88052571365d4e193a2c41e2e6d145491",
      "tree": "5c4a115dafe671bcd3b200013c73328243488a92",
      "parents": [
        "1ec752f2dac36b2bf32a9d3fdf5f1f022a09228c"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Fri Mar 03 10:48:11 2017 -0800"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Fri Mar 03 13:06:59 2017 -0800"
      },
      "message": "Modify SurfaceView to use SurfaceFlinger child surfaces.\n\nHere we have SurfaceView bypass the WindowManager and speak\ndirectly to SurfaceFlinger using child surfaces. We also\nimplement some logic in the WM to handle child surfaces\nin various Surface replacement scenarios.\n\nFor those following along in the revert Saga, this\nalso includes the follow up CLs to the original CL.\n- Surface inset calculation\n- Animation fixes.\n\nThe error causing revert was a deferTransactionUntil(-1)...-1\ncast to uint, defer transaction until MAX_UINT.\n\nBug: 28858420\nBug: 31518219\nBug: 34888808\nBug: 35588318\nBug: 35396882\nTest: Existing tests still pass (except for the ones that don\u0027t and will be deleted).\nChange-Id: Ib37236950a1dd3c4f9f4b58fd41ef9003c0557ef\n"
    },
    {
      "commit": "792fb3252f6460acfd82c4e5d7536ca6b787a0e0",
      "tree": "ff594d42d5f79ace8de6e98992c11684141a1c12",
      "parents": [
        "1937bfabeb9e1c5fcc7e9972c55e75d1b7d3e62c"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Mar 03 14:02:09 2017 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Mar 03 14:24:58 2017 -0500"
      },
      "message": "Use SkPaint.nothingToDraw instead of PaintUtils helper.\n\nThe PaintUtils helper is now shared between all pipelines and was\nmissing a quick reject test for drawLoopers which are used in\nview.setShadowLayer and supported in the Skia pipelines.\n\nBug: 35809097\nTest: added hwui unit test and verified in DocumentsUI app\nChange-Id: I3c4a988f1c42b7f421f78ac3659af1daee910ea2\n"
    },
    {
      "commit": "115d2dbf9313a02be01cbef0df966741186ed79b",
      "tree": "cab27a58b169ca2eda5b89dc2767d98a80342b69",
      "parents": [
        "b5144655c20e4362087c3797d17838a4d54fe7b3",
        "8009012644c56eff42408731ea60467565bfef80"
      ],
      "author": {
        "name": "Rob Carr",
        "email": "racarr@google.com",
        "time": "Fri Mar 03 01:16:25 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 03 01:16:28 2017 +0000"
      },
      "message": "Merge \"Revert \"SurfaceView: Include surfaceInsets in position calculation\"\""
    },
    {
      "commit": "8009012644c56eff42408731ea60467565bfef80",
      "tree": "14e17d2b6d476a6cb67fc7149c48f0b8b3417e06",
      "parents": [
        "8c31e1db2a2cea4278503d6b9b27bca87946ef36"
      ],
      "author": {
        "name": "Rob Carr",
        "email": "racarr@google.com",
        "time": "Fri Mar 03 01:15:36 2017 +0000"
      },
      "committer": {
        "name": "Rob Carr",
        "email": "racarr@google.com",
        "time": "Fri Mar 03 01:15:36 2017 +0000"
      },
      "message": "Revert \"SurfaceView: Include surfaceInsets in position calculation\"\n\nThis reverts commit 8c31e1db2a2cea4278503d6b9b27bca87946ef36.\n\nChange-Id: Id25f493ca272878c2105f9cd302db1e05284998d\n"
    },
    {
      "commit": "4f357c081260c5bb36498169eb698adf7089899c",
      "tree": "e99bc9de8d07837ede6c9871614b62fe931fe698",
      "parents": [
        "72a489c035dd536cd13c0a87fc74e9b45da43cae",
        "fc29f7acd1352efa97269b5f3856eb879d5cfd53"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 02 23:16:24 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 02 23:16:27 2017 +0000"
      },
      "message": "Merge \"Fix potential use-after-free in LayerUpdateQueue\""
    },
    {
      "commit": "e1c54d53f1fcb04337e6fc5654e24fddb52edc02",
      "tree": "2d74e8d17fd39399af0b18df585f83e437bb06e3",
      "parents": [
        "eea3e49b44c10e185c44be7f1c34562a688aa99d",
        "ea1fe9b9d6ff9f0a543489979a0a909acc9ea564"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 02 22:45:31 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 02 22:45:35 2017 +0000"
      },
      "message": "Merge \"Update SkiaDisplayList to use the modified SkLiteDL\""
    },
    {
      "commit": "7de2f9c73fbe93bfb7dff3c046cf7a3137599f6c",
      "tree": "d1db83724b9bc9f6e3dd82856d71675f65ed4a39",
      "parents": [
        "cb0629eaa1a63684b1e6dbb366d42e80a26a5da9"
      ],
      "author": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Thu Mar 02 12:45:10 2017 +0900"
      },
      "committer": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Fri Mar 03 07:23:23 2017 +0900"
      },
      "message": "Reinstate codes to enable RRO on system server\n\nTest: building succeeded and tested with sailfish\nBug: 35742444\nChange-Id: I99d0f1d097525d3eb46255d6cf823f6ae2a02385\n"
    },
    {
      "commit": "fc29f7acd1352efa97269b5f3856eb879d5cfd53",
      "tree": "bca5e58917a15e5f3ee37aed0dd3823c8e941c80",
      "parents": [
        "d632305e376c899f6d5cbcaa441350c310b9fe44"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 02 13:23:16 2017 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 02 13:30:15 2017 -0800"
      },
      "message": "Fix potential use-after-free in LayerUpdateQueue\n\nChange-Id: I090af2191576175b165a9db574a80123c16f0778\nFixes: 26548204\nTest: Builds \u0026 hwui unit tests pass\n"
    },
    {
      "commit": "ea1fe9b9d6ff9f0a543489979a0a909acc9ea564",
      "tree": "d3756d96996affb4ab248f212fb7b17291e14329",
      "parents": [
        "23e6ad0edab63091181f87b1b42ba931570c5496"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Mar 01 13:02:43 2017 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Mar 02 15:28:19 2017 -0500"
      },
      "message": "Update SkiaDisplayList to use the modified SkLiteDL\n\nSkLiteDL is no longer refcounted or a subclass of SkDrawable.\n\nTest: on device testing in SkiaGL mode\nChange-Id: I9ad53d764a26ab382d80d54908325962f2075802\n"
    },
    {
      "commit": "8c31e1db2a2cea4278503d6b9b27bca87946ef36",
      "tree": "b2fe7249d219ea97a192db9a43fed0a4b8a661b8",
      "parents": [
        "555bf41049bbc387d920704f7a1f23314bc84986"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Wed Mar 01 12:02:05 2017 -0800"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Thu Mar 02 10:38:40 2017 -0800"
      },
      "message": "SurfaceView: Include surfaceInsets in position calculation\n\nPreviously the WM was taking care of this.\n\nFixes: 35588318\nFixes: 34888808\nTest: Manual\nChange-Id: I8b48d89f830bbef43b0132d191b29552e9c35702\n"
    }
  ],
  "next": "298a146754e35cbc650aa991ebff1a41eefdbe80"
}
