)]}'
{
  "commit": "2ab1becbc045062fa83202116c7dfe535ed7aeca",
  "tree": "df16facf751049f0e8f921d1eb7b9c6ef65fa45f",
  "parents": [
    "b645cc94e5aab3d6857d10714aa785b57369a65f"
  ],
  "author": {
    "name": "Christopher Wiley",
    "email": "wiley@chromium.org",
    "time": "Fri Apr 11 11:04:49 2014 -0700"
  },
  "committer": {
    "name": "chrome-internal-fetch",
    "email": "chrome-internal-fetch@google.com",
    "time": "Thu Apr 17 19:06:42 2014 +0000"
  },
  "message": "buffet: Add a helper to coordinate async callbacks\n\nWe frequently end up in situations where we want to call an \"init\nsucceeded\" callback after many other callbacks indicating partial\ninit success come back.  AsyncEventCoordinator will manage this\nprocess for us in a general way.\n\nBUG\u003dchromium:360831\nTEST\u003dUnittests\n\nCQ-DEPEND\u003dCL:193650\n\nChange-Id: I968a65e88d60199d0355743a2fcee7e20156bc31\nReviewed-on: https://chromium-review.googlesource.com/194362\nReviewed-by: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\nTested-by: Christopher Wiley \u003cwiley@chromium.org\u003e\nCommit-Queue: Alex Vakulenko \u003cavakulenko@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b447c70f64f93454002d2829156b18ec587685a8",
      "new_mode": 33188,
      "new_path": "buffet/async_event_sequencer.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "105be6d26b42ca53f8d167cbb02312566d63c6f6",
      "new_mode": 33188,
      "new_path": "buffet/async_event_sequencer.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d95ff569f1673fabf09cfeb246678a242ee8eed3",
      "new_mode": 33188,
      "new_path": "buffet/async_event_sequencer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "e4b2d2d6717fd633a1a0151e98ed18ce762363f5",
      "old_mode": 33188,
      "old_path": "buffet/buffet.gyp",
      "new_id": "85c17d4335333db3446faaedc2d60d407b35345a",
      "new_mode": 33188,
      "new_path": "buffet/buffet.gyp"
    }
  ]
}
