)]}'
{
  "commit": "65138ce8c234734966a4e299d8feba01d8c9ce07",
  "tree": "02ee8c400d058271e9f7e7eeb6fc162b716447ac",
  "parents": [
    "aac1322758450a256de74cf16f6e7deaed711d61"
  ],
  "author": {
    "name": "Viet-Trung Luu",
    "email": "viettrungluu@chromium.org",
    "time": "Wed May 11 16:17:15 2016 -0700"
  },
  "committer": {
    "name": "Viet-Trung Luu",
    "email": "viettrungluu@chromium.org",
    "time": "Wed May 11 16:17:15 2016 -0700"
  },
  "message": "Add a new way of using ServiceProviderImpl without InterfaceFactory.\n\nInstead, just take a factory function. This has a number of advantages:\n* Classes don\u0027t have to implement InterfaceFactory\u003cI\u003e in order to\n  \"provide\" services.\n* Classes can (easily) instantiate impls in different ways (or\n  instantiate different impls for the same service).\n\nFor now, the new method is called |AddServiceNew\u003cI\u003e()|, but I plan to\nget rid of |AddService\u003cI\u003e()| and rename |AddServiceNew| to |AddService|.\n\nAlso, add a bunch of tests.\n\nR\u003dvardhan@google.com\n\nReview URL: https://codereview.chromium.org/1973653002 .\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3507974d0832f657e4a11885458efb7fe7b9fded",
      "old_mode": 33188,
      "old_path": "mojo/public/cpp/application/application_connection.h",
      "new_id": "8979d0cf4b81e6a74d4b39ee619e53bc6a67e07b",
      "new_mode": 33188,
      "new_path": "mojo/public/cpp/application/application_connection.h"
    },
    {
      "type": "modify",
      "old_id": "5e5da65da90df9dc9086ef6306d4c48b09b21e92",
      "old_mode": 33188,
      "old_path": "mojo/public/cpp/application/lib/service_provider_impl.cc",
      "new_id": "e7978b6aa05ef8229a22ac29e468aac3a0712880",
      "new_mode": 33188,
      "new_path": "mojo/public/cpp/application/lib/service_provider_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "6be0e100bc6804d57cef043ede377d6d3c58645f",
      "old_mode": 33188,
      "old_path": "mojo/public/cpp/application/lib/service_registry.cc",
      "new_id": "3c34628cc845418e27cf0bf515d5f77ccdd6f3e0",
      "new_mode": 33188,
      "new_path": "mojo/public/cpp/application/lib/service_registry.cc"
    },
    {
      "type": "modify",
      "old_id": "50e5a433518a564df53525b04194ba245e7a19e2",
      "old_mode": 33188,
      "old_path": "mojo/public/cpp/application/lib/service_registry.h",
      "new_id": "1389d37cdb5d8e24da92640739498eff97af32a2",
      "new_mode": 33188,
      "new_path": "mojo/public/cpp/application/lib/service_registry.h"
    },
    {
      "type": "modify",
      "old_id": "1afa14b21aea02c7dec3f27df062189c8103ba6b",
      "old_mode": 33188,
      "old_path": "mojo/public/cpp/application/service_provider_impl.h",
      "new_id": "b8859244ddf3337ec30f4fb53f32dcf6b876d6a8",
      "new_mode": 33188,
      "new_path": "mojo/public/cpp/application/service_provider_impl.h"
    },
    {
      "type": "modify",
      "old_id": "7766a7d28a89b834c716b65ab326e7c6ceb7d9bb",
      "old_mode": 33188,
      "old_path": "mojo/public/cpp/application/tests/BUILD.gn",
      "new_id": "284f54d3cd601c19e88926dec08b11c367479980",
      "new_mode": 33188,
      "new_path": "mojo/public/cpp/application/tests/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e0a4f12297e20a88ab03f75c0acafe20cf1a72b5",
      "new_mode": 33188,
      "new_path": "mojo/public/cpp/application/tests/service_provider_impl_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "25119728bf0e7cc60a78dc0219535f7125d40a84",
      "old_mode": 33188,
      "old_path": "services/log/log_impl_unittest.cc",
      "new_id": "8500ce12e43ffc320b1a015548e178ac0e2dde79",
      "new_mode": 33188,
      "new_path": "services/log/log_impl_unittest.cc"
    }
  ]
}
