)]}'
{
  "commit": "2ba2b8d5259f250e4f7933de76645cf5113db6c0",
  "tree": "ce19983da61b589e2a7aefbc0b6123c3fae435b6",
  "parents": [
    "47678697d2a8f50608b28be77ada8a1d233391a1"
  ],
  "author": {
    "name": "Sean Klein",
    "email": "smklein@google.com",
    "time": "Wed Oct 28 16:38:09 2015 -0700"
  },
  "committer": {
    "name": "Sean Klein",
    "email": "smklein@google.com",
    "time": "Wed Oct 28 16:38:09 2015 -0700"
  },
  "message": "Creating a pexe content handler to translate and run pexes.\n\n-Creates translator and linker applications, which launch the pexe\ntranslator (pnacl-llc.nexe) and pexe loader (ld.nexe), passing a message\npipe handle.\n-Updates IRT to include callbacks for pexe translator and pexe loader.\n-Creates a content handler application, which contacts the translator\nand loader services, communicating with them via message pipes. Uses a mojom\ninterface to pass a message pipe to each application.\n-The translation process places a PEXE FILE into a temporary file, compiles\nthat pexe into a temporary OBJECT FILE, and finally links that object file\ninto a finalized temporary NEXE FILE. All file names are passed via message\npipes, and all files are unlinked after they are opened by the final service\nwhich uses them.\n-Adds some .pexe.mojo files to the nacl_nonsfi_apptests.\n\nTest by running:\n\u003e ./mojo/tools/mojob.py build\n\u003e ./out/Debug/mojo_shell --enable-multiprocess ./out/Debug/shell_apptests.pexe.mojo\n\nBUG\u003dhttps://github.com/domokit/mojo/issues/396\nR\u003dmseaborn@chromium.org, phosek@chromium.org\n\nReview URL: https://codereview.chromium.org/1382713002 .\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2c769ee7ad84008b12fc33df1461a4b23061cd33",
      "old_mode": 33188,
      "old_path": "DEPS",
      "new_id": "3ddc58f960576858bcbd0125bda024b6245b1dd6",
      "new_mode": 33188,
      "new_path": "DEPS"
    },
    {
      "type": "modify",
      "old_id": "cf13f4146c8897c29924996e39e2e37bb2f8f3a5",
      "old_mode": 33188,
      "old_path": "mojo/nacl/nonsfi/BUILD.gn",
      "new_id": "57530243b2eb827825074e03e096a71465fdee51",
      "new_mode": 33188,
      "new_path": "mojo/nacl/nonsfi/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "8fec9f82bda79752b285d251d4efcff4cf3ce01c",
      "old_mode": 33188,
      "old_path": "mojo/nacl/nonsfi/README.md",
      "new_id": "3ecae5a094d5eda32c073bbd018b20d427fa3a04",
      "new_mode": 33188,
      "new_path": "mojo/nacl/nonsfi/README.md"
    },
    {
      "type": "modify",
      "old_id": "4fed496dda4c831685e0759dcf5b0b5efc30f5ad",
      "old_mode": 33188,
      "old_path": "mojo/nacl/nonsfi/irt_mojo_nonsfi.cc",
      "new_id": "2c34e45c33d8306696415797b106585f68916309",
      "new_mode": 33188,
      "new_path": "mojo/nacl/nonsfi/irt_mojo_nonsfi.cc"
    },
    {
      "type": "modify",
      "old_id": "2895902882b46737ff58f4a8080ed35db5d59069",
      "old_mode": 33188,
      "old_path": "mojo/nacl/nonsfi/irt_mojo_nonsfi.h",
      "new_id": "e2d7b91bf45deb2e0a45bb26e598821cfab42c41",
      "new_mode": 33188,
      "new_path": "mojo/nacl/nonsfi/irt_mojo_nonsfi.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "024d4075744f1a6628d1149d84b491d7be818547",
      "new_mode": 33188,
      "new_path": "mojo/nacl/nonsfi/irt_pnacl_translator_compile.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "83d6a798972f3ed5506249d78df4c2e2c8c49f4a",
      "new_mode": 33188,
      "new_path": "mojo/nacl/nonsfi/irt_pnacl_translator_link.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0587f97082ad133cf8dcec8e10d6e8c83a8701b0",
      "new_mode": 33188,
      "new_path": "mojo/nacl/nonsfi/irt_resource_open.cc"
    },
    {
      "type": "modify",
      "old_id": "c8edb8b0a959c55c67f9f08b406949a7995d14f8",
      "old_mode": 33188,
      "old_path": "mojo/nacl/nonsfi/nexe_launcher_nonsfi.cc",
      "new_id": "778ee73942e0d030d372c1df3a3b0116372e4985",
      "new_mode": 33188,
      "new_path": "mojo/nacl/nonsfi/nexe_launcher_nonsfi.cc"
    },
    {
      "type": "modify",
      "old_id": "66172ec1a74a8effb3108e2ef7649fb2787a9838",
      "old_mode": 33188,
      "old_path": "mojo/nacl/nonsfi/nexe_launcher_nonsfi.h",
      "new_id": "b9e65125cc3eeaba04b4eccc6497a6f0650049c7",
      "new_mode": 33188,
      "new_path": "mojo/nacl/nonsfi/nexe_launcher_nonsfi.h"
    },
    {
      "type": "modify",
      "old_id": "1521e8f1f47d34a732d84d25b4baf618ad6f9960",
      "old_mode": 33188,
      "old_path": "mojo/nacl/sfi/BUILD.gn",
      "new_id": "ad61038ad139b001595c4bc1171b6663a42ef8b4",
      "new_mode": 33188,
      "new_path": "mojo/nacl/sfi/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "9b759c1fc9b21d4d45b870c4e0478b2fa0d07cd4",
      "old_mode": 33188,
      "old_path": "mojo/public/mojo_application.gni",
      "new_id": "faf9d096db54bdc44b3fd5c499b5610ef573d0b1",
      "new_mode": 33188,
      "new_path": "mojo/public/mojo_application.gni"
    },
    {
      "type": "modify",
      "old_id": "790deb3212479ad7b16fbec93129a29f245ff05d",
      "old_mode": 33188,
      "old_path": "mojo/tools/data/nacl_nonsfi_apptests",
      "new_id": "b72fae3dcd4aa87ffca36aaeb3791094b5d6b8f5",
      "new_mode": 33188,
      "new_path": "mojo/tools/data/nacl_nonsfi_apptests"
    },
    {
      "type": "modify",
      "old_id": "15c97d58832f282bbe2e16209ab26969d7bfa261",
      "old_mode": 33188,
      "old_path": "services/nacl/BUILD.gn",
      "new_id": "2dd258c91d37b0c3ad49bd7df338a565fadf0b3e",
      "new_mode": 33188,
      "new_path": "services/nacl/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "59b0dc7eed98b6c6cbb5205a417d5e89a53330e5",
      "old_mode": 33188,
      "old_path": "services/nacl/content_handler_main_nonsfi.cc",
      "new_id": "5eee6753e1869e8255ec5760f9dc5d0ae731ca44",
      "new_mode": 33188,
      "new_path": "services/nacl/content_handler_main_nonsfi.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6a503d6ca24e642b238fed987eab61f188b29b53",
      "new_mode": 33188,
      "new_path": "services/nacl/content_handler_main_nonsfi_pexe.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b661bca43eacf83409e99302702dab29c4d01cc7",
      "new_mode": 33188,
      "new_path": "services/nacl/pnacl_compile.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "64995c818f3ba8fb6306a6dbf257f70806e68e38",
      "new_mode": 33188,
      "new_path": "services/nacl/pnacl_compile.mojom"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "61ffd17e7ebe0d68065f21c39befedf24ddae271",
      "new_mode": 33188,
      "new_path": "services/nacl/pnacl_link.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "08814939db40cade80386fbe9e4522f08feb0f83",
      "new_mode": 33188,
      "new_path": "services/nacl/pnacl_link.mojom"
    }
  ]
}
