)]}'
{
  "commit": "f3806f57a59ede663f3fa2ad1f5080bdbf20e372",
  "tree": "2321c0da2589e0a72cd1d430d9e605a7d7a9831b",
  "parents": [
    "8acb1a7570f797b387f08af166085008291d4d4b"
  ],
  "author": {
    "name": "Yohei Yukawa",
    "email": "yukawa@google.com",
    "time": "Thu Jun 30 16:27:46 2016 -0700"
  },
  "committer": {
    "name": "Yohei Yukawa",
    "email": "yukawa@google.com",
    "time": "Thu Jun 30 16:27:46 2016 -0700"
  },
  "message": "Automatically grant URI permission as needed.\n\nWith this CL, the system automatically grants a temporary URI permission\nto the target application when the IME calls\nInputConnection#commitContent() with\nInputConnection#INPUT_CONTENT_GRANT_READ_URI_PERMISSION.  The temporary\npermission will be revoked by any of the following events:\n - InputContentInfo#releasePermission() is explicitly called by the\n   target application.\n - The target application returned false in\n   InputConnection#commitContent().\n - All the InputContentInfo instances copied from the original one are\n   GC-ed.\n\nIf we do not do this and there is an application that forgot to call\nthat method then there is no way for IME developers to prevent\npermission denial from happening in the application except for relaxing\nthe default permission of the ContentProvider just because of such an\napplication.\n\nAlthough application developers are still expected to explicitly call\nInputContentInfo#{request,release}Permission(), forgetting to call\nInputContentInfo#requestPermission() does not hurt the user anymore.\n\nWith this CL, calling InputContentInfo#requestPermission() after calling\nInputContentInfo#releasePermission() is also allowed.\n\nBug: 29892936\nChange-Id: Id955435dd2e72549ee7134f46b3c6951581694ad\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9579bbf32835521a0ed61d28f0b25eb3b1a5478f",
      "old_mode": 33188,
      "old_path": "core/java/android/view/inputmethod/InputContentInfo.java",
      "new_id": "b39705e0b1fa686b1d6ceabc3ee9a1e10a5e27df",
      "new_mode": 33188,
      "new_path": "core/java/android/view/inputmethod/InputContentInfo.java"
    },
    {
      "type": "modify",
      "old_id": "62e34a6780fc88e5bda5f35f2898c8be9589f2de",
      "old_mode": 33188,
      "old_path": "core/java/com/android/internal/view/IInputConnectionWrapper.java",
      "new_id": "644c7e90f8b024a0ddf41d36ca28db926b7ce988",
      "new_mode": 33188,
      "new_path": "core/java/com/android/internal/view/IInputConnectionWrapper.java"
    }
  ]
}
