)]}'
{
  "commit": "7c8fe6539eb6dc65f2030d9008d2ea65b28be543",
  "tree": "5421ef269ab9d8d3439b1dbc10b64af158401071",
  "parents": [
    "711b2f1e6d912e6514b3a4f74068104ddd79a4b5"
  ],
  "author": {
    "name": "Jeff Brown",
    "email": "jeffbrown@google.com",
    "time": "Tue Jan 26 15:51:52 2016 -0800"
  },
  "committer": {
    "name": "Jeff Brown",
    "email": "jeffbrown@google.com",
    "time": "Tue Jan 26 15:51:52 2016 -0800"
  },
  "message": "Add helpers for creating UI components.\n\nThese helpers make it easier to use Mozart in C++ and greatly\nreduce the amount of boilerplate involved in writing simple\napplications.\n\nView implementations:\n\n- BaseView: A base implementation of the View interface.\n- GLView: A View with an associated GLRenderer which takes care\n  of allocating, binding, and recycling textures.\n- GaneshView: A View with an associated GaneshRenderer which takes\n  care of setting up a GaneshContext and drawing to canvas.\n\nView providers:\n\n- ViewProviderApp: Skeleton of a simple app which offers the\n  ViewProvider interface and vends Views on demand.\n- ContextViewerApp: Skeleton of a simple app which offers the\n  ContentHandler interface and vends ViewProviders on demand.\n\nHelpers:\n\n- Choreographer: Coordinates the scheduling of drawing operations\n  on behalf of a View and compensates for lag.\n- InputHandler: Binds an InputListener on behalf of a View.\n\nBUG\u003d\nR\u003dabarth@google.com, viettrungluu@chromium.org\n\nReview URL: https://codereview.chromium.org/1556803002 .\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "915c5b404e4d6012bf10b40464ad85166d0989f9",
      "old_mode": 33188,
      "old_path": "mojo/BUILD.gn",
      "new_id": "a5ef8c71873779b9f06d5946b509785094d77054",
      "new_mode": 33188,
      "new_path": "mojo/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "95467d892c0745a2c4f8b681c04c292dcb08b6a7",
      "old_mode": 33188,
      "old_path": "mojo/common/strong_binding_set.h",
      "new_id": "99b25ea4d2214fec08cb936447ee8c4a4859d082",
      "new_mode": 33188,
      "new_path": "mojo/common/strong_binding_set.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a6c7b5abe5c00a177f9274ea0e43027c5cf021ad",
      "new_mode": 33188,
      "new_path": "mojo/ui/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b58faf4104e0f0ef0138561587a0f7020763c35b",
      "new_mode": 33188,
      "new_path": "mojo/ui/base_view.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "757dcb9ae88f7a950a3bbf26eb10ecd32b65267c",
      "new_mode": 33188,
      "new_path": "mojo/ui/base_view.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7ea295b682aecc1d9c44c15d884aaa9f38c3d973",
      "new_mode": 33188,
      "new_path": "mojo/ui/choreographer.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3708cc2ad1d49e2f63c570b65b758dc087a54655",
      "new_mode": 33188,
      "new_path": "mojo/ui/choreographer.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "69930820956b4180402ab4f0d4485fd809b81f8e",
      "new_mode": 33188,
      "new_path": "mojo/ui/content_viewer_app.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a45ebf9f2805ac22c75736db4da92adc8229939d",
      "new_mode": 33188,
      "new_path": "mojo/ui/content_viewer_app.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a1f47b3778053f4920d4ff75c0280ce90bec25a1",
      "new_mode": 33188,
      "new_path": "mojo/ui/ganesh_renderer.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5190ecd958a7b663c1cbaa5217e17356db46e244",
      "new_mode": 33188,
      "new_path": "mojo/ui/ganesh_renderer.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c70038096e380d593cd75d7b4540801af1f7da95",
      "new_mode": 33188,
      "new_path": "mojo/ui/ganesh_view.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7cf29e93d2882863dc8a0ab67c3dd590a577c6b3",
      "new_mode": 33188,
      "new_path": "mojo/ui/ganesh_view.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3adf50782b78f6f03ce575fe9ca7ca7bfe71176d",
      "new_mode": 33188,
      "new_path": "mojo/ui/gl_renderer.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a21c799fb9b792a0d389b2b7322880062289af8c",
      "new_mode": 33188,
      "new_path": "mojo/ui/gl_renderer.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c9ffabdfc612ed64f681c857476146c0ccd8914e",
      "new_mode": 33188,
      "new_path": "mojo/ui/gl_renderer_unittest.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3e7fea39dcfeefc361b33fad8c3e2bd667359ac7",
      "new_mode": 33188,
      "new_path": "mojo/ui/gl_view.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1f9796cdeac5f816f5bf39340a7b544b34e42607",
      "new_mode": 33188,
      "new_path": "mojo/ui/gl_view.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7eb06f8787e97d14db16a001b016f49c273e23f0",
      "new_mode": 33188,
      "new_path": "mojo/ui/input_handler.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "50735848f24971844b3c35287a7028cc03694a41",
      "new_mode": 33188,
      "new_path": "mojo/ui/input_handler.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "40d5a5bc8e526484fa9c4577821fb575eb0a1730",
      "new_mode": 33188,
      "new_path": "mojo/ui/view_provider_app.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "07668c6de304533b2a7062838b095899c3a8dda2",
      "new_mode": 33188,
      "new_path": "mojo/ui/view_provider_app.h"
    }
  ]
}
