)]}'
{
  "log": [
    {
      "commit": "2c5f6d2257075c8b5ced78b07ed8b2c2323f0df2",
      "tree": "807a15f1ccabd59c0fb94d770da0332f8f6304be",
      "parents": [
        "026bb7e036acdeb32e2a1d6bcd90f7031299aee5"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Tue Sep 26 12:30:35 2017 -0700"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Mon Oct 30 17:02:27 2017 -0700"
      },
      "message": "SurfaceFlinger: Implement merging of transaction objects.\n\nUseful for WindowManager to collect multiple transactions\nfrom independent units.\n\nTest: Transaction_test.cpp\nChange-Id: I52e89b038e3b375493169991e41cb75b67550264\n"
    },
    {
      "commit": "4cdc58f6840d15b4952149d2b345ec1f97d505bc",
      "tree": "33427f28bf11a635036f582ac94384ac57ce7fcf",
      "parents": [
        "049c1147a12684a6f95c6d8b326dc29208908d14"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Wed Aug 23 14:22:20 2017 -0700"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Wed Oct 11 14:31:20 2017 -0700"
      },
      "message": "SurfaceFlinger Transactions as distinct objects.\n\nEssentially a process global singleton for transactions is not so useful once\nwe make surface control public API as process isn\u0027t something an app developer\nis really thinking about. It\u0027s also nice that we get to delete two of the plumbing layers.\n\nTest: Boots\nChange-Id: I8864bd7e2f5865e3c0a425cf82f9928211911774\n"
    },
    {
      "commit": "13fdc49516d17f41e64e62e73c313b0928bf13cc",
      "tree": "556fefa10d7612c1577cacf0d954715829b791a2",
      "parents": [
        "dda5d5d7914297adb42e251e8aadaece4dc3e65a"
      ],
      "author": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Tue Jun 27 12:40:18 2017 -0700"
      },
      "committer": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Thu Sep 21 18:10:21 2017 -0700"
      },
      "message": "Added native functionality to create a color layer.\n\nAdded a new layer that can draw a specified color and specified\nalpha. This will replace creating a dim layer and allow any colors,\nnot just black, to be set for this layer.\n\nTest: Added tests to Transaction_test.cpp to test with a color\n      and a color layer with alpha.\n\nChange-Id: I00a38d1bbc01093026f088c3347454281bdc2b8c\n"
    },
    {
      "commit": "f1961f713de2b3f54c8ce7653964b969e1a02bc8",
      "tree": "00c1a633c54b33a445f8b498f11848ff03d07c0b",
      "parents": [
        "931dc01ad7c2d3eb1de276a7174cd55928d463aa"
      ],
      "author": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Mon Sep 18 16:41:07 2017 -0700"
      },
      "committer": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Wed Sep 20 11:52:37 2017 -0700"
      },
      "message": "Re-parent invoked on child instead of on parent.\n\nThe function to re-parent an individual child is now invoked on\nthe child instead of the parent. This ensures the child ends up with\nthe last parent set if multiple reparent requests are made in the same\ntransaction.\nThis also allows adding a parent to a layer that didn\u0027t have one\npreviously.\n\nTest: Transaction_test -\u003e Reparent, ReparentToNoParent,\nReparentFromNoParent\n\nChange-Id: Idab429eb2dca5a4ae1b020a5a7629d719dd4d995\n"
    },
    {
      "commit": "0617894190ea0c3ee50889bee1d4df0f369b0761",
      "tree": "77cd6f74a747fa53216f7b55899030a45c35910a",
      "parents": [
        "4908fe5617855aace933ad25b1071170e2606688"
      ],
      "author": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Thu Jul 27 10:25:59 2017 -0700"
      },
      "committer": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Wed Aug 23 11:28:02 2017 -0700"
      },
      "message": "Add a re-parent function to re-parent a specific child.\n\nThis is similar to reparentChildren, but the reparentChild will\nonly re-parent a specific child to the new parent and not all\nchildren.\n\nTest: Added test in Transaction_test for reparentChild.\n\nChange-Id: I4275e0d5f1d5601b489956753c78a56d1a5d4c1c\n"
    },
    {
      "commit": "db66e627ad8904491e384c64f82fc77a939b9705",
      "tree": "28bde44d8ef5a51448b544b511539a41ba336828",
      "parents": [
        "1d472756aa06f17c34020c35d2f2a598dce69bfb"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Mon Apr 10 16:55:57 2017 -0700"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Wed Apr 12 12:48:05 2017 -0700"
      },
      "message": "SurfaceFlinger: Add parent-less relative layering.\n\nThis is a temporary functionality for the intermediate state where not\nall child-surface like things in WM land are ported to use Child\nSurfaces. In particular, we have ported SurfaceView to use child\nsurfaces and relative Z ordering. However the TV frameworks provide a\nView framework component which overlays views over the SurfaceView but\nbelow the main application window. Since we have not ported View\nframework surfaces to use child layers, there is nothing the WM or\nView Framework can do about this situation. Luckily the WM API\u0027s to\nhave requested this are @hide but we have the one media framework\ncomponent using it. In order to solve this issue we provide a method\nto set Z ordering relative to another window without inheriting\nits coordinate space as a child window would. This way the WM can\nrecognize these TYPE_APPLICATION_MEDIA_OVERLAY windows and Z-order\nthem at -1 with respect to the parents (and the SurfaceView can be at\n-2).\n\nTest: Included in transaction tests. Also manual test of bug repro steps with accomp frameworks/base CL\nBug: 36693738\nChange-Id: I921852d3d34f67f79ec745b9703f9e679867e7a1\n"
    },
    {
      "commit": "0d48072f6047140119ff194c1194ce402fca2c0b",
      "tree": "3db72861fcac7b9a1622d3f7d75d54bcba2e22b3",
      "parents": [
        "e7f1979d8180ff9ab10422da2020e77fafe8d7d6"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Tue Jan 10 16:42:54 2017 -0800"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Mon Feb 27 10:20:10 2017 -0800"
      },
      "message": "Add deferTransaction variant taking GraphicBufferProducer.\n\nFor SurfaceView using child layers, the client framework\nwill not have access to the Handle* for the parent surface,\nbut still needs a way to defer transactions to it\u0027s frames.\n\nTest: Tested with corresponding SurfaceView modifications and existing tests.\nChange-Id: I6f01c360e85a95ff0ab08db406741221152e5d5c\n"
    },
    {
      "commit": "479c60c85c40fd3536b0c88036e838dc1a4c56a0",
      "tree": "9f6034273a86390db5b39f7a2e221dc23a51b9ad",
      "parents": [
        "27c5ac029619efe630a258aae92e2c496733c677"
      ],
      "author": {
        "name": "Albert Chaulk",
        "email": "achaulk@google.com",
        "time": "Fri Jan 27 14:21:34 2017 -0500"
      },
      "committer": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Tue Jan 31 16:29:42 2017 -0500"
      },
      "message": "Refactor how layer metadata for use by VR is propagated\nfrom WindowManager based on feedback in frameworks/base.\n\nSince windowType and ownerUid are immutable, they are sent\non creation instead of separate IPC.\n\nBug: 30984984\nTest: built locally\n\nChange-Id: I380b3cdcf6aec471fc23f1e27846ab80492e8add\n"
    },
    {
      "commit": "1db73f66624e7d151710483dd58e03eed672f064",
      "tree": "40d09da72f244ae593284ac3bd895d078e9c4220",
      "parents": [
        "bf89eb7b24f930e77be57bc7b6393e39691a4d35"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Wed Dec 21 12:58:51 2016 -0800"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Fri Jan 27 13:59:42 2017 -0800"
      },
      "message": "SurfaceFlinger: Add support for non-privileged clients.\n\nAllow clients without privilege to create child layers through scoped\nconnections. We enable this in preparation for allowing SurfaceView\nto bypass the WindowManager. We include support for reparenting of\nall of a layer\u0027s children for the WindowManager to use in cases where\none surface is replacing another (while keeping its children around).\n\nTest: Tested with corresponding SurfaceView modifications.\nChange-Id: I9920e6730d719113522a68788e63fb59f70d3406\n"
    },
    {
      "commit": "ae0608381b2b4699218febd6d45ad9d307544d55",
      "tree": "9cf2ccc9fb45be608329b963b3f960f506c882cd",
      "parents": [
        "6cf6af0299f7e48bc5bcdcd6a6c0f5a8725e9411"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Mon Nov 28 10:51:00 2016 -0800"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Tue Jan 24 10:57:40 2017 -0800"
      },
      "message": "SurfaceFlinger and libgui: Switch Z-order to signed type.\n\nIn preparation for SurfaceFlinger child layers. In that model\nchildren\u0027s Z order will be relative to their parent. We need\nnegative Z values to represent children stacking below their\nparent (e.g. SurfaceView). Java side already uses signed types\nstrangely enough.\n\nTest: Basically a refactoring. SurfaceFlinger still works.\nChange-Id: Ifcece69f6f9d917cbf5238a59f8e5de1e8ba6a25\n"
    },
    {
      "commit": "6cf6af0299f7e48bc5bcdcd6a6c0f5a8725e9411",
      "tree": "9570c8effb020bad764b3e5f88339a60ea77543f",
      "parents": [
        "146abf38c2442b77dc78a0565ad010376c9d1b69"
      ],
      "author": {
        "name": "Albert Chaulk",
        "email": "achaulk@google.com",
        "time": "Tue Nov 22 13:52:43 2016 -0500"
      },
      "committer": {
        "name": "Daniel Nicoara",
        "email": "dnicoara@google.com",
        "time": "Tue Jan 24 10:59:40 2017 -0500"
      },
      "message": "VR: Add API to plumb surface type and owner through to SurfaceFlinger\n\nThis is a cherry-pick of\nhttps://googleplex-android-review.git.corp.google.com/c/1648886/\n\nTest: None\nBug: None\nChange-Id: I338c84c2576ab85fa4f6d8e759c9e7ce912cdd61\n"
    },
    {
      "commit": "c3574f7b0141c69fdca25ccafb80ff334462f9a3",
      "tree": "7830169cb6639cbd8d612b34d27a605362e41c40",
      "parents": [
        "47babb84bcd2dcf4943687e33595ba58dc0dbe28"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Thu Mar 24 12:19:32 2016 -0700"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Sun Apr 17 20:07:34 2016 -0700"
      },
      "message": "Add setOverrideScalingMode to SurfaceControl\n\nProvide an interface for the window manager to override\nthe client specified scaling mode. This makes it possible\nfor the window manager to force windows to be scaleable\nfor animations, etc, even when a resize is pending.\n\nBug: 27891386\nChange-Id: Ic4aae9917bd6869ee0dbb425979b4e21c68342a3\n"
    },
    {
      "commit": "acbe67888f0bd65d5400400f0115bae6bd6199dc",
      "tree": "113c4432fde7ede1b20441993cef55796ce528b2",
      "parents": [
        "b49576d5241859a3cf03c9f34b8030ad25d3806b"
      ],
      "author": {
        "name": "Pablo Ceballos",
        "email": "pceballos@google.com",
        "time": "Fri Mar 04 17:54:21 2016 +0000"
      },
      "committer": {
        "name": "Pablo Ceballos",
        "email": "pceballos@google.com",
        "time": "Mon Mar 21 16:10:59 2016 -0700"
      },
      "message": "Add final crop implementation\n\nBug 26559810\n\nChange-Id: Idaccd13cd625c92d18665ddecebdbb266ea365f3\n"
    },
    {
      "commit": "7dde599bf1a0dbef7390d91c2689d506371cdbd7",
      "tree": "6580e646734b6d4c64ab1a99dc2c710d4c8e0df1",
      "parents": [
        "1fd88a560df8f58c3a798b25f64795e8306e527f"
      ],
      "author": {
        "name": "Dan Stoza",
        "email": "stoza@google.com",
        "time": "Fri May 22 09:51:44 2015 -0700"
      },
      "committer": {
        "name": "Rob Carr",
        "email": "racarr@google.com",
        "time": "Thu Oct 29 00:11:28 2015 +0000"
      },
      "message": "Support SurfaceView synchronization.\n\nAdd API for fetching the next frame number to be produced by\na given buffer producer. Add an API to SurfaceComposer to \ndefer execution of the current transaction until a given frame number. \nTogether these may be used to synchronize app drawing and surface \ncontrol updates.\n\nChange-Id: I8e0f4993332ac0199c768c88581a453fefbaff1d\n"
    },
    {
      "commit": "60d6922a011fe18c111b8d30fb6ef1f655b6b15e",
      "tree": "4618ad5fc60b4e25c76c9f5d1e80ad3223baff31",
      "parents": [
        "72f314a50f34de593686661b0a99906125d18bfd"
      ],
      "author": {
        "name": "Pablo Ceballos",
        "email": "pceballos@google.com",
        "time": "Fri Aug 07 14:47:20 2015 -0700"
      },
      "committer": {
        "name": "Pablo Ceballos",
        "email": "pceballos@google.com",
        "time": "Mon Aug 24 10:50:52 2015 -0700"
      },
      "message": "libsgui: Change Rect default constructor\n\nThe current Rect default constructor initializes to all zeroes. Change\nit to initialize to an invalid Rect.\n\nModify all of the existing invocations of the default constructor to\nmaintain the existing behavior.\n\nBug 18173359\n\nChange-Id: Ibbad076f1550a94f56d7b1cf5350071f2022e09a\n"
    },
    {
      "commit": "d723bd7669b4fc88dc282d8bf8ba5ecb2849d22f",
      "tree": "efc2d81e4ebf1f2499c5c5ec10323c6b3013a5ba",
      "parents": [
        "a950eb18792da6962fcefa69b12ffc3f9d8cdca8"
      ],
      "author": {
        "name": "Dan Stoza",
        "email": "stoza@google.com",
        "time": "Tue Nov 18 10:24:03 2014 -0800"
      },
      "committer": {
        "name": "Dan Stoza",
        "email": "stoza@google.com",
        "time": "Fri Dec 05 11:06:44 2014 -0800"
      },
      "message": "libgui: Enable -Weverything and -Werror\n\nEnables -Weverything and -Werror, with just a few exceptions for\nwarnings we can\u0027t (or shouldn\u0027t need to) work around.\n\nChange-Id: I034abec27bf4020d84af60d7acc1939c59986dd6\n"
    },
    {
      "commit": "2ea926bda2fa30f3ba8d0ed2d2395a8ada952e6e",
      "tree": "af1a760841833f80084aac64b548471259b647a4",
      "parents": [
        "aedb1c843e9a1d3149ca81d586fa168d146d8f5e"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 14 08:01:01 2014 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 14 14:01:29 2014 -0800"
      },
      "message": "Replace IInterface::asBinder() with a static\n\nso we can do NULL checks again, and update calls to IInterface::asBinder()\nto use the new static version.\n\nChange-Id: Ia7b10eb38ca55b72278bfd33d3bf647f338b4e6a\n"
    },
    {
      "commit": "54430ca2a88f57c709ea2924ea0b78820ae62643",
      "tree": "307094d84f0206118616b6812982432811a2fce6",
      "parents": [
        "078794ed377e7080ee155a632482bb98f1c9ade7",
        "793fc0e13d25bdecda1219999f8be2cb3c121d20"
      ],
      "author": {
        "name": "Michael Lentine",
        "email": "mlentine@google.com",
        "time": "Sat Nov 01 00:33:29 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Nov 01 00:33:29 2014 +0000"
      },
      "message": "am 793fc0e1: Merge \"Fix crash when user provides large values in the Parcel.\" into lmp-mr1-dev\n\n* commit \u0027793fc0e13d25bdecda1219999f8be2cb3c121d20\u0027:\n  Fix crash when user provides large values in the Parcel.\n"
    },
    {
      "commit": "8afa1c4ab86d724feb7716e153b7835385534590",
      "tree": "7f1f4e9f4cfbe0e72c96670d65fbbb5566e1732b",
      "parents": [
        "fae12d4fb45e2c4e8943811d784db04599c7e202"
      ],
      "author": {
        "name": "Michael Lentine",
        "email": "mlentine@google.com",
        "time": "Fri Oct 31 11:10:13 2014 -0700"
      },
      "committer": {
        "name": "Michael Lentine",
        "email": "mlentine@google.com",
        "time": "Fri Oct 31 16:08:44 2014 -0700"
      },
      "message": "Fix crash when user provides large values in the Parcel.\n\nBug: 18102648\nChange-Id: Ie6a24718e586a34424238363de80f9545951514f\n"
    },
    {
      "commit": "27b780b517eb18582f978da64febb31ecfa8e4bf",
      "tree": "dbabfbcf667a4fbaef5649247226f73779532ef5",
      "parents": [
        "f0ca2ade534275f624daea5ae3ba907a5c63afa6",
        "9cc849500df0bba42d3ed19b90c38ff1dffd2262"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Oct 15 22:52:51 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 15 22:52:51 2014 +0000"
      },
      "message": "am 9cc84950: Merge \"Don\\\u0027t check if this \u003d\u003d NULL.\"\n\n* commit \u00279cc849500df0bba42d3ed19b90c38ff1dffd2262\u0027:\n  Don\u0027t check if this \u003d\u003d NULL.\n"
    },
    {
      "commit": "1474f8864faafebc92ff79959bb5c698bd29b704",
      "tree": "7e60cb941b744698bb8bf40e81f50ff14c46e987",
      "parents": [
        "86aeb9ef154d7aa63c58cbe5be62e5b61d6ae5fa"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Sep 08 18:59:09 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 16 17:52:06 2014 -0700"
      },
      "message": "Don\u0027t check if this \u003d\u003d NULL.\n\nEntering a method with this \u003d\u003d NULL is undefined behavior. Clang whines\nabout this.\n\nChange-Id: Ibde628395ca10dfef0d2f59e81280576f104b83c\n"
    },
    {
      "commit": "47e45405d1533aa73307014f7bf371e118695cf3",
      "tree": "cabc47d4088308ed27b799d998a6d4a705e18058",
      "parents": [
        "1f6078aef71b1d3f080cd565adbec350c71088dd"
      ],
      "author": {
        "name": "Michael Lentine",
        "email": "mlentine@google.com",
        "time": "Fri Jul 18 15:34:25 2014 -0700"
      },
      "committer": {
        "name": "Michael Lentine",
        "email": "mlentine@google.com",
        "time": "Wed Jul 30 14:36:25 2014 -0700"
      },
      "message": "Allow for resizing of Virtual Displays.\n\nModify SurfaceFlinger to use VirtualDisplaySurface in all cases when a virtual\ndisplay is used. Add functionality in VirtualDisplaySurface to resize the\nbuffers aquired in the QueueBufferOutput. Add transaction support in\nSurfaceFlinger for resize. Add the modification of the size in DisplayDevice.\n\nChange-Id: Iae7e3556dc06fd18d470adbbd76f7255f6e6dd6b\nTested: None\n"
    },
    {
      "commit": "ac9fa427d4a86745e60a5f7fd8e3ea340c4db907",
      "tree": "657e6ec979339bc0e291247310af356e6a19ef7e",
      "parents": [
        "b997f6ef0f3fa7cf67fd7487b88e5d6ac0bb15e9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 11 16:40:36 2013 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Feb 13 15:27:08 2013 -0800"
      },
      "message": "get rid of Surface identity and token\n\nwe use the IBinder instead.\n\nChange-Id: I4aa0b58869ba43f19980013620051e5a261b062d\n"
    },
    {
      "commit": "2adaf04fab35cf47c824d74d901b54094e01ccd3",
      "tree": "1201bd220bfea6d308a119e6a986d783e548a10a",
      "parents": [
        "f7baee731e81bfa7f7ccf2e0e03560f5073bc431"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Dec 18 09:49:45 2012 -0800"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Dec 18 13:10:48 2012 -0800"
      },
      "message": "Rename ISurfaceTexture and SurfaceTexture\n\nThe C++ class names don\u0027t match what the classes do, so rename\nISurfaceTexture to IGraphicBufferProducer, and SurfaceTexture to\nGLConsumer.\n\nBug 7736700\n\nChange-Id: Ia03e468888025b5cae3c0ee1995434515dbea387\n"
    },
    {
      "commit": "8683fca395d01734ec7946e9f0595ec5d7b754c6",
      "tree": "fe3f6b92245be46902760c129e395c94589b9895",
      "parents": [
        "e57f292595bec48f65c8088b00ff6beea01217e9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Aug 12 19:37:16 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 13 02:46:05 2012 -0700"
      },
      "message": "improve [un]marshalling of non-binder objects\n\nthis change introduces a new class LightFlattenable\u003c\u003e which is\na protocol to flatten simple objects that don\u0027t require\nbinders or file descriptors; the benefit of this protocol is that\nit doesn\u0027t require the objects to have a virtual table and give us\na consitant way of doing this.\n\nwe also introduce an implementation of this protocol for\nPOD structures, LightFlattenablePod\u003c\u003e.\n\nParcel has been update to handle this protocol automatically.\n\nSensor, Rect, Point and Region now use this new protocol.\n\nChange-Id: Icb3ce7fa1d785249eb666f39c2129f2fc143ea4a\n"
    },
    {
      "commit": "e57f292595bec48f65c8088b00ff6beea01217e9",
      "tree": "2db8aac9c9056e099ad70d7ce70eb0ac7a8223ae",
      "parents": [
        "ef7b9c7eac036cc1230c64821039d18f8cbd2c1c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 09 16:29:12 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 10 17:32:33 2012 -0700"
      },
      "message": "make multi-display more real\n\n- displays are represented by a binder on the client side\n- c++ clients can now create and modify displays\n\nChange-Id: I203ea5b4beae0819d742ec5171c27568f4e8354b\n"
    },
    {
      "commit": "8b33f032327f8de0dcc0e6d0d43ed80f834b51f6",
      "tree": "d6228a0088740fe5f5c73f405f353bffd121bbae",
      "parents": [
        "921e6ac4b7610a178285898d191eb0e3afe906c0"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 24 20:43:54 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 24 20:43:54 2012 -0700"
      },
      "message": "update SF binder protocol to support setting display attributes\n\nno change of functionality -- the old behavior is implemented\non top of this new protocol.\nthis new protocol will allow, eventually, to pass informations\nabout displays and layer stacks.\n\nChange-Id: Ic6c2295e61ec8ecbc8ce01ab7664e35d928202fc\n"
    },
    {
      "commit": "90ac799241f077a7b7e6c1875fd933864c8dd2a7",
      "tree": "a3487a896595852219292e067fa6a3d9f25abed6",
      "parents": [
        "f91bb05132dccbb61a69351752d9ae47cc31f30d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Feb 25 18:48:35 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 27 13:03:08 2012 -0800"
      },
      "message": "fix libgui header location\n\nChange-Id: Iec71706cdd4f29c6904993648ce873e83ef9cafe\n"
    },
    {
      "commit": "698c0873cf2e07bdc7fd1e72169aee2a19fa40d7",
      "tree": "cf1a8a26a6568ad5dd1fa30d238b9651e09d3800",
      "parents": [
        "0748907d6a9a052fe54541cd7f6ec66b998fec3b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 28 19:09:31 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 29 15:05:41 2011 -0700"
      },
      "message": "SF transactions are now O(1) wrt IPC instead of O(N).\n\nChange-Id: I57669852cbf6aabae244ea86940a08a5a27ffc43\n"
    },
    {
      "commit": "d87f162026454f5a3e6437ed0c9ef51651a6b939",
      "tree": "702b5e56762a0236c86242279894607948c8fb71",
      "parents": [
        "d3f9a53bffa049d900ebb1a93048ab0bb6885b50"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 25 18:42:40 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 25 18:42:40 2011 -0700"
      },
      "message": "merge libsurfaceflinger_client into libgui\n\nthis is the first step in unifying surfacetexture and surface.\nfor this reason the header files were not moved, as most of them\nwill eventually go away.\n\nNOTE: currently we keep libsurfaceflinger_client.so as an empty\nlibrary to workaround prebuilt binaries wrongly linking against\nit.\n\nChange-Id: I130f0de2428e8579033dc41394d093f4e1431a00\n"
    },
    {
      "commit": "b6121422ef641dc7317d1c3bf1d38b7d73922250",
      "tree": "80dfecc782b2a9b5e3dfdec96703ffc8a1b6b9bd",
      "parents": [
        "3c8f46c8d82d158aef9d4e757d744fa11fb95ece"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Feb 17 20:22:26 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Feb 17 20:26:47 2010 -0800"
      },
      "message": "Remove a dependency of Region (libui) on Parcel (libbinder).\n"
    },
    {
      "commit": "9cce325fae8adcf7560a28eef394489f09bad74d",
      "tree": "3497604564acd2575016d3a331d661f22a8e6db3",
      "parents": [
        "4fae0fd0c9425318094d4c0059331c2c7a996c66"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 09 17:46:37 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 11 13:16:22 2010 -0800"
      },
      "message": "split libsurfaceflinger_client and libcamera_client out of libui\n"
    },
    {
      "commit": "c5b2c0bf8007562536b822eb060fc54a01f8e08b",
      "tree": "da6084f542177972cf72a985b5d2c10330f87de3",
      "parents": [
        "208059f67ed2dd9fa025e07fcb6954d3cb61c79e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 19 19:08:10 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 20 12:55:03 2009 -0700"
      },
      "message": "move libbinder\u0027s header files under includes/binder\n"
    },
    {
      "commit": "edbf3b6af777b721cd2a1ef461947e51e88241e1",
      "tree": "f09427b843b192cccf8c3b5328cb81dddf6489fa",
      "parents": [
        "d5193d9394c5e58176d7bcdf50ef017f8a3b9e1e"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "d5193d9394c5e58176d7bcdf50ef017f8a3b9e1e",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "43aa2b1cbf7a03e248e10f4d0fec0463257cd52d"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "7c1b96a165f970a09ed239bb4fb3f1b0d8f2a407",
      "tree": "df5a6539447324de36e95b057d6b9f0361b7a250",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
