1. 25 May, 2020 1 commit
  2. 06 May, 2020 1 commit
    • Jakob Gruber's avatar
      [snapshot] Clear reconstructable data prior to d8 stress_snapshot run · 3c422d1c
      Jakob Gruber authored
      The serializer currently cannot handle a heap state containing
      arbitrary compiled Code objects. As a quick fix for the
      --stress-snapshot d8 flag, we clear compiled data from the isolate
      prior to the serialize-deserialize-verify pass.
      
      With this change, mjsunit tests pass on x64.
      
      The %SerializeDeserializeNow() runtime function would require more
      work, since it is not possible to mutate the heap to this extent while
      still preserving a runnable host context and isolate. We will need
      another solution there.
      
      Drive-by: Skip the stress_snapshot variant except for the mjsunit
      suite.
      
      Tbr: machenbach@chromium.org
      Bug: v8:10493,v8:10416
      Change-Id: Ie110da8b51613fcd69c7f391d3cf8589d6b04dd8
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2182429Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67585}
      3c422d1c
  3. 04 May, 2020 2 commits
  4. 28 Apr, 2020 3 commits
    • Jakob Gruber's avatar
      Reland "[snapshot] Expose the serializer through %SerializeDeserializeNow" · bce121c7
      Jakob Gruber authored
      This is a reland of ad5b005e
      
      Original change's description:
      > [snapshot] Expose the serializer through %SerializeDeserializeNow
      >
      > ... in order to exercise the snapshot/ component from mjsunit tests
      > and fuzzers.
      >
      > * Since the serializer and deserializer can now be called at any time
      > instead of only in a tightly controlled environment, several
      > assumptions (such as an empty execution stack, no microtasks, no
      > handles) no longer hold and had to be made configurable through
      > SerializerFlags.
      >
      > * Root iteration now skips more root categories which were previously
      > guaranteed to be empty (e.g. the stack, microtask queue, handles).
      >
      > * The %SerializeDeserializeNow runtime function triggers
      > serialization, deserialization, and heap verification on the current
      > isolate and native context.
      >
      > Support is not yet complete and will be extended in future work. Once
      > all mjsunit tests successfully run, we can add a new test mode to
      > stress serialization.
      >
      > Bug: v8:10416
      > Change-Id: Ie7ff441a761257dd7f256d0a33e73227850074ac
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2159495
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Dan Elphick <delphick@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#67423}
      
      Tbr: delphick@chromium.org,ulan@chromium.org
      Bug: v8:10416
      Change-Id: Ibed04c0f0b72fabcf811d8b18a1479391a11568b
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2170090Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarDan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67426}
      bce121c7
    • Nico Hartmann's avatar
      Revert "[snapshot] Expose the serializer through %SerializeDeserializeNow" · 451854fa
      Nico Hartmann authored
      This reverts commit ad5b005e.
      
      Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20shared/36070?
      
      Original change's description:
      > [snapshot] Expose the serializer through %SerializeDeserializeNow
      > 
      > ... in order to exercise the snapshot/ component from mjsunit tests
      > and fuzzers.
      > 
      > * Since the serializer and deserializer can now be called at any time
      > instead of only in a tightly controlled environment, several
      > assumptions (such as an empty execution stack, no microtasks, no
      > handles) no longer hold and had to be made configurable through
      > SerializerFlags.
      > 
      > * Root iteration now skips more root categories which were previously
      > guaranteed to be empty (e.g. the stack, microtask queue, handles).
      > 
      > * The %SerializeDeserializeNow runtime function triggers
      > serialization, deserialization, and heap verification on the current
      > isolate and native context.
      > 
      > Support is not yet complete and will be extended in future work. Once
      > all mjsunit tests successfully run, we can add a new test mode to
      > stress serialization.
      > 
      > Bug: v8:10416
      > Change-Id: Ie7ff441a761257dd7f256d0a33e73227850074ac
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2159495
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Dan Elphick <delphick@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#67423}
      
      TBR=ulan@chromium.org,jgruber@chromium.org,delphick@chromium.org
      
      Change-Id: Ie30b94c9ec6e4463bed6cc87dd6525f469fdf84a
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:10416
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2170089Reviewed-by: 's avatarNico Hartmann <nicohartmann@chromium.org>
      Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67424}
      451854fa
    • Jakob Gruber's avatar
      [snapshot] Expose the serializer through %SerializeDeserializeNow · ad5b005e
      Jakob Gruber authored
      ... in order to exercise the snapshot/ component from mjsunit tests
      and fuzzers.
      
      * Since the serializer and deserializer can now be called at any time
      instead of only in a tightly controlled environment, several
      assumptions (such as an empty execution stack, no microtasks, no
      handles) no longer hold and had to be made configurable through
      SerializerFlags.
      
      * Root iteration now skips more root categories which were previously
      guaranteed to be empty (e.g. the stack, microtask queue, handles).
      
      * The %SerializeDeserializeNow runtime function triggers
      serialization, deserialization, and heap verification on the current
      isolate and native context.
      
      Support is not yet complete and will be extended in future work. Once
      all mjsunit tests successfully run, we can add a new test mode to
      stress serialization.
      
      Bug: v8:10416
      Change-Id: Ie7ff441a761257dd7f256d0a33e73227850074ac
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2159495
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarDan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67423}
      ad5b005e
  5. 27 Apr, 2020 1 commit
  6. 22 Apr, 2020 1 commit
    • Dan Elphick's avatar
      [snapshot] Rename partial snapshot to context snapshot · 71bd50e1
      Dan Elphick authored
      The partial snapshot/serializer/deserializer are renamed to context *,
      while the partial snapshot cache is renamed to startup object cache in
      line with the read-only object cache (as this better reflects where it
      lives and what it does).
      
      To avoid a gap in the file history due to renaming both the files and
      identifiers simulataneously, this leaves all the partial-*.* files in
      place. They will be renamed in a follow-up CL.
      
      Bug: v8:10416
      Change-Id: I5ef41cad751aaa24b35ee2b3c72bd0295832f2c6
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2144115
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Auto-Submit: Dan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67306}
      71bd50e1
  7. 21 Apr, 2020 2 commits
  8. 12 Feb, 2020 1 commit
    • Sam Maier's avatar
      Compressing SnapshotData with zlib · 858e3c7e
      Sam Maier authored
      This CL introduces, and turns on by default, compression for snapshots.
      The compression is handled in SnapshotCompression, which is a new static
      helper class for producing/consuming compressed SnapshotData.
      
      To turn off snapshot compression (accomplished by removing calls of
      Compress/Decompress) set the GN arg:
      v8_disable_snapshot_compression = true
      
      
      Bug: chromium:833361
      Change-Id: If8abc3662e8473fbd0c94e443946fbea804a305e
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1846066
      Commit-Queue: Sam Maier <smaier@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66230}
      858e3c7e
  9. 25 Nov, 2019 1 commit
  10. 21 Jun, 2019 1 commit
  11. 23 May, 2019 1 commit
  12. 16 May, 2019 1 commit
  13. 06 May, 2019 1 commit
  14. 02 May, 2019 1 commit
  15. 27 Mar, 2019 1 commit
  16. 28 Feb, 2019 2 commits
  17. 16 Nov, 2018 1 commit
  18. 09 Nov, 2018 1 commit
  19. 31 Oct, 2018 1 commit
  20. 29 Oct, 2018 1 commit
  21. 22 Oct, 2018 1 commit
  22. 16 Oct, 2018 1 commit
    • Dan Elphick's avatar
      [snapshot] Create a ReadOnly snapshot · f602712f
      Dan Elphick authored
      In preparation for sharing RO_SPACE between all Isolates within a
      process, this first pulls RO_SPACE out of the Startup snapshot and puts
      it in its own ReadOnly snapshot.
      
      The snapshot is first populated with the read-only roots. After that the
      StartupSerializer serializes as before but starting from the first
      mutable root. References to objects in the ReadOnly snapshot that aren't
      themselves roots are added to a new cache called ReadOnlyObjectCache
      which functions like the PartialSnapshotCache but lives in the
      ReadOnlySerializer rather than the StartupSerializer. These cache
      entries are referenced using a new bytecode: ReadOnlyObjectCache. (To
      make room for this, the ApiReference bytecode has been moved).
      
      To reduce code duplication, the StartupSerializer has been refactored to
      create a new base class RootSerializer, which ReadOnlySerializer also
      subclasses. The base class is responsible primarily for keeping track of
      already serialized roots and visiting the roots.
      
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Change-Id: Iff26042886130ae22eccf2e11b35f6f226f4a792
      Bug: v8:8191
      Reviewed-on: https://chromium-review.googlesource.com/c/1244676
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56681}
      f602712f
  23. 25 Sep, 2018 3 commits
    • Yang Guo's avatar
      Reland "[snapshot] add checksum to startup snapshot" · 8ff37bc7
      Yang Guo authored
      This is a reland of bcb8d49b
      
      TBR=petermarshall@chromium.org
      
      Original change's description:
      > [snapshot] add checksum to startup snapshot
      >
      > We already had checksumming for code cache data. We now extend
      > checksumming to the startup snapshot to catch data corruption early.
      >
      > The performance impact for deserialization is a regression of 1-2%,
      > which should be acceptable.
      >
      > Sample output for the included test with --profile-deserialization:
      >
      > [Verifying snapshot checksum took 0.023 ms]
      > [Deserializing isolate (134348 bytes) took 1.891 ms]
      > [Verifying snapshot checksum took 0.024 ms]
      > [Deserializing isolate (134348 bytes) took 1.654 ms]
      > [Deserializing context #0 (47208 bytes) took 0.331 ms]
      > Deserialization will reserve:
      >     208168 bytes per isolate
      >     123368 bytes per context #0
      > Snapshot blob consists of:
      >     134492 bytes in 6 chunks for startup
      >     115272 bytes for builtins
      >      47152 bytes in 31 chunks for context #0
      > [Verifying snapshot checksum took 0.048 ms]
      > [Verifying snapshot checksum took 0.043 ms]
      >
      > R=peria@chromium.org, petermarshall@chromium.org
      >
      > Bug: chromium:881417
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      > Change-Id: Ibc57520d459c86be8972f731aa35045b5e3751d7
      > Reviewed-on: https://chromium-review.googlesource.com/1241874
      > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > Commit-Queue: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#56217}
      
      Bug: chromium:881417
      Change-Id: I037f378fc2d45c3e0fa670bf538df68cbba5c53c
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/1243191Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56224}
      8ff37bc7
    • Clemens Hammacher's avatar
      Revert "[snapshot] add checksum to startup snapshot" · 0a04f263
      Clemens Hammacher authored
      This reverts commit bcb8d49b.
      
      Reason for revert: MSan compile error: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/23025
      
      Original change's description:
      > [snapshot] add checksum to startup snapshot
      > 
      > We already had checksumming for code cache data. We now extend
      > checksumming to the startup snapshot to catch data corruption early.
      > 
      > The performance impact for deserialization is a regression of 1-2%,
      > which should be acceptable.
      > 
      > Sample output for the included test with --profile-deserialization:
      > 
      > [Verifying snapshot checksum took 0.023 ms]
      > [Deserializing isolate (134348 bytes) took 1.891 ms]
      > [Verifying snapshot checksum took 0.024 ms]
      > [Deserializing isolate (134348 bytes) took 1.654 ms]
      > [Deserializing context #0 (47208 bytes) took 0.331 ms]
      > Deserialization will reserve:
      >     208168 bytes per isolate
      >     123368 bytes per context #0
      > Snapshot blob consists of:
      >     134492 bytes in 6 chunks for startup
      >     115272 bytes for builtins
      >      47152 bytes in 31 chunks for context #0
      > [Verifying snapshot checksum took 0.048 ms]
      > [Verifying snapshot checksum took 0.043 ms]
      > 
      > R=​peria@chromium.org, petermarshall@chromium.org
      > 
      > Bug: chromium:881417
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      > Change-Id: Ibc57520d459c86be8972f731aa35045b5e3751d7
      > Reviewed-on: https://chromium-review.googlesource.com/1241874
      > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > Commit-Queue: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#56217}
      
      TBR=peria@chromium.org,yangguo@chromium.org,petermarshall@chromium.org
      
      Change-Id: Iccb82092858ab68a5d6ae9552fa716108eda354b
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:881417
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/1243190Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56221}
      0a04f263
    • Yang Guo's avatar
      [snapshot] add checksum to startup snapshot · bcb8d49b
      Yang Guo authored
      We already had checksumming for code cache data. We now extend
      checksumming to the startup snapshot to catch data corruption early.
      
      The performance impact for deserialization is a regression of 1-2%,
      which should be acceptable.
      
      Sample output for the included test with --profile-deserialization:
      
      [Verifying snapshot checksum took 0.023 ms]
      [Deserializing isolate (134348 bytes) took 1.891 ms]
      [Verifying snapshot checksum took 0.024 ms]
      [Deserializing isolate (134348 bytes) took 1.654 ms]
      [Deserializing context #0 (47208 bytes) took 0.331 ms]
      Deserialization will reserve:
          208168 bytes per isolate
          123368 bytes per context #0
      Snapshot blob consists of:
          134492 bytes in 6 chunks for startup
          115272 bytes for builtins
           47152 bytes in 31 chunks for context #0
      [Verifying snapshot checksum took 0.048 ms]
      [Verifying snapshot checksum took 0.043 ms]
      
      R=peria@chromium.org, petermarshall@chromium.org
      
      Bug: chromium:881417
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Change-Id: Ibc57520d459c86be8972f731aa35045b5e3751d7
      Reviewed-on: https://chromium-review.googlesource.com/1241874Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56217}
      bcb8d49b
  24. 20 Sep, 2018 1 commit
    • Dan Elphick's avatar
      [interpreter] Always put bytecode handlers in builtins table · daa296b5
      Dan Elphick authored
      This always creates the bytecode handlers as part of the builtins table
      regardless of the V8_EMBEDDED_BYTECODE_HANDLERS definition.
      
      Lazy deserialization of bytecode handlers is enabled for this flow by
      moving the three lazy bytecode deserializers from the strong roots into
      the builtins table (ensuring that they not marked lazy themselves).
      
      To simplify lazy deserialization, the illegal bytecode handler is made
      non-lazy so that GetAndMaybeDeserializeBytecodeHandler doesn't to know
      about it.
      
      Since the bytecode handlers are now always part of the builtins table,
      many bytecode specific methods are removed, including logging and in
      BuiltinsSerializer and BuiltinsDeserializer.
      
      Removes setup-interpreter.h, setup-interpreter-internal.cc and
      builtin-snapshot-utils.*.
      
      Change-Id: Ie421aa897a04f7b3bcb964c476eb7ab149388d53
      Reviewed-on: https://chromium-review.googlesource.com/1220046Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56063}
      daa296b5
  25. 03 Sep, 2018 1 commit
  26. 08 Aug, 2018 1 commit
  27. 26 Jul, 2018 1 commit
  28. 05 Jul, 2018 1 commit
    • jgruber's avatar
      [builtins] Add embedded stats to --serialization-statistics · a7dce4fb
      jgruber authored
      This adds the option to output statistics about the embedded blob.
      
      On x64 release, the output is currently:
      
      Total size:                         724064
      Metadata size:                      6832
      Instruction size:                   703427
      Padding:                            13805
      Embedded builtin count:             852
      Instruction size (50th percentile): 222
      Instruction size (75th percentile): 749
      Instruction size (90th percentile): 1871
      Instruction size (99th percentile): 9171
      
      Total size is added to our Memory benchmark.
      
      Drive-by: Fix startup / context regexps for Memory benchmark.
      
      Bug: v8:6666, v8:7898
      Change-Id: I90d4458877939d3b48593bd9dd3a33971fe78c44
      Reviewed-on: https://chromium-review.googlesource.com/1126104
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54256}
      a7dce4fb
  29. 03 Jul, 2018 1 commit
  30. 20 Apr, 2018 1 commit
  31. 14 Apr, 2018 1 commit
    • Jakob Kummerow's avatar
      [ubsan] Change Address typedef to uintptr_t · 2459046c
      Jakob Kummerow authored
      The "Address" type is V8's general-purpose type for manipulating memory
      addresses. Per the C++ spec, pointer arithmetic and pointer comparisons
      are undefined behavior except within the same array; since we generally
      don't operate within a C++ array, our general-purpose type shouldn't be
      a pointer type.
      
      Bug: v8:3770
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: Ib96016c24a0f18bcdba916dabd83e3f24a1b5779
      Reviewed-on: https://chromium-review.googlesource.com/988657
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52601}
      2459046c
  32. 26 Mar, 2018 1 commit
    • jgruber's avatar
      [builtins] Support off-heap constant pool access · 4c5bf68e
      jgruber authored
      Access to the constant pool of off-heap builtins must use
      Instruction{Start,Size} instead of the raw instruction_{start,size}
      accessors, and we need to copy the constant_pool_offset field when
      creating trampolines.
      
      This in turn required access to the embedded blob without an
      associated isolate, which is now implemented by global variable set by
      each isolate. Both writes and reads are relaxed, as races do not
      matter since each isolate will attempt to set the same value of the
      blob and its size.
      
      Drive-by: Support off-heap code disassembly.
      
      Bug: v8:6666,v8:7575
      Change-Id: I4f203acd4dc128339cf2dd54b3253d9552616649
      Reviewed-on: https://chromium-review.googlesource.com/973442
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52209}
      4c5bf68e
  33. 22 Mar, 2018 1 commit
    • Leszek Swirski's avatar
      Reland^2: Remove SFI code field · 51ded9d3
      Leszek Swirski authored
      This is a reland of d8f564ea
      
      TBR=mstarzinger@chromium.org,yangguo@chromium.org,jgruber@chromium.org
      
      Original change's description:
      > Reland: Remove SFI code field
      >
      > Remove the SharedFunctionInfo code field, inferring the code object
      > from the function_data field instead. In some cases, the function_data
      > field can now hold a Code object (e.g. some WASM cases).
      >
      > (Reland of https://chromium-review.googlesource.com/952452)
      >
      > TBR=mstarzinger@chromium.org
      >
      > Bug: chromium:783853
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      > Change-Id: I10ea5be7ceed1b51362a2fad9be7397624d69343
      > Reviewed-on: https://chromium-review.googlesource.com/970649
      > Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52136}
      
      Bug: chromium:783853
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: I5187851b923e9a92f43daf8cb99e662786cbb839
      Reviewed-on: https://chromium-review.googlesource.com/975942
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52159}
      51ded9d3