)]}'
{
  "commit": "519b720aa0e0b620ba4111ab48e60c2e37f1d6d6",
  "tree": "a07acb0dc3bedf6a36cca3df206ce7cd114fda33",
  "parents": [
    "c8c63300ac8ecb66d8126af5407257209ae59044"
  ],
  "author": {
    "name": "Bryan Henry",
    "email": "bryanhenry@google.com",
    "time": "Thu Jul 28 16:47:30 2022 -0700"
  },
  "committer": {
    "name": "Brett Wilson",
    "email": "brettw@chromium.org",
    "time": "Fri Aug 05 23:00:24 2022 +0000"
  },
  "message": "[file_util] Add CreateAndOpenTemporaryFileInDir from chromium src/base\n\nThis brings CreateAndOpenTemporaryFileInDir over from upstream\nchromium\u0027s file_util since it will be useful for performing \"atomic\nwrites\" (i.e. write to temp + ReplaceFile) in GN.\n\nSlight modifications were made since GN\u0027s src/base is older than or has\ndrifted from chromium\u0027s in parts. base::File::Flags::FLAG_CREATE was\nadded as it was needed by the Windows temp file implementation (only\nFLAG_CREATE_ALWAYS existed so far), and the support for this flag was\nadded to both the Posix and Windows File::DoInitialize() impls.\nThe upstream impl also makes use of base::File\u0027s exclusive\nread/write/delete flags and DeleteOnClose support that only work on\nWindows, but these are unneeded and so were not ported over in this\nchange.\n\nChange-Id: I90b5c41f86900bce2aafdea8cb8bb59604998ef0\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/14320\nReviewed-by: Brett Wilson \u003cbrettw@chromium.org\u003e\nCommit-Queue: Brett Wilson \u003cbrettw@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cecb76dba1982a8cd717e0e235148c4acd68e6bb",
      "old_mode": 33188,
      "old_path": "src/base/files/file.cc",
      "new_id": "020c40f8d80623ef630f9e965bb271eadf9fd1e0",
      "new_mode": 33188,
      "new_path": "src/base/files/file.cc"
    },
    {
      "type": "modify",
      "old_id": "2c94eb4eff741cfeea4f5b781e2f04b57b12231a",
      "old_mode": 33188,
      "old_path": "src/base/files/file.h",
      "new_id": "419ba870b42cd89b67910839e87b0d7668753dfb",
      "new_mode": 33188,
      "new_path": "src/base/files/file.h"
    },
    {
      "type": "modify",
      "old_id": "b1f9f5e86f3cdf95c8929d91040487c006305ddb",
      "old_mode": 33188,
      "old_path": "src/base/files/file_posix.cc",
      "new_id": "a1d256cb61558f2506c8b779d6fc68464dd95fc6",
      "new_mode": 33188,
      "new_path": "src/base/files/file_posix.cc"
    },
    {
      "type": "modify",
      "old_id": "b44129d8fee895dbf93a3c6a763bc03480b3df17",
      "old_mode": 33188,
      "old_path": "src/base/files/file_util.h",
      "new_id": "dbb69ec4a5aaf477f424ec281b2a46a1f065bacb",
      "new_mode": 33188,
      "new_path": "src/base/files/file_util.h"
    },
    {
      "type": "modify",
      "old_id": "aa54731df54304fd669014094cdab2f5214546f5",
      "old_mode": 33188,
      "old_path": "src/base/files/file_util_posix.cc",
      "new_id": "b6181511929198743eddf0b043e42adba3792694",
      "new_mode": 33188,
      "new_path": "src/base/files/file_util_posix.cc"
    },
    {
      "type": "modify",
      "old_id": "9f4bf5b455774440c1c37c774d919f13bf217eb8",
      "old_mode": 33188,
      "old_path": "src/base/files/file_util_win.cc",
      "new_id": "150ddf6606283f7b299ff1dcb8f4478b5dc7398c",
      "new_mode": 33188,
      "new_path": "src/base/files/file_util_win.cc"
    },
    {
      "type": "modify",
      "old_id": "b68370b84b4381419c7013e56ba05a311079e7ec",
      "old_mode": 33188,
      "old_path": "src/base/files/file_win.cc",
      "new_id": "c58e071f067ad29cd5188ec69d634e1007a1c575",
      "new_mode": 33188,
      "new_path": "src/base/files/file_win.cc"
    }
  ]
}
