1. 26 Sep, 2019 1 commit
  2. 19 Sep, 2019 1 commit
  3. 23 Aug, 2019 1 commit
  4. 20 Aug, 2019 1 commit
  5. 13 Aug, 2019 1 commit
    • Jakob Gruber's avatar
      [isolate-data] Move hot fields closer to isolate_root · fb698cec
      Jakob Gruber authored
      In generated code, we access fields inside IsolateData through the
      root-register. On some platforms it is significantly cheaper to access
      things that are close to the root-register value than things that are
      located far away. The motivation for this CL was a 5% difference in
      Octane/Mandreel scores between
      
      // Part of the stack check.
      cmpq rsp,[r13+0x9ea8]
      
      and
      
      cmpq rsp,[r13-0x30]  // Mandreel score improved by 5%.
      
      This moves the StackGuard up to fix Mandreel. As a drive-by, also move
      two more fields up that are accessed by each CallCFunction.
      
      Tbr: yangguo@chromium.org
      Bug: v8:9534,chromium:993264
      Change-Id: I5418b63d40274a138e285fa3c99b96e33a814fb1
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1751345Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Auto-Submit: Jakob Gruber <jgruber@chromium.org>
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#63187}
      fb698cec
  6. 10 May, 2019 1 commit
  7. 24 Apr, 2019 1 commit
  8. 23 Apr, 2019 2 commits
  9. 18 Apr, 2019 1 commit
  10. 19 Mar, 2019 2 commits
    • Igor Sheludko's avatar
      [ptr-compr][ubsan] Use [Read/Write]UnalignedValue for unaligned fields · 0188634e
      Igor Sheludko authored
      When pointer compression is enabled the [u]intptr_t and double fields are
      only kTaggedSize aligned so in order to avoid undefined behavior in C++ code
      we have to access these values in an unaligned pointer friendly way although
      both x64 and arm64 architectures (where pointer compression is supported)
      allow unaligned access.
      
      These changes will be removed once v8:8875 is fixed and all the
      kSystemPointerSize fields are properly aligned.
      
      Bug: v8:7703
      Change-Id: I4df477cbdeab806303bb4f675d52b61c06342c8e
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1528996
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60321}
      0188634e
    • Benedikt Meurer's avatar
      [turbofan] Significantly improve ConsString creation performance. · d6a60a0e
      Benedikt Meurer authored
      This change significantly improves the performance of string
      concatenation in optimized code for the case where the resulting string
      is represented as a ConsString. On the relevant test cases we go from
      
        serializeNaive: 10762 ms.
        serializeClever: 7813 ms.
        serializeConcat: 10271 ms.
      
      to
      
        serializeNaive: 10278 ms.
        serializeClever: 5533 ms.
        serializeConcat: 10310 ms.
      
      which represents a 30% improvement on the "clever" benchmark, which
      tests specifically the ConsString creation performance.
      
      This was accomplished via a couple of different steps, which are briefly
      outlined here:
      
        1. The empty_string gets its own map, so that we can easily recognize
           and handle it appropriately in the TurboFan type system. This
           allows us to express (and assert) that the inputs to NewConsString
           are non-empty strings, making sure that TurboFan no longer creates
           "crippled ConsStrings" with empty left or right hand sides.
        2. Further split the existing String types in TurboFan to be able to
           distinguish between OneByte and TwoByte strings on the type system
           level. This allows us to avoid having to dynamically lookup the
           resulting ConsString map in case of ConsString creation (i.e. when
           we know that both input strings are OneByte strings or at least
           one of the input strings is TwoByte).
        3. We also introduced more finegrained feedback for the Add bytecode
           in the interpreter, having it collect feedback about ConsStrings,
           specifically ConsOneByteString and ConsTwoByteString. This feedback
           can be used by TurboFan to only inline the relevant code for what
           was seen so far. This allows us to remove the Octane/Splay specific
           magic in JSTypedLowering to detect ConsString creation, and instead
           purely rely on the feedback of what was seen so far (also making it
           possible to change the semantics of NewConsString to be a low-level
           operator, which is only introduced in SimplifiedLowering by looking
           at the input types of StringConcat).
        4. On top of the before mentioned type and interpreter changes we added
           new operators CheckNonEmptyString, CheckNonEmptyOneByteString, and
           CheckNonEmptyTwoByteString, which perform the appropriate (dynamic)
           checks.
      
      There are several more improvements that are possible based on this, but
      since the change was already quite big, we decided not to put everything
      into the first change, but do some follow up tweaks to the type system,
      and builtin optimizations later.
      
      Tbr: mstarzinger@chromium.org
      Bug: v8:8834, v8:8931, v8:8939, v8:8951
      Change-Id: Ia24e17c6048bf2b04df966d3cd441f0edda05c93
      Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
      Doc: https://bit.ly/fast-string-concatenation-in-javascript
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1499497
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Reviewed-by: 's avatarMythri Alle <mythria@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60318}
      d6a60a0e
  11. 18 Mar, 2019 1 commit
  12. 06 Mar, 2019 1 commit
  13. 04 Mar, 2019 2 commits
    • Igor Sheludko's avatar
      [ptr-compr] Prepare for changing kTaggedSize, pt.3 · 17448030
      Igor Sheludko authored
      This CL also gives up trying to maintain double and system word
      fields at aligned addresses because currently it's not always
      maintained (v8:8875) and Torque object definitions do not support
      padding fields (v8:8863).
      
      Given that both platforms where pointer compression is going to be
      enabled (x64 and arm64) support loading of doubles and full words
      from 4-byte aligned addresses we are fine.
      
      Bug: v8:7703
      Change-Id: I99fc6da5a0927f4db9b8fb24c7cc0bfc416523bc
      Reviewed-on: https://chromium-review.googlesource.com/c/1496974
      Auto-Submit: Igor Sheludko <ishell@chromium.org>
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60013}
      17448030
    • Benedikt Meurer's avatar
      [cleanup] Remove obsolete "one byte data hint" for strings. · 683cf6f4
      Benedikt Meurer authored
      In the early days of Chrome when we used WebKit there was no support for
      ASCII strings on the C++ side, so we put a hint onto these two-byte
      strings that said "string only contains one byte data", such that
      internally in V8 when these were involved in string operations, we could
      instead create the *cheaper* one byte strings.
      
      Nowadays Blink properly supports one-byte string representations and
      this additional hint only comes with overhead, since we check it in
      quite a few places (i.e. on the hot path for string concatenation), plus
      we end up consuming more memory due to the additional string maps.
      Removing the hint also frees one bit in the InstanceType zoo for
      strings.
      
      This alone improves performance on the `bench-dom-serialize.js` test case
      by around **3%**.
      
      Tbr: mstarzinger@chromium.org
      Bug: v8:6622, v8:8834, v8:8939
      Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
      Change-Id: I0753f2859cee7b5a37b6f0da64d8ec39fcb044ff
      Doc: https://bit.ly/fast-string-concatenation-in-javascript
      Reviewed-on: https://chromium-review.googlesource.com/c/1498478
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60006}
      683cf6f4
  14. 08 Feb, 2019 1 commit
  15. 08 Jan, 2019 1 commit
  16. 27 Dec, 2018 1 commit
  17. 13 Dec, 2018 1 commit
  18. 12 Dec, 2018 1 commit
  19. 11 Dec, 2018 1 commit
  20. 30 Nov, 2018 1 commit
  21. 22 Nov, 2018 1 commit
  22. 21 Nov, 2018 2 commits
  23. 20 Nov, 2018 2 commits
  24. 05 Nov, 2018 1 commit
  25. 30 Oct, 2018 1 commit
  26. 26 Oct, 2018 1 commit
  27. 24 Oct, 2018 1 commit
  28. 16 Oct, 2018 1 commit
  29. 13 Sep, 2018 1 commit
    • Benedikt Meurer's avatar
      [objects] Change String::length field to uint32_t. · c7a0049e
      Benedikt Meurer authored
      This changes the Name::hash_field and Symbol::flags to uint32_t as
      well, so that both Symbols and Strings consume one fewer word on 64-bit
      architectures now. More importantly the access to String::length is
      always a 32-bit field load now, even with 31-bit Smis (i.e. on ARM or
      on 64-bit with pointer compression), so the access should be faster.
      
      Bug: v8:7065, v8:8171
      Change-Id: I1a38f4470d62fbeba2b3bc5fcf4ecdbada7d6b8a
      Tbr: ulan@chromium.org, yangguo@chromium.org, ishell@chromium.org
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/1224432Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55861}
      c7a0049e
  30. 12 Sep, 2018 6 commits
    • Sathya Gunasekaran's avatar
      Revert "Reland "[objects] Change String::length field to uint32_t."" · 350dfb62
      Sathya Gunasekaran authored
      This reverts commit a03cec2c.
      
      Reason for revert: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/21320
      
      Original change's description:
      > Reland "[objects] Change String::length field to uint32_t."
      > 
      > This is a reland of 1f1eb625, the
      > breakage on the GCStress bot seems to be unrelated (maybe flushed
      > out by this change). We decided to reland to figure out whether it's
      > a random flake or really triggered by this particular change.
      > 
      > Original change's description:
      > > [objects] Change String::length field to uint32_t.
      > >
      > > This changes the Name::hash_field and Symbol::flags to uint32_t as
      > > well, so that both Symbols and Strings consume one fewer word on 64-bit
      > > architectures now. More importantly the access to String::length is
      > > always a 32-bit field load now, even with 31-bit Smis (i.e. on ARM or
      > > on 64-bit with pointer compression), so the access should be faster.
      > >
      > > Bug: v8:7065, v8:8171
      > > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng
      > > Change-Id: I5523deb1f84ece91fa2fea775d50318bd1300493
      > > Reviewed-on: https://chromium-review.googlesource.com/1221288
      > > Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      > > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#55825}
      > 
      > Bug: v8:7065, v8:8171
      > Tbr: tebbi@chromium.org, yangguo@chromium.org, ishell@chromium.org, ulan@chromium.org
      > Change-Id: I2be24ac018591c04c826e7e8db82e007b738d156
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng
      > Reviewed-on: https://chromium-review.googlesource.com/1222308
      > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
      > Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55838}
      
      TBR=yangguo@chromium.org,tebbi@chromium.org,ishell@chromium.org,bmeurer@chromium.org
      
      Change-Id: Ic741c3d407d4257a8c86b3082b9a19e33dc89215
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7065, v8:8171
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/1222368Reviewed-by: 's avatarSathya Gunasekaran <gsathya@chromium.org>
      Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55839}
      350dfb62
    • Benedikt Meurer's avatar
      Reland "[objects] Change String::length field to uint32_t." · a03cec2c
      Benedikt Meurer authored
      This is a reland of 1f1eb625, the
      breakage on the GCStress bot seems to be unrelated (maybe flushed
      out by this change). We decided to reland to figure out whether it's
      a random flake or really triggered by this particular change.
      
      Original change's description:
      > [objects] Change String::length field to uint32_t.
      >
      > This changes the Name::hash_field and Symbol::flags to uint32_t as
      > well, so that both Symbols and Strings consume one fewer word on 64-bit
      > architectures now. More importantly the access to String::length is
      > always a 32-bit field load now, even with 31-bit Smis (i.e. on ARM or
      > on 64-bit with pointer compression), so the access should be faster.
      >
      > Bug: v8:7065, v8:8171
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng
      > Change-Id: I5523deb1f84ece91fa2fea775d50318bd1300493
      > Reviewed-on: https://chromium-review.googlesource.com/1221288
      > Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55825}
      
      Bug: v8:7065, v8:8171
      Tbr: tebbi@chromium.org, yangguo@chromium.org, ishell@chromium.org, ulan@chromium.org
      Change-Id: I2be24ac018591c04c826e7e8db82e007b738d156
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/1222308Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55838}
      a03cec2c
    • Benedikt Meurer's avatar
      Revert "Reland "[objects] Change String::length field to uint32_t."" · bd69d64d
      Benedikt Meurer authored
      This reverts commit df6157ae.
      
      Reason for revert: trybots didn't rerun :-/
      
      Original change's description:
      > Reland "[objects] Change String::length field to uint32_t."
      > 
      > This is a reland of 1f1eb625, the
      > breakage on the GCStress bot seems to be unrelated (maybe flushed
      > out by this change). We decided to reland to figure out whether it's
      > a random flake or really triggered by this particular change.
      > 
      > Original change's description:
      > > [objects] Change String::length field to uint32_t.
      > >
      > > This changes the Name::hash_field and Symbol::flags to uint32_t as
      > > well, so that both Symbols and Strings consume one fewer word on 64-bit
      > > architectures now. More importantly the access to String::length is
      > > always a 32-bit field load now, even with 31-bit Smis (i.e. on ARM or
      > > on 64-bit with pointer compression), so the access should be faster.
      > >
      > > Bug: v8:7065, v8:8171
      > > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng
      > > Change-Id: I5523deb1f84ece91fa2fea775d50318bd1300493
      > > Reviewed-on: https://chromium-review.googlesource.com/1221288
      > > Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      > > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#55825}
      > 
      > Tbr: tebbi@chromium.org, yangguo@chromium.org, ishell@chromium.org
      > Bug: v8:7065, v8:8171
      > Change-Id: I3c7d0b00abb15fa98ab622f9ecd8602fc798cbc3
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng
      > Reviewed-on: https://chromium-review.googlesource.com/1221290
      > Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55836}
      
      TBR=ulan@chromium.org,yangguo@chromium.org,tebbi@chromium.org,ishell@chromium.org,bmeurer@chromium.org
      
      Change-Id: Ieaf3be31166abb02e37370ad846c38fa3d114693
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7065, v8:8171
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/1222306Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55837}
      bd69d64d
    • Benedikt Meurer's avatar
      Reland "[objects] Change String::length field to uint32_t." · df6157ae
      Benedikt Meurer authored
      This is a reland of 1f1eb625, the
      breakage on the GCStress bot seems to be unrelated (maybe flushed
      out by this change). We decided to reland to figure out whether it's
      a random flake or really triggered by this particular change.
      
      Original change's description:
      > [objects] Change String::length field to uint32_t.
      >
      > This changes the Name::hash_field and Symbol::flags to uint32_t as
      > well, so that both Symbols and Strings consume one fewer word on 64-bit
      > architectures now. More importantly the access to String::length is
      > always a 32-bit field load now, even with 31-bit Smis (i.e. on ARM or
      > on 64-bit with pointer compression), so the access should be faster.
      >
      > Bug: v8:7065, v8:8171
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng
      > Change-Id: I5523deb1f84ece91fa2fea775d50318bd1300493
      > Reviewed-on: https://chromium-review.googlesource.com/1221288
      > Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55825}
      
      Tbr: tebbi@chromium.org, yangguo@chromium.org, ishell@chromium.org
      Bug: v8:7065, v8:8171
      Change-Id: I3c7d0b00abb15fa98ab622f9ecd8602fc798cbc3
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/1221290
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55836}
      df6157ae
    • Leszek Swirski's avatar
      Revert "[objects] Change String::length field to uint32_t." · 4bbb7c4e
      Leszek Swirski authored
      This reverts commit 1f1eb625.
      
      Reason for revert: GC Stress failure (https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/21311) 
      
      Original change's description:
      > [objects] Change String::length field to uint32_t.
      > 
      > This changes the Name::hash_field and Symbol::flags to uint32_t as
      > well, so that both Symbols and Strings consume one fewer word on 64-bit
      > architectures now. More importantly the access to String::length is
      > always a 32-bit field load now, even with 31-bit Smis (i.e. on ARM or
      > on 64-bit with pointer compression), so the access should be faster.
      > 
      > Bug: v8:7065, v8:8171
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng
      > Change-Id: I5523deb1f84ece91fa2fea775d50318bd1300493
      > Reviewed-on: https://chromium-review.googlesource.com/1221288
      > Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55825}
      
      TBR=yangguo@chromium.org,tebbi@chromium.org,ishell@chromium.org,bmeurer@chromium.org
      
      Change-Id: I73f3200902f9d52e5664d48c938e37d9dfb7bce7
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7065, v8:8171
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/1221706Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55826}
      4bbb7c4e
    • Benedikt Meurer's avatar
      [objects] Change String::length field to uint32_t. · 1f1eb625
      Benedikt Meurer authored
      This changes the Name::hash_field and Symbol::flags to uint32_t as
      well, so that both Symbols and Strings consume one fewer word on 64-bit
      architectures now. More importantly the access to String::length is
      always a 32-bit field load now, even with 31-bit Smis (i.e. on ARM or
      on 64-bit with pointer compression), so the access should be faster.
      
      Bug: v8:7065, v8:8171
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng
      Change-Id: I5523deb1f84ece91fa2fea775d50318bd1300493
      Reviewed-on: https://chromium-review.googlesource.com/1221288
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55825}
      1f1eb625