)]}'
{
  "log": [
    {
      "commit": "abf68efce04686abcc440119ae984572c2f98381",
      "tree": "89fb1b962b5b19fc1d754b81cf4783ce1fe8d347",
      "parents": [
        "369afb2ffe24f7c953dcd3eed71b3f1529670732"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri Jun 26 21:01:40 2026"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri Jun 26 21:02:30 2026"
      },
      "message": "Make CheckCBORMessage return evenlope size\n\nThis simplifies message validation and handling on the client side while avoiding extra parsing.\n\nBug: 517978932\nChange-Id: Ie58f46a388997cb194ac511c37a3f78f7af81e8a\n"
    },
    {
      "commit": "369afb2ffe24f7c953dcd3eed71b3f1529670732",
      "tree": "059e2789a9a3b7987e8d5a430267b72abe75afba",
      "parents": [
        "1b9a1bc5962c85e2a933fb34a77ecd8b73799f1d"
      ],
      "author": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Mon Jun 22 07:45:01 2026"
      },
      "committer": {
        "name": "Philipp Wollermann",
        "email": "philwo@google.com",
        "time": "Mon Jun 22 07:45:01 2026"
      },
      "message": "Use relative paths in depfiles\n\nThe code generator\u0027s depfile mixed relative dependency paths (the .pdl\ndomain files) with absolute ones (the jinja templates, whose filenames\ncome from FileSystemLoader(realpath(__file__))). The absolute paths\nembed the generator\u0027s checkout location, so the depfile differs\nneedlessly between output dirs even when the dependencies are identical.\n\nMake every dependency relative to the cwd (the output dir, which is what\nthe build tool resolves depfile paths against). The .pdl paths are\nunchanged; the others become \"../../third_party/inspector_protocol/...\".\n\nBug: 526251886\nChange-Id: Ic4134b6d8e6606ac219c621025b9648977ea4272"
    },
    {
      "commit": "1b9a1bc5962c85e2a933fb34a77ecd8b73799f1d",
      "tree": "8f7a56903f149ef83c752c9e9e22e43738329ee1",
      "parents": [
        "888b4b7ee03b15e6381c36089d6748f79d9b35f8"
      ],
      "author": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Mon Jun 15 09:03:32 2026"
      },
      "committer": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Mon Jun 15 09:03:32 2026"
      },
      "message": "Remove alph@ from inspector-protocol owners\n\nDue to inactivity.\n\nChange-Id: I22332cf99baef7eb420e95c3622e90e4f33343d0"
    },
    {
      "commit": "888b4b7ee03b15e6381c36089d6748f79d9b35f8",
      "tree": "6da5cbfb5e64f0c4cb5a1a46cefbb519a9354a07",
      "parents": [
        "b5c91bec1c204225712951255152ba5f82f08867"
      ],
      "author": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Mon Jun 15 07:34:56 2026"
      },
      "committer": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Mon Jun 15 07:35:28 2026"
      },
      "message": "Check String16 keys in HasKeyInMap\n\nthis method is used to check that CDP events do not have a sessionId\nkey. This CL fixes the bug that did not consider sessionId keys encoded\nas utf-16.\n\nBug: 524029061\nChange-Id: I3be7f2a020adaec0caca833895b896a947149ff6\n"
    },
    {
      "commit": "b5c91bec1c204225712951255152ba5f82f08867",
      "tree": "dc0a2a0903676d10764c30d94e9eebabebbc5b3d",
      "parents": [
        "c0045057ce801744c5e88596a2f1bab1802e39f0"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Tue Jun 02 18:07:06 2026"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Tue Jun 02 18:07:06 2026"
      },
      "message": "Pass a span referring to static method name to protocol Callbacks\n\nThis undoes a drive-by change in c0045057ce801744c5e88596a2f1bab1802e39f0 that\naccidendally made a span with method name stored in protocol commands to refer\nto heap data instead of a static memory.\n\nBug: 518930988\nChange-Id: I9a61be84f672114faaefa1d5ba0f47ba4256fe3c"
    },
    {
      "commit": "c0045057ce801744c5e88596a2f1bab1802e39f0",
      "tree": "5069ed84a6c8cd84f473644609b4ac0af51e4162",
      "parents": [
        "e315fa77607f23ea11a1aef751de744d8cb94ce0"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Thu May 28 22:47:42 2026"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri May 29 00:02:51 2026"
      },
      "message": "Support falling through with associated data\n\n- introduce Response::FallThrough(std::string) as an overload\n- add fallthrough_data as a member of dispatchable and require it\n    in constructor;\n- support pass_associated_data in protocol_config.json\n- if the latter is specified, pass additional parameter to impl method.\n\nBug: 512156136\nChange-Id: I64ddf774c27e116092535c431c9ec71b7dec7b91"
    },
    {
      "commit": "e315fa77607f23ea11a1aef751de744d8cb94ce0",
      "tree": "4b9f3d882d58cb1a4f2bca8f6bf6e64db70ef0c2",
      "parents": [
        "d025eb48e8febbe8b846b2675e031295c8ef605e"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri May 22 23:48:40 2026"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri May 22 23:55:44 2026"
      },
      "message": "Simplify protocol command dispatch\n\nThis reduces the amount of inversion of control when dispatching a\nprotocol command. In other words, instead of returning a callback\nto dispatch a command, the domain (and uber) dispatcher just execute\nthe command. A fallthrough callback is now passed along with the\ndispatchable.\n\nSee downstream CL for projected usage: https://chromium-review.git.corp.google.com/c/chromium/src/+/7851363\n\nChange-Id: I284e2e8b2562d8f3c1ca5398f1fe0612af8e40e4\n"
    },
    {
      "commit": "d025eb48e8febbe8b846b2675e031295c8ef605e",
      "tree": "76fbc61e451d08dc20abe612e7e8fe514960e4bf",
      "parents": [
        "874bbc6ee5e0cbf24bcee399e20052649b86837b"
      ],
      "author": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Mon May 18 10:33:51 2026"
      },
      "committer": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Mon May 18 10:33:51 2026"
      },
      "message": "Add HasKeyInMap\n\nSimilar to GetString8ValueFromMap it will be used for validating CDP\nmessages. Specifically, it will be used to ensure that events have do\nnot top-level ID attribute. The method does not check types because\nclients might treat ID the same way irrespective of the type.\n\nBug: 513713927\nChange-Id: I342961856151195f75ea465e3317cf8324297b3f"
    },
    {
      "commit": "874bbc6ee5e0cbf24bcee399e20052649b86837b",
      "tree": "1b2ed37c6654da7188b12c9497602cf50265a926",
      "parents": [
        "188d5eb82e5ce156c92a79bf418830eca575eb2c"
      ],
      "author": {
        "name": "Danil Somsikov",
        "email": "dsv@chromium.org",
        "time": "Thu May 07 14:09:42 2026"
      },
      "committer": {
        "name": "Danil Somsikov",
        "email": "dsv@chromium.org",
        "time": "Thu May 07 14:14:07 2026"
      },
      "message": "Harden sessionId verification and CBOR parsing\n\nThis CL prevents a compromised renderer from spoofing session\nIDs in DevTools protocol messages by hardening CBOR parsing.\n\n - CBOR Hardening: Overhauled GetString8ValueFromMap in crdtp\n   to reject duplicate keys and enforce a flat map structure.\n   To ensure strict and safe validation, it explicitly ignores\n   non-STRING8 values (such as STRING16).\n - Testing: Added unit tests to cbor_test.cc to verify the\n   rejection of duplicates, nested structures, and invalid\n   encodings.\n\nBug: 497532918\nChange-Id: I139e6af4102dcd4e46616e1087c6f9a599562fb2\n"
    },
    {
      "commit": "188d5eb82e5ce156c92a79bf418830eca575eb2c",
      "tree": "bea52c51b651f1e2075a0f5685a49dd208c88921",
      "parents": [
        "39acff851716ef40aaa0312ce0d359e37ef0d467"
      ],
      "author": {
        "name": "Danil Somsikov",
        "email": "dsv@chromium.org",
        "time": "Thu Apr 23 18:30:09 2026"
      },
      "committer": {
        "name": "Danil Somsikov",
        "email": "dsv@chromium.org",
        "time": "Thu Apr 23 18:30:09 2026"
      },
      "message": "Add GetString8ValueFromMap utility for shallow parsing\n\nThis change adds GetString8ValueFromMap to the crdtp library to enable safe and efficient shallow parsing of CBOR-encoded protocol messages. This utility allows extracting a specific top-level string value (such as sessionId) without requiring full deserialization of the message payload.\n\nBug: 497532918\nChange-Id: I9432955d644688300aadc634c189ddac0de3cca4"
    },
    {
      "commit": "39acff851716ef40aaa0312ce0d359e37ef0d467",
      "tree": "28bb402bd57cf801b8591789d1b5aa6498238d41",
      "parents": [
        "990edad849dd014ba3e37ed7c521d0b8e75d8514"
      ],
      "author": {
        "name": "Victor Hugo Vianna Silva",
        "email": "victorvianna@google.com",
        "time": "Wed Dec 17 22:59:45 2025"
      },
      "committer": {
        "name": "Victor Hugo Vianna Silva",
        "email": "victorvianna@google.com",
        "time": "Wed Dec 17 22:59:45 2025"
      },
      "message": "Roll src/third_party/mini_chromium/mini_chromium/ c4bcfd045..706fce5b1 (25 commits)\n\nhttps://chromium.googlesource.com/chromium/mini_chromium/+log/c4bcfd045d8d..706fce5b1a28\n\n$ git log c4bcfd045..706fce5b1 --date\u003dshort --no-merges --format\u003d\u0027%ad %ae %s\u0027\n2025-12-17 victorvianna Build mini_chromium with C++23\n2025-07-25 venkateshs mini_chromium: Remove Barrier_AtomicIncrement, no longer used\n2025-08-15 jperaza Remove remaining references to StringPiece\n2025-08-15 jperaza Convert base::StringPiece to std::string_view\n2025-07-23 csuter base: Switch to Fuchsia\u0027s SDK logging API\n2025-05-28 avi Change mini_chromium\u0027s deployment target to macOS 12\n2025-04-23 ellyjones base: remove numerics namespace from byte ops\n2025-04-04 benhamilton [base] Fix Windows 64-bit build warnings\n2025-04-04 justincohen ios: Fix compile with Xcode 16.3\n2025-03-24 paulkirth Fix -Wimplicit-int-conversion error\n2025-03-25 mark Add .clang-format\n2025-03-21 kubo build: Add tvOS\u0027s id to BuildInfo.plist\u0027s UIDeviceFamily array\n2025-03-25 kubo base: Remove USE_ASL and corresponding usage from base/logging.cc\n2025-03-25 kubo build: Add tvOS support to C++ and GN\n2025-03-15 tamird apple: Remove unused references to SecKeychain\n2025-02-27 mark Fix win-arm64 MSVC builds, and maybe other builds\n2025-02-26 mark win_helper: invoke vswhere with -products * to work with VS Build Tools\n2025-02-26 mark Reformat all Python scripts according to Google style\n2025-02-25 thakis Run clang arm64 asm under env wrapper\n2025-02-24 thakis Enable clang by default on Windows\n2025-02-13 thakis Prepare mini_chromium for using clang on Windows\n2025-01-17 mark OWN mini_chromium\n2024-12-17 lgrey Remove distutils dependency\n2024-12-12 pkasting Fix template param shadowing.\n2024-12-12 pkasting Add fixed_extent to base::span.\n\nCreated with:\n  roll-dep src/third_party/mini_chromium/mini_chromium\n\nChange-Id: Ie78ec146cb368e68408b034b758959f10e374fb5"
    },
    {
      "commit": "990edad849dd014ba3e37ed7c521d0b8e75d8514",
      "tree": "71349b039de195122932ec18766626bbd8d7c75b",
      "parents": [
        "06dc118a7be787dbcc992a55bf4fdeebf4e24fe7"
      ],
      "author": {
        "name": "Victor Hugo Vianna Silva",
        "email": "victorvianna@google.com",
        "time": "Wed Dec 17 22:05:12 2025"
      },
      "committer": {
        "name": "Victor Hugo Vianna Silva",
        "email": "victorvianna@google.com",
        "time": "Wed Dec 17 22:05:12 2025"
      },
      "message": "Roll src/third_party/gtest/gtest from 16f637fbf4ff to 4fe3307fb2d9\n\nhttps://chromium.googlesource.com/external/github.com/google/googletest/+log/16f637fbf4ff..4fe3307fb2d9\n\nDrive-by: third_party/ninja should be src/third_party/ninja.\n\nChange-Id: Ic2e27709a1622c541258ee815fca52f35fc7eeab"
    },
    {
      "commit": "06dc118a7be787dbcc992a55bf4fdeebf4e24fe7",
      "tree": "1a1f9151f3b3406cb756ce468d36487278ddee7b",
      "parents": [
        "66073fd92bcdaea443057260eecc52679891cf5b"
      ],
      "author": {
        "name": "Victor Hugo Vianna Silva",
        "email": "victorvianna@google.com",
        "time": "Wed Dec 17 22:04:22 2025"
      },
      "committer": {
        "name": "Victor Hugo Vianna Silva",
        "email": "victorvianna@google.com",
        "time": "Wed Dec 17 22:04:22 2025"
      },
      "message": "Format third_party/gtest/BUILD.gn\n\nChange-Id: Id7bd54b39e7065184d4e5b93d22867ec5afe1958"
    },
    {
      "commit": "66073fd92bcdaea443057260eecc52679891cf5b",
      "tree": "7a1b1350c739cd610d2bc11ddf444bf6dc473ed1",
      "parents": [
        "679b33a98ae546ff521eee2ea28d8d5bf28872ba"
      ],
      "author": {
        "name": "Elly",
        "email": "ellyjones@chromium.org",
        "time": "Thu Dec 11 23:30:37 2025"
      },
      "committer": {
        "name": "Elly",
        "email": "ellyjones@chromium.org",
        "time": "Thu Dec 11 23:30:37 2025"
      },
      "message": "erase(std::remove(...)) -\u003e std::erase(...)\n\nBug: 41408868\nChange-Id: I697662c005b41b0402c8d3f77fe91c795420ade9"
    },
    {
      "commit": "679b33a98ae546ff521eee2ea28d8d5bf28872ba",
      "tree": "643b5b2faeafa7beb54beb770d1141eb200da33c",
      "parents": [
        "1b1bcbbe060e8c8cd8704f00f78978c50991b307"
      ],
      "author": {
        "name": "David Benjamin",
        "email": "davidben@google.com",
        "time": "Mon Oct 06 15:08:46 2025"
      },
      "committer": {
        "name": "David Benjamin",
        "email": "davidben@google.com",
        "time": "Mon Oct 06 15:09:50 2025"
      },
      "message": "Format some files\n\nV8 expects the roll to run git cl format. inspector_protocol is not\ngit-cl-format-clean right now. This patches in the changes that apply\nback upstream.\n\nThis does not fully remove the format step from the V8 roll:\n\n- V8 rewrites some C++ files, which causes the formatting to diverge.\n\n- Some Python files in inspector_protocol use 4-space indent, which V8\n  rewrites back to 2-space indent. I have left this alone, because it\u0027s\n  not clear to me which is the preferred inspector_protocol style.\n\nSee https://chromium-review.googlesource.com/c/v8/v8/+/7006587\n\nChange-Id: I240c8f4ea5bfb066733736888e73344fa6a7cd36\n"
    },
    {
      "commit": "1b1bcbbe060e8c8cd8704f00f78978c50991b307",
      "tree": "3257a113870a57cc47ad134eacdf89d16f8fd536",
      "parents": [
        "4cbd5a109cb6f9fc3a5a798dcda8d78ec68f16ca"
      ],
      "author": {
        "name": "David Benjamin",
        "email": "davidben@chromium.org",
        "time": "Wed Oct 01 21:01:49 2025"
      },
      "committer": {
        "name": "David Benjamin",
        "email": "davidben@chromium.org",
        "time": "Wed Oct 01 21:01:49 2025"
      },
      "message": "Fix compilation of generated C++ with C++23\n\nAs a side effect of making ~unique_ptr\u003cT\u003e constexpr and how Clang\nimplements things, T must be complete at the point where the template is\ninstantiated. A forward declaration, with the type filled in later,\nisn\u0027t sufficient.\n\nThis breaks, among other things, in some of the synthesized inspector\nprotocol code. I tried to fix this by reordering the types, but there\nare some types in the protocol that recursively reference each other.\n\nTo fix this, declare all the types first, but push some methods, which\nwould otherwise instantiate unique_ptr\u0027s in their fields, to after all\nthe types have been declared.\n\nBug: 388068055\nChange-Id: I21304ea2141d2450ca84a5b544055b4abdb20ec4"
    },
    {
      "commit": "4cbd5a109cb6f9fc3a5a798dcda8d78ec68f16ca",
      "tree": "d13fec3a32bd6be4251872ee37540a10d4d52db1",
      "parents": [
        "1ac1ec6d0c61c081cc73793e491b987beecccde1"
      ],
      "author": {
        "name": "Takuto Ikuta",
        "email": "tikuta@google.com",
        "time": "Tue Sep 30 02:47:58 2025"
      },
      "committer": {
        "name": "Takuto Ikuta",
        "email": "tikuta@google.com",
        "time": "Tue Sep 30 02:47:58 2025"
      },
      "message": "Make depfile deterministic\n\nChange-Id: Ibde1dd787612920002f402f8ff85e9e414115213"
    },
    {
      "commit": "1ac1ec6d0c61c081cc73793e491b987beecccde1",
      "tree": "a83a6cffc5d7a361038a19b8b7980bc016297e52",
      "parents": [
        "07272ab9a30fd555890fda0718f4c2c25931653a"
      ],
      "author": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Fri Sep 12 11:55:50 2025"
      },
      "committer": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Fri Sep 12 11:55:50 2025"
      },
      "message": "Introduce a template for protocol concatenation\n\nSimilar to the codegen template, we should hide the complexity\nof .pdl includes from the callers.\n\nBug: none\nChange-Id: I136c7557d6bc154b1a54437a710ecea83da2bbe0"
    },
    {
      "commit": "07272ab9a30fd555890fda0718f4c2c25931653a",
      "tree": "2bb66b144d695825e4d64d32f722d1f8f713dec9",
      "parents": [
        "5b3ac9e7188a0cf3f182fad10008dc40ce18396e"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri Aug 15 20:03:58 2025"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri Aug 15 21:53:15 2025"
      },
      "message": "Remove bailout upon explicit timestamp check from code_generator.py\n\nThe out-of-date checks should be left to the build system.\n\nChange-Id: Ic9e6fc8eddd31bb2099ffd163125a2f2b40f08c5"
    },
    {
      "commit": "5b3ac9e7188a0cf3f182fad10008dc40ce18396e",
      "tree": "8f1de3cff6d14b0b91e167e482e98d6b94cab22e",
      "parents": [
        "d5a1f09dea07a2f5174a6be6481edc9f0dd8b8de"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri Aug 15 18:13:26 2025"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri Aug 15 21:52:39 2025"
      },
      "message": "Remove unused deps var\n"
    },
    {
      "commit": "d5a1f09dea07a2f5174a6be6481edc9f0dd8b8de",
      "tree": "bfa2b501afde8a6c85f179b0f9834e0f6726b907",
      "parents": [
        "2524f073c48e9f771c07b07cd88e867d5207b6ad"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri Aug 15 17:30:07 2025"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri Aug 15 17:30:07 2025"
      },
      "message": "Fix dependencies processing for PDL includes, take two\n\nTurns out gn / ninja can\u0027t handle multiple entries in depfile,\nso pretend our first source is a stamp-file and make it depend\non everything. As a drive-by, do not inject \"source\" into parsed\nPDL dict and pass it out-of-band to prevent occasional pollution\nof generated json.\n\nChange-Id: Id687c792891d1924afc64bd24e4e0aac133659c7"
    },
    {
      "commit": "2524f073c48e9f771c07b07cd88e867d5207b6ad",
      "tree": "73473ddb5ca2599fe11c4eda83be623881c3b2bd",
      "parents": [
        "c7686ec5031ac1e82a17ca18bb29d1ec43cdf35c"
      ],
      "author": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Thu Aug 14 08:56:41 2025"
      },
      "committer": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Thu Aug 14 09:08:29 2025"
      },
      "message": "Fix a KeyError when accessing domain.source\n\nWhen protocol is loaded from a JSON file, it might\nnot have the source file defined.\n\nChange-Id: I7f00f6e8fffde0d171184be23543168e97c512e6\n"
    },
    {
      "commit": "c7686ec5031ac1e82a17ca18bb29d1ec43cdf35c",
      "tree": "9b939a44f78139c7974e518904b04af19ba12845",
      "parents": [
        "bdc11c1d3130b92e0986f38f2e58f93cc5a674a8"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Thu Aug 14 06:34:34 2025"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Thu Aug 14 06:34:34 2025"
      },
      "message": "Produce deplist when generating protocol sources\n\n... so that we properly track individual PDL changes and re-generate files.\n\nChange-Id: I759d0657686bbc4ca893560918899b783cf77b7a"
    },
    {
      "commit": "bdc11c1d3130b92e0986f38f2e58f93cc5a674a8",
      "tree": "e8cdfc2e9ee63918c802a2c2ac0fced4d28814a3",
      "parents": [
        "af7f5a8173fdbc29f0835ec94395932e328b2ea2"
      ],
      "author": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Wed Jul 16 11:36:35 2025"
      },
      "committer": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Wed Jul 16 11:36:35 2025"
      },
      "message": "Fix path import\n\nBug: 431083788\nChange-Id: I1698a91fedf85382094ae5ff4245d871950572f4"
    },
    {
      "commit": "af7f5a8173fdbc29f0835ec94395932e328b2ea2",
      "tree": "a21f88acb5395aecb5d4540102a3c954fdc771fa",
      "parents": [
        "6d1ae0f13aae6ad381ca31b17b88a0f5af29ca94"
      ],
      "author": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Tue Jul 15 16:06:29 2025"
      },
      "committer": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Wed Jul 16 09:47:47 2025"
      },
      "message": "Support includes in pdl files\n\nThis CL adds support for top-level include directives in pdl files:\n\n`include \u003crelative-path\u003e`\n\nIncludes only support relative paths that are resolved relative to the\ncurrent file. Domains from the includes files are merged with the\ndomains from the current file. For this to work the filename passed to\nthe `pdl.loads` function is expected to be an absolute path.\n\nBug: 431083788\nChange-Id: Idde2d812da113acf204eb9095a9167e62f3f059f\n"
    },
    {
      "commit": "6d1ae0f13aae6ad381ca31b17b88a0f5af29ca94",
      "tree": "42eca31869b446769008fbb7a5e88c31f3d08d61",
      "parents": [
        "940abfc668be2591483f7132145593c6a047f3cf"
      ],
      "author": {
        "name": "Abhishek Shanthkumar",
        "email": "abhishek.shanthkumar@microsoft.com",
        "time": "Wed Apr 02 13:04:24 2025"
      },
      "committer": {
        "name": "Abhishek Shanthkumar",
        "email": "abhishek.shanthkumar@microsoft.com",
        "time": "Wed Apr 02 14:19:33 2025"
      },
      "message": "Use a fast path in JSONEncoder::HandleString8() for simple strings\n\nFor input strings that don\u0027t have any character that needs escaping when\nconverted to JSON, emitting the string in bulk provides significantly\nbetter performance.\nstd::all_of() is highly optimized and adds minimal overhead in cases\nwhere a character indeed requires escaping.\n\nBelow are some performance numbers on a powerful Linux x64 machine for\na total of 100 iterations of converting 1 MB strings to JSON (modeled\nafter heap snapshot chunk transfers in V8 where the strings consist\nmainly of digits and commas):\n\n[ RUN      ] JsonEncoder.FastPath\nTotal size: 100MB\nNo escaping needed:\n    Without fast path:    359.768ms\n    With fast path:       249.579ms\nEscaping needed (mixed):\n    Without fast path:    734.483ms\n    With fast path:       733.359ms\nEscaping needed (worst case):\n    Without fast path:    352.816ms\n    With fast path:       422.58ms\n[       OK ] JsonEncoder.FastPath (8039 ms)\n\nThere is a significant 30% improvement in performance when the input\nstring does not need escaping.\nFor mixed strings that do need escaping, the std::all_of() call adds no\noverhead.\nFor the worst case where the very last character of the string needs\nescaping (a highly unlikely scenario in real usage), there is some\noverhead but this represents the upper cap of any performance\ndeterioration that may be encountered in practice.\n\nThe test code that was used to get the above numbers is present in\nPatchset 1 of the CL.\n\nPreliminary tests with this code in the actual heap snapshot transfer\nprocess in V8 demonstrate up to 28% speedup in the transfer time.\n\nBug: 387077340\nChange-Id: I68b79800d5abb2a317ac5671abfe0e1f9167d4a8\n"
    },
    {
      "commit": "940abfc668be2591483f7132145593c6a047f3cf",
      "tree": "de913bdf4773d18f19b25a2b431ae912225ee9ca",
      "parents": [
        "a43565b6ea60bde29a3cb68f2115e15d5f7dac2e"
      ],
      "author": {
        "name": "Tom Sepez",
        "email": "tsepez@chromium.org",
        "time": "Fri Jan 31 20:38:31 2025"
      },
      "committer": {
        "name": "Tom Sepez",
        "email": "tsepez@chromium.org",
        "time": "Mon Feb 03 18:24:37 2025"
      },
      "message": "Implement crdtp::span\u003c\u003e using std::span\u003c\u003e.\n\nDo not convert any callers just yet to use std::span\u003cT\u003e. Skirt some\nconst-correctness concerns by always adding const to the type `T`.\nThis allows use of a hardened implementation where possible.\n\n-- Fix one usage in template that would block a chrome roll.\n-- Requires https://crrev.com/c/6221212 before rolling into chrome.\n\nTest: ran crdtp_test locally on linux.\nTest: manual patch, built chrome on linux.\nTest: manual patch, fix namespace, built v8 on linux.\nChange-Id: Ie263649d00c1438425d54fe8a8e3d082f671e714\n"
    },
    {
      "commit": "a43565b6ea60bde29a3cb68f2115e15d5f7dac2e",
      "tree": "d2fcb5bf4eb8c6e0bfdc3ac9d9c8da5e63f75a37",
      "parents": [
        "69d69ddf3aa698b171886551a4a672c5af1ad902"
      ],
      "author": {
        "name": "Tom Sepez",
        "email": "tsepez@chromium.org",
        "time": "Fri Jan 31 19:51:26 2025"
      },
      "committer": {
        "name": "Tom Sepez",
        "email": "tsepez@chromium.org",
        "time": "Fri Jan 31 19:53:52 2025"
      },
      "message": "Add implicit crdtp::span\u003c\u003e construction from containers.\n\nOtherwise, significant flexibility in using span with most STL\ncontainers is lost. Also helps minimize the number of places where\nexplicit type information would need updating when converting to a\nmore const-correct span implementation.\n\n-- Add test for new constructor.\n-- Simplify code where possible.\n-- inline initialize members in header.\n-- git cl format all affected files.\n\nTest: ran crdtp_test locally on linux.\nChange-Id: If2219b76688b62f04f7aed275670f0bf27eeb851\n"
    },
    {
      "commit": "69d69ddf3aa698b171886551a4a672c5af1ad902",
      "tree": "792d2cf6c07dd6dc7f1888aaa3c9e765464e0725",
      "parents": [
        "37f51b2bb5d443182efb6e33b5beaf1ca4562dec"
      ],
      "author": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Wed Nov 27 09:29:09 2024"
      },
      "committer": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Wed Nov 27 09:29:09 2024"
      },
      "message": "Remove Maybe\n\nBug: 40276207\nChange-Id: I639babcfc75aef51f00abcb24d94c778a4fa233c"
    },
    {
      "commit": "37f51b2bb5d443182efb6e33b5beaf1ca4562dec",
      "tree": "f33287f57181b081a126293545c395f5d7bd490c",
      "parents": [
        "0c3002eeb5fa69ea0efd07b005e4006b7ab7836f"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri Nov 22 18:50:52 2024"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri Nov 22 18:50:52 2024"
      },
      "message": "Generate std::unique_ptr\u003c\u003e/std::optional\u003c\u003e for optional types\n\nAs a drive-by, expose a getter that directly returns optional properties.\n\nBug: 40276207\nChange-Id: Id83c7bfb8011df6a04554e99e7342e264dcb423f"
    },
    {
      "commit": "0c3002eeb5fa69ea0efd07b005e4006b7ab7836f",
      "tree": "fe409a9da2e4371299821bc4958cb568421ed3e1",
      "parents": [
        "f43f7515bcf291ed7413ba70b0c8514f842f9f5d"
      ],
      "author": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Tue Nov 19 19:25:51 2024"
      },
      "committer": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Tue Nov 19 19:25:51 2024"
      },
      "message": "Remove PtrMaybe\n\nBug: 40276207\nChange-Id: I50325515c85893bdcd62efc66036bcc9e52b561b"
    },
    {
      "commit": "f43f7515bcf291ed7413ba70b0c8514f842f9f5d",
      "tree": "10107786a72f65d1474d5392f2f90b3922ca7dd2",
      "parents": [
        "ed67c428c14e7b2617388327052dbd7824c26c3b"
      ],
      "author": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Thu Nov 14 08:41:32 2024"
      },
      "committer": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Thu Nov 14 08:41:32 2024"
      },
      "message": "Remove jinja_dir from build args\n\nWhen imported to Chromium it results in duplicate\ndeclarations. This CL changes the jinja_dir to be\nan argument that can be provided on the caller side.\n\nChange-Id: I3fd9c41f06ee1bf7ca662f90658c0fc854538c02"
    },
    {
      "commit": "ed67c428c14e7b2617388327052dbd7824c26c3b",
      "tree": "0ab766f14daf17c886472ab74aca92f0c60ddb90",
      "parents": [
        "b6c8dc13e8f52740ee35f9c7ace027d1fafbc976"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Thu Nov 14 00:16:02 2024"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Thu Nov 14 00:16:02 2024"
      },
      "message": "Add PtrMaybe::get() to mimick std::unique_ptr\u003c\u003e\n\n... this should aid with transition from Maybe\u003c\u003e to std::unique_ptr\u003c\u003e for poiner types.\n\nBug: 40276207\nChange-Id: Iff1b2667d7e412b996100b757604d7f0a3736789"
    },
    {
      "commit": "b6c8dc13e8f52740ee35f9c7ace027d1fafbc976",
      "tree": "e89c7502977222f31bd95fe41947cbf6c7bdf69b",
      "parents": [
        "376561a8a096bb25e86bdee871a75d9e19c704ba"
      ],
      "author": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Wed Nov 13 18:16:29 2024"
      },
      "committer": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Wed Nov 13 18:16:29 2024"
      },
      "message": "Reland \"Replace ValueMaybe with std::optional\"\n\nThis is a reland of commit 206e77cae83639b882d123e90bc523b8ba2969b8\n\nOriginal change\u0027s description:\n\u003e Replace ValueMaybe with std::optional\n\u003e\n\u003e Bug: 40276207\n\u003e Change-Id: I5d44764374fa69d8e390e8a993feb122d3592c79\n\nBug: 40276207\nChange-Id: I6bded4b894b76a48549f5c74be0e65998b1ccfea"
    },
    {
      "commit": "376561a8a096bb25e86bdee871a75d9e19c704ba",
      "tree": "40841dacfa07f3b1d02b1c5f9d3e73e0a2b6b49d",
      "parents": [
        "96ff2be894f50b58465309794223d1608d6a023f",
        "1711dde4deb57e8ca226c22c20517a86fd511e6f"
      ],
      "author": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Wed Nov 13 18:11:30 2024"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 13 18:11:30 2024"
      },
      "message": "Merge \"Revert \"Replace ValueMaybe with std::optional\"\" into main"
    },
    {
      "commit": "1711dde4deb57e8ca226c22c20517a86fd511e6f",
      "tree": "addc6eb156d7de6f135f90b23246e4acfcae1b9a",
      "parents": [
        "206e77cae83639b882d123e90bc523b8ba2969b8"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Wed Nov 13 18:09:00 2024"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 13 18:09:00 2024"
      },
      "message": "Revert \"Replace ValueMaybe with std::optional\"\n\nThis reverts commit 206e77cae83639b882d123e90bc523b8ba2969b8.\n\nReason for revert: needs more work per Alex, broke tests.\n\nOriginal change\u0027s description:\n\u003e Replace ValueMaybe with std::optional\n\u003e\n\u003e Bug: 40276207\n\u003e Change-Id: I5d44764374fa69d8e390e8a993feb122d3592c79\n\nBug: 40276207\nChange-Id: I67721ae0971bf779a23ee1e692e6b5564300b1b7\nNo-Presubmit: true\nNo-Tree-Checks: true\nNo-Try: true\n"
    },
    {
      "commit": "96ff2be894f50b58465309794223d1608d6a023f",
      "tree": "e89c7502977222f31bd95fe41947cbf6c7bdf69b",
      "parents": [
        "23a61e6b1223802001530d558609d15358c9806d",
        "206e77cae83639b882d123e90bc523b8ba2969b8"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Wed Nov 13 18:02:51 2024"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 13 18:02:51 2024"
      },
      "message": "Merge \"Replace ValueMaybe with std::optional\" into main"
    },
    {
      "commit": "23a61e6b1223802001530d558609d15358c9806d",
      "tree": "40841dacfa07f3b1d02b1c5f9d3e73e0a2b6b49d",
      "parents": [
        "a9a8758436c92515e0789e1c0ca5406b3fb87038"
      ],
      "author": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Wed Nov 13 15:47:35 2024"
      },
      "committer": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Wed Nov 13 15:47:35 2024"
      },
      "message": "Fix build and docs\n\n- ninja is not a part of depot tools anymore,\ntherefore, adding it via DEPS.\n- bumping mini_chromium to fix build errors.\n- update README.md with libstdc++-14-dev instructions\n\nChange-Id: I5afcd77c7f19c0b4fc8b6d59a339ddf0aca88cd6"
    },
    {
      "commit": "206e77cae83639b882d123e90bc523b8ba2969b8",
      "tree": "8bde84bf41b978eb398be849cec8399d7bbf365c",
      "parents": [
        "a9a8758436c92515e0789e1c0ca5406b3fb87038"
      ],
      "author": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Wed Nov 13 12:03:59 2024"
      },
      "committer": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Wed Nov 13 12:15:32 2024"
      },
      "message": "Replace ValueMaybe with std::optional\n\nBug: 40276207\nChange-Id: I5d44764374fa69d8e390e8a993feb122d3592c79\n"
    },
    {
      "commit": "a9a8758436c92515e0789e1c0ca5406b3fb87038",
      "tree": "addc6eb156d7de6f135f90b23246e4acfcae1b9a",
      "parents": [
        "8a411ffb163cfea9fe281186daa15e937bc72109"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Thu Nov 07 17:51:05 2024"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Thu Nov 07 17:51:05 2024"
      },
      "message": "Fix a typo in comment\n\nChange-Id: Ic19277371bb8cf92a78060a893513007aefbf29f"
    },
    {
      "commit": "8a411ffb163cfea9fe281186daa15e937bc72109",
      "tree": "171dbb672124c7a3fed4a8e0920a935514096388",
      "parents": [
        "ccf6613682a24413db28656da6f9c52948331bad"
      ],
      "author": {
        "name": "Dirk Pranke",
        "email": "dpranke@google.com",
        "time": "Mon Nov 04 23:17:48 2024"
      },
      "committer": {
        "name": "Dirk Pranke",
        "email": "dpranke@google.com",
        "time": "Mon Nov 04 23:17:48 2024"
      },
      "message": "Fix Python3.13 DeprecationWarning in third_party/inspector_protocol.\n\nIn Python3.13 the `re.sub` module raises a DeprecationWarning\nif you rely on `count` as a positional parameter instead of a\nnamed parameter. This CL fixes the code to pass `count\u003d` instead.\n\nChange-Id: Iacfb44af314c17d3b9ab89c8b93b7b4b726ef2f6"
    },
    {
      "commit": "ccf6613682a24413db28656da6f9c52948331bad",
      "tree": "fad6f28d647abe6b2b9c1c267ada8bbb466a53ef",
      "parents": [
        "2915acabcf62efd7257c57bb8a443a7c389c65cb"
      ],
      "author": {
        "name": "danakj",
        "email": "danakj@chromium.org",
        "time": "Thu Sep 05 20:59:38 2024"
      },
      "committer": {
        "name": "danakj",
        "email": "danakj@chromium.org",
        "time": "Thu Sep 05 20:59:38 2024"
      },
      "message": "Pass crdtp::span to Binary::fromSpan.\n\nIn chromium it will be received as a base::span, which can construct\nfrom crdtp::span because the latter has .data() and .size() members.\n\nBug: 40284755\nChange-Id: I8a57f80d36ec07bc00661589dac9cc6cf7d11029"
    },
    {
      "commit": "2915acabcf62efd7257c57bb8a443a7c389c65cb",
      "tree": "ef48f38e869143efe4b13981efe188538f04fe0a",
      "parents": [
        "99e195660e59050e845a24d04d4a2eea1c35fc3b"
      ],
      "author": {
        "name": "David Benjamin",
        "email": "davidben@chromium.org",
        "time": "Thu May 02 20:17:50 2024"
      },
      "committer": {
        "name": "David Benjamin",
        "email": "davidben@chromium.org",
        "time": "Thu May 02 20:17:50 2024"
      },
      "message": "Document that GetString16WireRep always has even length\n\nThis is ensured by the parser. For context, see\nhttps://chromium-review.googlesource.com/c/chromium/src/+/5506756/1//COMMIT_MSG\n\nChange-Id: I331d2cc8290418dee5dbbb350bb936e417603893"
    },
    {
      "commit": "99e195660e59050e845a24d04d4a2eea1c35fc3b",
      "tree": "a46660b66638265000bd62f73e9ebef94b646a77",
      "parents": [
        "57b6a6c7d6057ef9297bdea023146ec6f9d8decf"
      ],
      "author": {
        "name": "Milad Fa",
        "email": "mfarazma@redhat.com",
        "time": "Wed Apr 10 13:45:08 2024"
      },
      "committer": {
        "name": "Milad Farazmand",
        "email": "mfarazma@redhat.com",
        "time": "Wed Apr 10 13:52:12 2024"
      },
      "message": "Fix build with gcc12\n\nFixes the following error:\n   ```\n   error: loop variable ‘json_in’ of type ‘const std::string\u0026’ {aka\n   ‘const std::__cxx11::basic_string\u003cchar\u003e\u0026’} binds to a temporary\n   constructed from type ‘const char* const’\n   ```\n\nThis patch has been applied to V8 in a separate CL:\nhttps://crrev.com/c/5440536\nAdding the fix here for future pulls.\n\nChange-Id: I263f8fee76d2b3b432c50cb43c9fd68f75148b94\n"
    },
    {
      "commit": "57b6a6c7d6057ef9297bdea023146ec6f9d8decf",
      "tree": "4cdbb0fa1fd9e6946639b8aaef76d5583b8ccf19",
      "parents": [
        "64cc2301620c04f0fe0313ae94a9319f003603cf"
      ],
      "author": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Tue Apr 09 15:58:23 2024"
      },
      "committer": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Tue Apr 09 15:58:23 2024"
      },
      "message": "Add alexrudenko@chromium.org as a backup owner\n\nChange-Id: Ic433de43f57a90a05581dba49cf7474fcdc6fbf1"
    },
    {
      "commit": "64cc2301620c04f0fe0313ae94a9319f003603cf",
      "tree": "3a428b7a6717b943c1c44fcd57e57995e64eeb76",
      "parents": [
        "0aa59d566ff8a85ac9a4f3855371ade68bc77f45"
      ],
      "author": {
        "name": "Simon Zünd",
        "email": "szuend@chromium.org",
        "time": "Mon Apr 08 07:54:00 2024"
      },
      "committer": {
        "name": "Simon Zünd",
        "email": "szuend@chromium.org",
        "time": "Mon Apr 08 07:54:00 2024"
      },
      "message": "Optimize JSONEncoder::HandleString\n\nThis CL applies a few optimizations to the JSONEncoder to speed up\nserialization of strings. For a notorious test case (where we serialize\nvery large scripts) this reduced time spent in ::HandleString by as\nmuch as 45%.\n\n1) Reorder character checks based on likelihood. The most common case\n   are standard ASCII characters. This should go first (after \u0027\"\u0027 and\n   \u0027\\\\\u0027 which need to be escaped). Next comes newline.\n\n2) Replace std::vector\u003c\u003e::insert call with two simple push_back in\n   HandleString*.\n\n3) For string literals we know at runtime we can skip the \u0027strlen\u0027\n   call.\n\nBefore (also before marking JSONEncoder::Emit as inline):\nhttps://pprofng.corp.google.com/?id\u003d62051424e72f898798e26b55c68a210b\u0026tab\u003dflame\u0026source\u003dcli\n\nAfter:\nhttps://pprofng.corp.google.com/?id\u003d3b5635cd415d7b6f8c038742800a41e3\u0026tab\u003dflame\u0026source\u003dcli\n\nBug: 326554286\nChange-Id: Ie5b1bdf73474e021b5e99de3190608def4002f0e"
    },
    {
      "commit": "0aa59d566ff8a85ac9a4f3855371ade68bc77f45",
      "tree": "25fa5606bca78285432327a59c404ceca423938a",
      "parents": [
        "916f43c554c65ebf4ccd896b0f4e2ac99a67c434"
      ],
      "author": {
        "name": "Simon Zünd",
        "email": "szuend@chromium.org",
        "time": "Thu Apr 04 07:11:00 2024"
      },
      "committer": {
        "name": "Simon Zünd",
        "email": "szuend@chromium.org",
        "time": "Thu Apr 04 07:11:00 2024"
      },
      "message": "Mark JSONEncoder::Emit as inline\n\nThis speeds up serialization of messages with very large strings. E.g an\ninspector-protocol test case with a very large script by ~5-~10%.\n\nBefore: https://pprofng.corp.google.com/?id\u003df8b1f0579d5f366710da1107ddd9cd05\u0026tab\u003dflame\u0026source\u003dcli\n\nAfter: https://pprofng.corp.google.com/?id\u003d68628e63a993b60db52417849fdd3f10\u0026tab\u003dflame\u0026source\u003dcli\n\nNote that in the flamegraph JSONEncoder::Emit was folded together with\nSnapshoteByteSink::Put due to LTO.\n\nR\u003dcaseq@chromium.org\n\nBug: 326554286\nChange-Id: I1a287f32214da670eae1a2b6880dac7bbcbc38eb"
    },
    {
      "commit": "916f43c554c65ebf4ccd896b0f4e2ac99a67c434",
      "tree": "082ff2713c9ac5a7920cb0ece4eb9909dbc82694",
      "parents": [
        "8cfd8379c4f9e0e05dbfbdf2657be2fd0ff2bf37"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri Jul 21 00:02:14 2023"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri Jul 21 00:16:04 2023"
      },
      "message": "Fix missing operator* and a typo in value_or()\n\nChange-Id: I1c13bc2b277db4539c67f44a29370abd69844b81\n"
    },
    {
      "commit": "8cfd8379c4f9e0e05dbfbdf2657be2fd0ff2bf37",
      "tree": "14bd6979c7776bf6d38ca00229cb6088c8582598",
      "parents": [
        "bda9f63b4532e2d3382091866f73792f22a97bfd"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Thu Jul 20 20:26:06 2023"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Thu Jul 20 20:26:06 2023"
      },
      "message": "Switch to using std::optional\u003c\u003e compatible accessors in generated files\n\nBug: 1465981\nChange-Id: I25396d27529fa2eb30bfee7735d2940513b8eb20"
    },
    {
      "commit": "bda9f63b4532e2d3382091866f73792f22a97bfd",
      "tree": "278ac098ba9b1df1a914ac5e4fb85aaeb7eabe14",
      "parents": [
        "692caf90eaa861010d9ef7b5023d96db12c06ecc"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Thu Jul 20 20:16:56 2023"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Thu Jul 20 20:16:56 2023"
      },
      "message": "Add std::optional-compatible accessors to Maybe\u003c\u003e\n\nBug: 1465981\nChange-Id: I91fae55742dfdd7bc3d046254a1c5737bc54453d"
    },
    {
      "commit": "692caf90eaa861010d9ef7b5023d96db12c06ecc",
      "tree": "5928f5fa4883fdd93cb81f61bafd309c2f64bca7",
      "parents": [
        "03764695ffd5887cebc446f61ec43059e03f55b5"
      ],
      "author": {
        "name": "Alan Zhao",
        "email": "ayzhao@google.com",
        "time": "Mon Jun 12 23:06:55 2023"
      },
      "committer": {
        "name": "Alan Zhao",
        "email": "ayzhao@google.com",
        "time": "Mon Jun 12 23:06:55 2023"
      },
      "message": "Fix missing includes in span.h\n\nspan.h refers to std::is_unsigned and std::is_member_function_pointer,\nboth of which are declared in \u003ctype_traits\u003e. This currently compiles\nbecause of transitive includes in the C++ standard library\nimplementation, but these includes are not guaranteed to exist.\n\nBug: chromium:543704,chromium:1430956\nChange-Id: I4b7eb4126d66e31a13e9078d1155b0983118f6f1"
    },
    {
      "commit": "03764695ffd5887cebc446f61ec43059e03f55b5",
      "tree": "1404fee9d5bdd2274c9a7a7f9daa6c672e1927c5",
      "parents": [
        "231d3578b4bf2bec1c3d306e53621430003b4bae"
      ],
      "author": {
        "name": "Cheng Zhao",
        "email": "zcbenz@gmail.com",
        "time": "Thu Mar 09 01:04:18 2023"
      },
      "committer": {
        "name": "Cheng Zhao",
        "email": "zcbenz@gmail.com",
        "time": "Thu Mar 09 01:04:18 2023"
      },
      "message": "Add jinja_dir arg in gni file\n\nWhen building Node.js with GN, we would like to reuse the jinja code\nin its codebase, instead of checking out a new one in third_party.\n\nChange-Id: I959bc2f3347070f032e9d1487332681fc811b627"
    },
    {
      "commit": "231d3578b4bf2bec1c3d306e53621430003b4bae",
      "tree": "2b6424e359da1efbf6d236fb5e6c8e22a4b92cba",
      "parents": [
        "dec7ec1932f5277b933ed8a675cc6eb7cfc36f88"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Thu Jan 05 04:41:47 2023"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Thu Jan 05 04:41:47 2023"
      },
      "message": "Misc minor cleanup in inspecpector_protocol/crdtp\n\n- Fix various overloads of StatusOr::value()\n- Remove ProtocolObject\u003c\u003e::clone() (Clone() should be used instead)\n- Fix ValueMaybe::operator\u003d() to avoid a copy\n\nChange-Id: I823f9015ac01994265ce87d61cfc533f53bcce63"
    },
    {
      "commit": "dec7ec1932f5277b933ed8a675cc6eb7cfc36f88",
      "tree": "17891097b20d025d826eab32e5db353c48317cbb",
      "parents": [
        "7e1e6e3b35c701ca15242a29660d7ef5d24858ab"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri Oct 07 20:42:19 2022"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri Oct 07 20:42:19 2022"
      },
      "message": "Change pdl.py to mode 644 back again\n\nThis was erroneously changed by CL https://crrev.com/c/deps/inspector_protocol/+/3938529,\nthis is module, not an executable, so should be 644.\n\nChange-Id: I200f18f25ec5c25fa317f547ec4d8400d9cef0ed"
    },
    {
      "commit": "7e1e6e3b35c701ca15242a29660d7ef5d24858ab",
      "tree": "e44f6ac5f488f74b45d438f188eae0ec2de9e8e0",
      "parents": [
        "6901e556365f74a41bb85b62a70d444d87db639a"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri Oct 07 16:01:46 2022"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri Oct 07 16:01:46 2022"
      },
      "message": "Update license boilerplate text\n\nBug: 1098010\nChange-Id: I9149285ccacf67cc4417f29f22156d9823ba11db"
    },
    {
      "commit": "6901e556365f74a41bb85b62a70d444d87db639a",
      "tree": "0e411ea8d01ca95a3bd255daf2377afd84c99830",
      "parents": [
        "530a32375f50dac763e51f5c2bcbf31bdec0b8de"
      ],
      "author": {
        "name": "Hans Wennborg",
        "email": "hans@chromium.org",
        "time": "Mon Sep 19 17:14:50 2022"
      },
      "committer": {
        "name": "Hans Wennborg",
        "email": "hans@chromium.org",
        "time": "Mon Sep 19 17:14:50 2022"
      },
      "message": "Add missing include of \u003ctuple\u003e for protocol_core.h\n\nIt\u0027s needed for std::ignore. Builds with recent libc++ versions break\nwithout this.\n\nBug: chromium:1365570\nChange-Id: I153e16ce6029547f882dac93d0ee9440735d40d0"
    },
    {
      "commit": "530a32375f50dac763e51f5c2bcbf31bdec0b8de",
      "tree": "e2a15fc52d79e9c1322a909453763df9d67869d0",
      "parents": [
        "d8c621ec67006b4b23b7b40ae18817e99ebc7d98",
        "614a8b619cefa536ab24e0f864a058569514f3c6"
      ],
      "author": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Mon Aug 01 05:50:19 2022"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 01 05:50:19 2022"
      },
      "message": "Merge \"Introduce dependency checking\" into main"
    },
    {
      "commit": "d8c621ec67006b4b23b7b40ae18817e99ebc7d98",
      "tree": "8c9e5a6c2facc2c7868f64639eacfc8cd62d31b7",
      "parents": [
        "606d2d28372f47934373d8ce82c90d866dc2e7a7"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Wed May 25 22:20:58 2022"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Thu Jun 02 20:27:35 2022"
      },
      "message": "Produce correct CBOR envelope as per spec\n\nThis emits CBOR envelope header as 0xd8 0x18 instead of just 0xd8,\nas the tag value of 24 can\u0027t be inlined and requires an extra byte\nvalue by the CBOR spec.\n\nChange-Id: I9f13d69147e3e6726211df71c34584bbcf8860f1\n"
    },
    {
      "commit": "606d2d28372f47934373d8ce82c90d866dc2e7a7",
      "tree": "60ef5c7c1a582ac37a0a90a832c6d10672ca7604",
      "parents": [
        "87e75896dcfcafda7869b0c9714db9b6cdc4c765"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Thu May 26 18:02:06 2022"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Thu May 26 18:02:06 2022"
      },
      "message": "Remove the usage of [[nodiscard]] for now\n\n... because it breaks v8 build with gcc.\n\nChange-Id: I163c481ba0af1cdb3570c2c1bd1df3a219916504"
    },
    {
      "commit": "87e75896dcfcafda7869b0c9714db9b6cdc4c765",
      "tree": "4458a7699bd030eec0c08691fd4158baf3236d16",
      "parents": [
        "0187bc7f0ccb1e78330843c50e3d7c7d6b9ef9f2"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Tue May 24 01:11:33 2022"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Tue May 24 01:11:33 2022"
      },
      "message": "Accept properly formed CBOR envelope tag as per spec\n\n- Extract envelope header parsing logic into `EnvelopeHeader::Parse()`\n- reuse the above whenever we need envelope header or contents sizes\n- adjust errors in test expectations that changed because of code reuse;\n- accept (but not yet emit) a two-byte, well-formed CBOR tag 24 for\n    envelope;\n- also accept variable width byte string length for envelope byte\n    strings for better envelope;\n- do not expose envelope-related constants to discourage clients from\n    parsing envelopes themselves.\n\nChange-Id: Ia2a486bf877f00d5de75c2efd34a74e1fdfc55d0"
    },
    {
      "commit": "0187bc7f0ccb1e78330843c50e3d7c7d6b9ef9f2",
      "tree": "4550a67907e8da3f1a30e37514f05c4c69ee118a",
      "parents": [
        "6f1de63c77f173b7f81f35ae04f3a6803209446e"
      ],
      "author": {
        "name": "Yury Semikhatsky",
        "email": "yurys@chromium.org",
        "time": "Tue Apr 26 21:19:49 2022"
      },
      "committer": {
        "name": "Yury Semikhatsky",
        "email": "yurys@chromium.org",
        "time": "Tue Apr 26 21:19:49 2022"
      },
      "message": "Introduce SESSION_NOT_FOUND error\n\nThe new error code is going to be used to distiguish error caused\nby client message having unknown session id. Having separate code\nmakes it easier to differentiate between such protocol errors\nand server/invalid argument errors.\n\nBug: none\nChange-Id: I263382d1dc77bc6b437507d35e73fc98b6c533ae"
    },
    {
      "commit": "6f1de63c77f173b7f81f35ae04f3a6803209446e",
      "tree": "557f122ac6f2ab527ae123676c072a128a7c5976",
      "parents": [
        "bc288fbcde436fb15ebd1bbe98bd3710588d3341"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Tue Mar 15 19:50:23 2022"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Tue Mar 15 19:50:23 2022"
      },
      "message": "Use python3 to run python scripts\n\nThe actual compatibility issues have been fixed before, this just updates\nthe interpreter name.\n\nBug: 1306483\nChange-Id: I11d7919739fb608c54e0a898d5b7c87876f02a7a"
    },
    {
      "commit": "bc288fbcde436fb15ebd1bbe98bd3710588d3341",
      "tree": "3c4e7bc89fcdf29e9e4f20391a461c46c5f1e994",
      "parents": [
        "201d4b51ed2ab22839939236aa909c6d7c0f5147"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Sat Mar 05 00:42:17 2022"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Sat Mar 05 00:47:25 2022"
      },
      "message": "Check errors using return value of Deserialize(), not DeserializerState::status\n\n- mark ProtocolObject::Deserialize() as [[nodiscard]]\n- change deserialization of params in generated method dispatch code\n    to check Deserialize() return rather than DeserializerState::status.ok()\n- change MaybeReportInvalidParams() into ReportInvalidParams() and call it\n    conditionally upon Deserialize() returning false;\n- remove unused functions from dispatch.cc\n\nChange-Id: I7039a39b0a30eb71cb3abcc7664332ccbea4e637\n"
    },
    {
      "commit": "201d4b51ed2ab22839939236aa909c6d7c0f5147",
      "tree": "57b8098ec8822bf5496b038464213b95a851d509",
      "parents": [
        "c1f8b7a052fa0c1f4276a032ed98f5049f9fa0a9"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Sat Feb 12 02:47:39 2022"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Sat Feb 12 02:47:39 2022"
      },
      "message": "Remove base_string_adapter.{h,cc}\n\nThese are no longer used downstream, and should not have been here in the\nfirst place.\n\nBug: 1294416, 1296032\nChange-Id: Ia761dbf061546c9e0b0468a4b471f2409bb4ac6a"
    },
    {
      "commit": "614a8b619cefa536ab24e0f864a058569514f3c6",
      "tree": "740daed8863ddb6e195affaf9f66670fd8c2c844",
      "parents": [
        "c1f8b7a052fa0c1f4276a032ed98f5049f9fa0a9"
      ],
      "author": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Fri Feb 11 08:38:11 2022"
      },
      "committer": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Fri Feb 11 08:38:11 2022"
      },
      "message": "Introduce dependency checking\n\nThis CL introduces dependency checking on the PDL level. The rules are\nthat if domain A wants to use a type from domain B, then domain A must\ndeclare a dependency on B except if one of the following holds:\n  - The type from domain B is a primitive type\n  - All users in domain A have a redirect\n\nThis checking is reasonable as mutual dependencies are currently not\nsupported by the code generator.\n\nChange-Id: Id5ab7422abfb67f36ef2f754a4a26be0f234f768"
    },
    {
      "commit": "c1f8b7a052fa0c1f4276a032ed98f5049f9fa0a9",
      "tree": "b8f2868fcfeb064e7225fd8e4d2a617157a26c04",
      "parents": [
        "f087f7ce0259eee9c9dbe847fc89e7ccd1a07af3"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Thu Feb 10 06:27:43 2022"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Thu Feb 10 06:27:43 2022"
      },
      "message": "Support using embedder types instead of built-in Value \u0026 co\n\nThis introduces a use_embedder_types GN flag, that lets embedder\nspecify that it will provide its own implementation of JSON Value\nrepresentation, along with traits to (de)serialize it from wire\nformat. This effectively disables built-in Value library.\n\nBug: 1296032, 1294416\nChange-Id: I734f9dbe32318d12e5a1bf4134b16c111369ae37"
    },
    {
      "commit": "f087f7ce0259eee9c9dbe847fc89e7ccd1a07af3",
      "tree": "ae6dcc86a46e90ea38b0ea1c79ecb465a63a9117",
      "parents": [
        "5221cbfa7f940d56ae8b79bf34c446a56781dd56"
      ],
      "author": {
        "name": "Eric Willigers",
        "email": "ericwilligers@google.com",
        "time": "Tue Jan 25 10:43:02 2022"
      },
      "committer": {
        "name": "Eric Willigers",
        "email": "ericwilligers@google.com",
        "time": "Tue Jan 25 10:43:02 2022"
      },
      "message": "Update chromium.googlesource.com links\n\nWe now link to \u0027main\u0027.\n\nChange-Id: I8761b2eaaad3db1f4330931ed93e4444f79959a6"
    },
    {
      "commit": "5221cbfa7f940d56ae8b79bf34c446a56781dd56",
      "tree": "8b95849d1b68c0f3a66969131592f504461b6ec8",
      "parents": [
        "9a50beee69a31869d1f95c2c63bc3a3ffe725b97",
        "42bc232b3ed0f8772abb9d9293891db30365470b"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri Jan 21 02:07:30 2022"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 21 02:07:30 2022"
      },
      "message": "Merge \"Support PY3 in convert_protocol_to_json.py\" into main"
    },
    {
      "commit": "9a50beee69a31869d1f95c2c63bc3a3ffe725b97",
      "tree": "3da61c29a3d0fe60dac7558a3fcc6b9a42aceb35",
      "parents": [
        "bb50603f9793f1aab07861263aeeb96ee5f0b7bf",
        "ef284f56d498c9817ce82131d71e6b7d81f2779b"
      ],
      "author": {
        "name": "Benedikt Meurer",
        "email": "bmeurer@chromium.org",
        "time": "Wed Jan 12 05:52:37 2022"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 12 05:52:37 2022"
      },
      "message": "Merge \"[Code Health] Refactor base::Value usage in base_string_adapter.\" into main"
    },
    {
      "commit": "ef284f56d498c9817ce82131d71e6b7d81f2779b",
      "tree": "579598c1cc9e146c07c6dfbe35e92de94701fecf",
      "parents": [
        "1bf30edff655dbb1db57e93dce0ee57e176cc4d4"
      ],
      "author": {
        "name": "Benedikt Meurer",
        "email": "bmeurer@chromium.org",
        "time": "Wed Jan 12 05:52:20 2022"
      },
      "committer": {
        "name": "Benedikt Meurer",
        "email": "bmeurer@chromium.org",
        "time": "Wed Jan 12 05:52:20 2022"
      },
      "message": "[Code Health] Refactor base::Value usage in base_string_adapter.\n\nThis migrates the DevTools toProtocolValue() and toBaseValue()\nconversions to the new style for passing base::Value by const reference\nand returning base::Value (via move optimization) instead of wrapping\nthem into std::unique_ptr.\n\nBug: chromium:1187001\nChromium-CL: https://crrev.com/c/3377009\nChange-Id: Iac696f2978f8fcd5642f499b9f8da68453dbc7c9\nDoc: https://docs.google.com/document/d/1uDLu5uTRlCWePxQUEHc8yNQdEoE1BDISYdpggWEABnw"
    },
    {
      "commit": "bb50603f9793f1aab07861263aeeb96ee5f0b7bf",
      "tree": "f6f0cc00fa8f047bc392ddd010bb598a672cdafd",
      "parents": [
        "1bf30edff655dbb1db57e93dce0ee57e176cc4d4"
      ],
      "author": {
        "name": "Lei Zhang",
        "email": "thestig@google.com",
        "time": "Mon Jan 10 19:50:22 2022"
      },
      "committer": {
        "name": "Lei Zhang",
        "email": "thestig@google.com",
        "time": "Mon Jan 10 19:50:22 2022"
      },
      "message": "Do IWYU for STL libraries in inspector_protocol header templates.\n\nMove includes out of Forward_h.template, where they are not used, and\ninto Values_h.template, where they are used.\n\nChange-Id: I837142d25beceaf7b0a36a54db7ddfecc4e1dc30"
    },
    {
      "commit": "42bc232b3ed0f8772abb9d9293891db30365470b",
      "tree": "8cf30697cdacebdab42eecefb734b3483a52f49e",
      "parents": [
        "1bf30edff655dbb1db57e93dce0ee57e176cc4d4"
      ],
      "author": {
        "name": "Victor Gomes",
        "email": "victorgomes@chromium.org",
        "time": "Mon Jan 10 17:23:17 2022"
      },
      "committer": {
        "name": "Victor Gomes",
        "email": "victorgomes@chromium.org",
        "time": "Mon Jan 10 17:23:17 2022"
      },
      "message": "Support PY3 in convert_protocol_to_json.py\n\nChange-Id: Ib821b09f379ba68e4e0626930d8965a94b894016"
    },
    {
      "commit": "1bf30edff655dbb1db57e93dce0ee57e176cc4d4",
      "tree": "bcad65e59658fa57d1e2dca0bf5b0ca9c00d4189",
      "parents": [
        "324560578c6d7ef2564f5ec7086a81ffe6a59983"
      ],
      "author": {
        "name": "Benedikt Meurer",
        "email": "bmeurer@chromium.org",
        "time": "Thu Dec 30 11:43:33 2021"
      },
      "committer": {
        "name": "Benedikt Meurer",
        "email": "bmeurer@chromium.org",
        "time": "Thu Dec 30 11:46:12 2021"
      },
      "message": "Fix memory leaks in DictionaryValue::cast() and ListValue::cast()\n\nIn the context of fixing crbug.com/1281031 I noticed that the cast()\nmethods which take a std::unique_ptr do not properly release the\noriginal value if the cast operation fails. This is needed to\nunblock crrev.com/c/3361838\n\nBug: chromium:1281031\nChange-Id: If56c458180fe1d26fb85b4f4608fd4671e08f723\n"
    },
    {
      "commit": "324560578c6d7ef2564f5ec7086a81ffe6a59983",
      "tree": "64da319e5f5e690fe5e4f2a15e7a59f367f2d522",
      "parents": [
        "9ed5b2874d8ff216e6eee8d8b0661ea78460d426"
      ],
      "author": {
        "name": "David Sanders",
        "email": "dsanders11@ucsbalum.com",
        "time": "Sun Dec 05 05:38:06 2021"
      },
      "committer": {
        "name": "David Sanders",
        "email": "dsanders11@ucsbalum.com",
        "time": "Sun Dec 05 05:38:11 2021"
      },
      "message": "Fix typo in trailing namespace comment\n\nChange-Id: I17deec6124758b8d9a1133ab73076e9dae230fd8\n"
    },
    {
      "commit": "9ed5b2874d8ff216e6eee8d8b0661ea78460d426",
      "tree": "cf542784d14cea93d1d727d71dd306ae1255d909",
      "parents": [
        "a40f115da5c4d2f7e3155b497f06859b4b3f5240"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Wed Nov 10 16:22:21 2021"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Wed Nov 10 16:22:21 2021"
      },
      "message": "Erase file before opening to account for filename case change on non-case sensitive fs\n\nBug: 1268839\nChange-Id: Id83a7147abaeb7cc46901f49e8d2ac59fa2a12d3"
    },
    {
      "commit": "a40f115da5c4d2f7e3155b497f06859b4b3f5240",
      "tree": "06cafd559766100ee00c4240cea2c731e9fab4ea",
      "parents": [
        "e4af6c11e7f4ad4a33faec2f2c6a1ae7774b10ef"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Tue Nov 09 21:44:04 2021"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Tue Nov 09 21:44:04 2021"
      },
      "message": "Fix snake case conversion to properly handle abbreviaiton-only names\n\nChange-Id: I288b8ac1670e91c720252cea32d2ea29d169de06"
    },
    {
      "commit": "e4af6c11e7f4ad4a33faec2f2c6a1ae7774b10ef",
      "tree": "59dd3566ce35c7ac54b73c25b2ff0a2aa8d4b2f2",
      "parents": [
        "9b24bffce6e26dee406081ebe0854da6e68301ae"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Tue Nov 09 19:09:56 2021"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Tue Nov 09 19:09:56 2021"
      },
      "message": "Treat abbreviations as a separate word when converting CamelCase to snake_case\n\nE.g. DOMDebugger \u003d\u003e dom_debugger\n\nChange-Id: I1c4e288408b6baeb9e5befa55a4fb7237e7064f0"
    },
    {
      "commit": "9b24bffce6e26dee406081ebe0854da6e68301ae",
      "tree": "1142a80e4fa6fa43a99e924612023d8c9779cc21",
      "parents": [
        "d45d496fc94a2d7a2f79ccda3dc038bf5d9d62a7"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri Nov 05 21:02:48 2021"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri Nov 05 21:02:48 2021"
      },
      "message": "Remove SerializerTraits, which is no longer used\n\nChange-Id: I52fca1e3063b824bc22b4b8e3ad9d6a217cffac6"
    },
    {
      "commit": "d45d496fc94a2d7a2f79ccda3dc038bf5d9d62a7",
      "tree": "0194a4c37b140efa224bcf0806b18b88a140ecdf",
      "parents": [
        "91f1162090c49ee6014af881d88babdbbf317f0a"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri Oct 29 00:08:30 2021"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri Oct 29 00:08:30 2021"
      },
      "message": "Extract std::string protocol traits for tests into a file of its own\n\nChange-Id: I0c2a2816ae933bcdbffac6e037ed43d029dce890"
    },
    {
      "commit": "91f1162090c49ee6014af881d88babdbbf317f0a",
      "tree": "f01d1458f3683bc248207481bc4f045845d6ec8a",
      "parents": [
        "1a355c1215f33909a76dce8392df8e744d36af5b"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri Oct 29 00:01:02 2021"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Fri Oct 29 00:01:02 2021"
      },
      "message": "Roll deps for mini_chromium and buildtools\n\nThis brings up our dependencies up to date and fixes standalone builds.\n\nChange-Id: I0462658e5d34eab3ef45b503ec117f58fb84210d"
    },
    {
      "commit": "1a355c1215f33909a76dce8392df8e744d36af5b",
      "tree": "3ba87cc3252e1274cfcba3e1f4a6a91c423525dd",
      "parents": [
        "79d309325cafed50853b7111b54ab294b9e36d59"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Wed Oct 27 19:49:33 2021"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Wed Oct 27 19:49:33 2021"
      },
      "message": "Remove std::string traits and Binary from base_string_adapter\n\nthese are now in downstream-specific protocol_traits{.h.cc}\n\nChange-Id: I438d3cbe89398b6e7ce5bb1d6c6a8e929fbfb157"
    },
    {
      "commit": "79d309325cafed50853b7111b54ab294b9e36d59",
      "tree": "d36c8497e10df181f1789af18c0b277ab76eae5e",
      "parents": [
        "32cf5f2bf4dc20c73ead291e68d2e2f6b638cd57"
      ],
      "author": {
        "name": "Darshan Sen",
        "email": "raisinten@gmail.com",
        "time": "Sun Aug 15 05:10:52 2021"
      },
      "committer": {
        "name": "Darshan Sen",
        "email": "raisinten@gmail.com",
        "time": "Sun Aug 15 05:10:52 2021"
      },
      "message": "Fix compiler warning in crdtp/cbor.cc\n\nThis upstreams the change in: https://github.com/nodejs/node/pull/37573\n\nSigned-off-by: Darshan Sen \u003craisinten@gmail.com\u003e\nChange-Id: I5550215c2f951aab1798dd06f245037e7a74ac35"
    },
    {
      "commit": "32cf5f2bf4dc20c73ead291e68d2e2f6b638cd57",
      "tree": "abdba1e55baa070b5b3d759d43054f00760d08dd",
      "parents": [
        "59675da3ec82ce579f7967f33fd55023c7e8ad06"
      ],
      "author": {
        "name": "Morten Stenshorne",
        "email": "mstensho@chromium.org",
        "time": "Fri Jul 09 07:45:47 2021"
      },
      "committer": {
        "name": "Morten Stenshorne",
        "email": "mstensho@chromium.org",
        "time": "Fri Jul 09 07:45:47 2021"
      },
      "message": "CodeHealth: Modernize base::Value code in inspector_protocol.\n\nUse range-based for-loops for lists and dictionaries, avoid\ndeprecated methods and classes.\n\nBug: chromium:1187097, chromium:1187084, chromium:1187064, chromium:1187062, chromium:1187061, chromium:1187031\nChange-Id: I94613200a9494524776a6e687a14b6560aca96ce"
    },
    {
      "commit": "59675da3ec82ce579f7967f33fd55023c7e8ad06",
      "tree": "da8990541da03785192997fd04470e427f61f99a",
      "parents": [
        "35e8d2d89cb017d72cf905362672de77c978e1e6"
      ],
      "author": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Tue Jul 06 08:29:20 2021"
      },
      "committer": {
        "name": "Alex Rudenko",
        "email": "alexrudenko@chromium.org",
        "time": "Tue Jul 06 08:29:20 2021"
      },
      "message": "Code health: Replace base::Value::GetAs* methods with Value::Get* versions\n\nReplacing ListValue and DictionaryValue usages is more complex,\ntherefore, leaving it for another CL.\n\nBug: chromium:1187004, chromium:1187003, chromium:1187006, chromium:1187007\nChange-Id: Idfe959134839e83e2b4694bac329420eaa996e45"
    },
    {
      "commit": "35e8d2d89cb017d72cf905362672de77c978e1e6",
      "tree": "7113df328d089ea948c4308ff8980a3a92864677",
      "parents": [
        "c149e90e9ff5bf768816224a8b6c39063ae1a04c"
      ],
      "author": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Mon Mar 08 16:50:21 2021"
      },
      "committer": {
        "name": "Jan Wilken Dörrie",
        "email": "jdoerrie@chromium.org",
        "time": "Mon Mar 08 16:50:21 2021"
      },
      "message": "[LSC] Remove base::string16 and base::char16\n\nThis change removes the base::string16 and base::char16 aliases from\ninspector_protocol.\n\nBug: chromium:1184339\nChange-Id: I77e9ef7f5d1a603a416f3d2b18bb384e3c43bdf8"
    },
    {
      "commit": "c149e90e9ff5bf768816224a8b6c39063ae1a04c",
      "tree": "cc515fe4ca0529c34722d3cc61d7cc8720895b17",
      "parents": [
        "62c7be86bf5728a7b18a74408d77c07bd40ef383"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Sat Feb 27 01:05:52 2021"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Sat Feb 27 01:05:52 2021"
      },
      "message": "Move vector in PreSerialized constructor\n\nKudos to aparajit@ for finding.\n\nBug: b/152299132\nChange-Id: Id5497b4c8f5b0e70cb531eb611cbc68b821c0568"
    },
    {
      "commit": "62c7be86bf5728a7b18a74408d77c07bd40ef383",
      "tree": "74eb442cc8d4b586771b19eb935085955b6d7438",
      "parents": [
        "751c62b24e500dc80a40212627ee91331de8abdb"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Wed Jan 13 00:42:43 2021"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Wed Jan 13 00:42:43 2021"
      },
      "message": "Fail deserializing DictionaryValue/Object if underlying value is not an object\n\nBug: 1154370\nChange-Id: I2da489fd50974cbdd3533362e45ae54c52aa8d51"
    },
    {
      "commit": "751c62b24e500dc80a40212627ee91331de8abdb",
      "tree": "e1d320e987da4dfebdad62c19d94c8cef0fb218b",
      "parents": [
        "88c8137706fc29deeffa8cec39ef793bdafb57dc"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Thu Dec 24 01:09:28 2020"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Thu Dec 24 01:09:43 2020"
      },
      "message": "Fix python syntax error in pdl.py\n\n... following https://chromium-review.googlesource.com/c/deps/inspector_protocol/+/2600990\n\nTBR\u003dyangguo@chromium.org\n\nChange-Id: Ifc51f9c267f16283eeb8d56d3e7245d897a8f7c0\n"
    },
    {
      "commit": "88c8137706fc29deeffa8cec39ef793bdafb57dc",
      "tree": "62b2cdeeadc987374734bce734662cc628b89a30",
      "parents": [
        "94298cef795ec994106bdaff002c41182911b767"
      ],
      "author": {
        "name": "Yang Guo",
        "email": "yangguo@chromium.org",
        "time": "Wed Dec 23 09:36:20 2020"
      },
      "committer": {
        "name": "Yang Guo",
        "email": "yangguo@chromium.org",
        "time": "Wed Dec 23 09:36:20 2020"
      },
      "message": "Add comment to json conversion for base64-encoded binary\n\nCDP in JSON representation uses base64 encoded string for binary data.\nThis change adds a comment to the protocol command descriptions when\nconverting from .pdl to .json when binary is mapped to string to\n\nBug:chromium:1159541\nChange-Id: I34bf679ddbdcaf7a8084141bf5c6ef28e133e562"
    },
    {
      "commit": "94298cef795ec994106bdaff002c41182911b767",
      "tree": "8348a5cfe01c9cb41f9708ff8fbb38d6a37d97ae",
      "parents": [
        "351a2b717e7cd0e59c3d81505c1a803673667dac"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Wed Dec 09 01:32:52 2020"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Wed Dec 09 01:32:52 2020"
      },
      "message": "crdtp: pass 0x7f in strings as is rather than loosing it\n\nBug: 1156334\nChange-Id: I47bff028654f4e41d79e0e791d267a07e961b180"
    },
    {
      "commit": "351a2b717e7cd0e59c3d81505c1a803673667dac",
      "tree": "ca190b091f72cf156168fe10bbc2495d683e936f",
      "parents": [
        "4f2c08ac839d328fa591b9821a490eaa188b0bbe"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Tue Jul 21 00:41:39 2020"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Tue Jul 21 00:41:39 2020"
      },
      "message": "Explicitly specialize Array\u003cBinary\u003e so that Binary is treated as value type\n\nChange-Id: I32ef1abdf3093cb704dbb8326bc2fbefa82924d0"
    },
    {
      "commit": "4f2c08ac839d328fa591b9821a490eaa188b0bbe",
      "tree": "2a26464709232ea3be39eaccc179b88d837c38e5",
      "parents": [
        "061034cbf9c26d25e651d7c343d084d059cda989",
        "fcb0adb89eb0b9ba5acb21f3a2ea8a7f8c8eb415"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Wed Jul 08 19:11:53 2020"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 08 19:11:53 2020"
      },
      "message": "Merge \"Fix standalone build of crdtp_test after rename of glue_test.cc to maybe_test.cc\""
    },
    {
      "commit": "061034cbf9c26d25e651d7c343d084d059cda989",
      "tree": "847fd0b51b3fb1bc5e01cdb9cf62770d2525628f",
      "parents": [
        "898aed4a1e8b6be1460b6058bd0553ba84e71e29"
      ],
      "author": {
        "name": "Jose Dapena Paz",
        "email": "jdapena@igalia.com",
        "time": "Tue Jul 07 08:48:48 2020"
      },
      "committer": {
        "name": "Jose Dapena Paz",
        "email": "jdapena@igalia.com",
        "time": "Tue Jul 07 08:53:47 2020"
      },
      "message": "IWYU: inspector protocol core uses std::lower_bound from algorithm\n\nBug: 957519\nChange-Id: I0d70546f03a158a5a61dad645a3493f9300c9882\n"
    },
    {
      "commit": "fcb0adb89eb0b9ba5acb21f3a2ea8a7f8c8eb415",
      "tree": "713d4db4d9694b1df1b59939808479f70a88c68c",
      "parents": [
        "898aed4a1e8b6be1460b6058bd0553ba84e71e29"
      ],
      "author": {
        "name": "Jose Dapena Paz",
        "email": "jdapena@igalia.com",
        "time": "Tue Jul 07 08:46:13 2020"
      },
      "committer": {
        "name": "Jose Dapena Paz",
        "email": "jdapena@igalia.com",
        "time": "Tue Jul 07 08:51:12 2020"
      },
      "message": "Fix standalone build of crdtp_test after rename of glue_test.cc to maybe_test.cc\n\nChange-Id: Ie85ed5e00ea79b4d7e81ac53cc75ef7dc0500ebe\n"
    },
    {
      "commit": "898aed4a1e8b6be1460b6058bd0553ba84e71e29",
      "tree": "9ff2d649294455151962fcbf2713a9b3260efbcd",
      "parents": [
        "8c11f011735fedf71002e0f2f29a4a3a9546136e",
        "8ee5f97cc7d51c466cbcd5b0fcf1401d8cddd063"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Wed Jul 01 17:20:50 2020"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 01 17:20:50 2020"
      },
      "message": "Merge \"Unified protocol type (de)serialization\""
    },
    {
      "commit": "8ee5f97cc7d51c466cbcd5b0fcf1401d8cddd063",
      "tree": "974219adda8fff875bf755ff665307fa02c8f82d",
      "parents": [
        "b7cda08cd6e522df2159413ba5f29d2a953cc1c4"
      ],
      "author": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Wed Jul 01 02:40:09 2020"
      },
      "committer": {
        "name": "Andrey Kosyakov",
        "email": "caseq@chromium.org",
        "time": "Wed Jul 01 02:40:09 2020"
      },
      "message": "Unified protocol type (de)serialization\n\nThis implements a new way to serialize and de-serialize protocol types.\n\n- avoid intermediate representation as protocol::Value in most places;\n- some atavisms of old direct serialization still remain and will be removed\n   in follow-up CLs.\n\nBug: 1099809\n\nChange-Id: I3a97be47cb7a6c89b70482cb4bef163b77e562d4"
    },
    {
      "commit": "8c11f011735fedf71002e0f2f29a4a3a9546136e",
      "tree": "727dd182aee9faf2bf80ae59cfe72b42aada0e4d",
      "parents": [
        "b7cda08cd6e522df2159413ba5f29d2a953cc1c4"
      ],
      "author": {
        "name": "Hans Wennborg",
        "email": "hans@chromium.org",
        "time": "Fri Jun 19 09:44:58 2020"
      },
      "committer": {
        "name": "Hans Wennborg",
        "email": "hans@chromium.org",
        "time": "Fri Jun 19 09:44:58 2020"
      },
      "message": "Include base/check.h in test_platform.h\n\nbecause that\u0027s the header that provides the CHECK etc. macros.\nChromium\u0027s logging.h will no longer include check.h in the future.\n\nThis also rolls mini_chromium to the latest version, which\nincludes check.h\n\nBug: chromium:1031540\nChange-Id: Ib4bfea3d3b532be4f54ea78437fa68a50b4507c5"
    },
    {
      "commit": "b7cda08cd6e522df2159413ba5f29d2a953cc1c4",
      "tree": "c89ae8306919cb44758f9458154451a1a6c3caa4",
      "parents": [
        "c69cdc36200992d21a17bf4e5c2f3a95b8860ddf"
      ],
      "author": {
        "name": "Johannes Henkel",
        "email": "johannes@chromium.org",
        "time": "Fri Mar 20 20:19:45 2020"
      },
      "committer": {
        "name": "Johannes Henkel",
        "email": "johannes@chromium.org",
        "time": "Fri Mar 20 20:22:18 2020"
      },
      "message": "Drop redundant std::move in inspector_protocol.\n\nWhen returning a local variable, we should not use std::move,\nas this can prevent RVO. It\u0027s explained in\nhttps://developers.redhat.com/blog/2019/04/12/understanding-when-not-to-stdmove-in-c/\n\nSam, thank you for letting us know in\nhttps://chromium-review.googlesource.com/c/deps/inspector_protocol/+/2057545\n\nChange-Id: I3f8b76f931d3a9ab1e6f01abe31fa78bd88e9003\n"
    },
    {
      "commit": "c69cdc36200992d21a17bf4e5c2f3a95b8860ddf",
      "tree": "f3442c35035e69f08d435ab21cad8fc7f78b73a8",
      "parents": [
        "8c2064ea99cffdb5647760ad3953c43e612e07fc"
      ],
      "author": {
        "name": "Johannes Henkel",
        "email": "johannes@chromium.org",
        "time": "Thu Mar 19 20:07:43 2020"
      },
      "committer": {
        "name": "Johannes Henkel",
        "email": "johannes@chromium.org",
        "time": "Thu Mar 19 20:07:43 2020"
      },
      "message": "For the shallow parse of a DevTools message, allow \"params\": null.\n\nThe params parameter is optional, and there are de-facto three\nways to express absence of this parameter:\n1) No \"params\" key.\n2) \"params\": null\n3) \"params\": {}\nThus far, crdtp::Dispatchable did not support 2), with this\nchange it\u0027ll support it.\n\nThis fixes the problem that required this revert:\nhttps://chromium-review.googlesource.com/c/chromium/src/+/2103517\n\nThe alternative is to make it so that\ncontent/browser/devtools/protocol/target_handler.cc\u0027s checks\nif (params \u0026\u0026 !params-\u003eis_none()) before adding a params entry.\nSendProtocolMessageToPage, but I think it\u0027s better to\nalso support 2) above, otherwise we may break devtools clients.\n\nChange-Id: Id8122bab6162b2e9c53d70d942366f5a6661ce99"
    },
    {
      "commit": "8c2064ea99cffdb5647760ad3953c43e612e07fc",
      "tree": "67ab23a2c53e5019a162f3b2547de3030d388f21",
      "parents": [
        "81ef742ba3587767fc08652d299df9e9b7051407"
      ],
      "author": {
        "name": "Johannes Henkel",
        "email": "johannes@chromium.org",
        "time": "Tue Mar 10 02:18:04 2020"
      },
      "committer": {
        "name": "Johannes Henkel",
        "email": "johannes@chromium.org",
        "time": "Tue Mar 10 02:18:04 2020"
      },
      "message": "Introduce a crdtp/dispatch.{h,cc} library.\n\nThis replaces the Dispatcher_base_{h,cpp}.template and the\nFrontendChannel_h.template.\n\nApart from where the code lives, the main difference is that\nwe no longer parse messages in their entirety to dispatch them.\nInstead, we perform a shallow parse of only the top-level fields.\nThis is implemented in crdtp/dispatch.h\u0027s Dispatchable class,\nwhich is instantiated from a CBOR message that is a span of bytes.\nIf the shallow parse is successful, that is, Dispatchable::ok()\nis true, then we may call UberDispatcher::Dispatch with it,\nwhich returns a DispatchResult with a Run method on it.\n\nIn addition to this, errors are now handled comprehensively,\nthis includes JSON\u003c-\u003eCBOR conversion errors, shallow parsing\nerrors, as well as other protocol errors.\n\nIn content::DevToolsSession (see downstream PR), we send the\nerrors to the client in the encoding that the client expects.\nIn other places, we can assume that the content layer has\nalready checked the message, so now the LOG(ERROR) can be\na DCHECK.\n\nMethod not found errors are handled in this way as well -\nthe UberDispatcher::DispatchResult will send such an error if\nexecuted; however it\u0027s also possible to query DispatchResult\nas to whether the method was found - this is needed\nfor implementing fall through between layers.\n\nAll protocol error messages are now in UTF8, so agents\n/ handlers / etc. in Blink and V8 are adjusted in the downstream\nPRs.\n\nIn addition to this, protocol responses are now directly\nserialized to cbor all the way - there is no more\nindirection via ValueConversions. This reduces the Android\nbinary size by 35k (when the patch is only applied to\nChromium) and should speed things up as well.\n\nChromium:\nhttps://chromium-review.googlesource.com/c/chromium/src/+/2047966\n\nV8:\nhttps://chromium-review.googlesource.com/c/v8/v8/+/2076215\n\nChange-Id: I20a1e4fce7ecd522d47710c6ee954a180bebe398"
    }
  ],
  "next": "81ef742ba3587767fc08652d299df9e9b7051407"
}
