Making span.h available within partition_alloc. [chromium/src : main]

7 views
Skip to first unread message

Arthur Sonzogni (Gerrit)

unread,
Jan 27, 2026, 9:49:09 AMJan 27
to Sergio Solano, chromium...@chromium.org, Kentaro Hara, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
Attention needed from Sergio Solano

Arthur Sonzogni added 13 comments

Patchset-level comments
File-level comment, Patchset 2 (Latest):
Arthur Sonzogni . resolved

Thanks Sergio!

File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/atomic_ref_count.h
Line 13, Patchset 2 (Latest):#include "partition_alloc/partition_alloc_base/containers/span.h"
Arthur Sonzogni . unresolved

Is this needed?

File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/base_export.h
Line 1, Patchset 2 (Latest):// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef BASE_BASE_EXPORT_H_
#define BASE_BASE_EXPORT_H_

#if defined(COMPONENT_BUILD)
#if defined(WIN32)

#if defined(BASE_IMPLEMENTATION)
#define BASE_EXPORT __declspec(dllexport)
#else
#define BASE_EXPORT __declspec(dllimport)
#endif // defined(BASE_IMPLEMENTATION)

#else // defined(WIN32)
#define BASE_EXPORT __attribute__((visibility("default")))
#endif

#else // defined(COMPONENT_BUILD)
#define BASE_EXPORT
#endif

#endif // BASE_BASE_EXPORT_H_
Arthur Sonzogni . unresolved

We should reuse:
```
PA_COMPONENT_EXPORT(PARTITION_ALLOC)
```
and #include #include "partition_alloc/partition_alloc_base/component_export.h"

File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/checked_iterators.h
Line 24, Patchset 2 (Latest):namespace base {
Arthur Sonzogni . unresolved

This should be `partition_alloc::internal::base`

Line 18, Patchset 2 (Latest):#include "base/check.h"
#include "base/compiler_specific.h"
#include "base/containers/span_forward_internal.h"
#include "base/memory/raw_ptr_exclusion.h"
Arthur Sonzogni . unresolved

We shouldn't depend on "base".

we can use:

  • `partition_alloc/partition_alloc_base/check.h`
  • `span_forward_internal.h` -> To be added.
  • `partition_alloc/pointers/raw_ptr_exclusion.h`
  • `partition_alloc/build_config.h`
File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span.h
Line 28, Patchset 2 (Latest):#include "base/check.h"
#include "base/compiler_specific.h"
#include "base/containers/checked_iterators.h"
#include "base/containers/span_forward_internal.h"
#include "base/numerics/integral_constant_like.h"
#include "base/numerics/safe_conversions.h"
#include "base/types/to_address.h"
Arthur Sonzogni . unresolved

Ditto: we can depend on "base". We can only depend on "partition_alloc", so we need to find alternatives to those files.

File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/dcheck_is_on.h
Line 1, Patchset 2 (Latest):// Copyright 2020 The Chromium Authors
Arthur Sonzogni . unresolved

This already exist as:
base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h

and `PA_CHECK` macro

File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/location.h
Line 1, Patchset 2 (Latest):// Copyright 2012 The Chromium Authors
Arthur Sonzogni . unresolved

Is this file needed somewhere? If not, we can revert adding it.

File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/macros/if.h
Line 1, Patchset 2 (Latest):// Copyright 2023 The Chromium Authors
Arthur Sonzogni . unresolved

I believe this file isn't necessary, right?

File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/macros/is_empty.h
Line 1, Patchset 2 (Latest):// Copyright 2023 The Chromium Authors
Arthur Sonzogni . unresolved

I believe this file isn't necessary, right?

File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/raw_ptr_exclusion.h
Line 1, Patchset 2 (Latest):// Copyright 2023 The Chromium Authors
Arthur Sonzogni . unresolved

No need to create this file, because it is already:
"partition_alloc/pointers/raw_ptr_exclusion.h"

File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/not_fatal_until.h
Line 1, Patchset 2 (Latest):// Copyright 2023 The Chromium Authors
Arthur Sonzogni . unresolved

I don't believe this file is used, so we can get rid of it?

File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/trace_event/base_tracing_forward.h
Line 1, Patchset 2 (Latest):// Copyright 2021 The Chromium Authors
Arthur Sonzogni . unresolved

If we remove `Location`, then this file isn't used anywhere, so it can be removed?

Open in Gerrit

Related details

Attention is currently required from:
  • Sergio Solano
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
Gerrit-Change-Number: 7517264
Gerrit-PatchSet: 2
Gerrit-Owner: Sergio Solano <sergio...@google.com>
Gerrit-CC: Arthur Sonzogni <arthurs...@chromium.org>
Gerrit-CC: Kentaro Hara <har...@chromium.org>
Gerrit-Attention: Sergio Solano <sergio...@google.com>
Gerrit-Comment-Date: Tue, 27 Jan 2026 14:48:56 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Sergio Solano (Gerrit)

unread,
Jan 28, 2026, 3:51:01 PMJan 28
to Arthur Sonzogni, chromium...@chromium.org, Kentaro Hara, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
Attention needed from Arthur Sonzogni

Sergio Solano added 12 comments

File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/atomic_ref_count.h
Line 13, Patchset 2:#include "partition_alloc/partition_alloc_base/containers/span.h"
Arthur Sonzogni . resolved

Is this needed?

Sergio Solano

Done

File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/base_export.h
Line 1, Patchset 2:// Copyright 2012 The Chromium Authors

// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef BASE_BASE_EXPORT_H_
#define BASE_BASE_EXPORT_H_

#if defined(COMPONENT_BUILD)
#if defined(WIN32)

#if defined(BASE_IMPLEMENTATION)
#define BASE_EXPORT __declspec(dllexport)
#else
#define BASE_EXPORT __declspec(dllimport)
#endif // defined(BASE_IMPLEMENTATION)

#else // defined(WIN32)
#define BASE_EXPORT __attribute__((visibility("default")))
#endif

#else // defined(COMPONENT_BUILD)
#define BASE_EXPORT
#endif

#endif // BASE_BASE_EXPORT_H_
Arthur Sonzogni . resolved

We should reuse:
```
PA_COMPONENT_EXPORT(PARTITION_ALLOC)
```
and #include #include "partition_alloc/partition_alloc_base/component_export.h"

Sergio Solano

I'm not sure if this is what you mean.

File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/checked_iterators.h
Line 24, Patchset 2:namespace base {
Arthur Sonzogni . resolved

This should be `partition_alloc::internal::base`

Sergio Solano

Done

Line 18, Patchset 2:#include "base/check.h"

#include "base/compiler_specific.h"
#include "base/containers/span_forward_internal.h"
#include "base/memory/raw_ptr_exclusion.h"
Arthur Sonzogni . resolved

We shouldn't depend on "base".

we can use:

  • `partition_alloc/partition_alloc_base/check.h`
  • `span_forward_internal.h` -> To be added.
  • `partition_alloc/pointers/raw_ptr_exclusion.h`
  • `partition_alloc/build_config.h`
Sergio Solano

Done

File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span.h
Line 28, Patchset 2:#include "base/check.h"

#include "base/compiler_specific.h"
#include "base/containers/checked_iterators.h"
#include "base/containers/span_forward_internal.h"
#include "base/numerics/integral_constant_like.h"
#include "base/numerics/safe_conversions.h"
#include "base/types/to_address.h"
Arthur Sonzogni . resolved

Ditto: we can depend on "base". We can only depend on "partition_alloc", so we need to find alternatives to those files.

Sergio Solano

Agree, I was just in a hurry to share the CL so that i could ask you about the -Wgcc-compat warning.

File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/dcheck_is_on.h
Line 1, Patchset 2:// Copyright 2020 The Chromium Authors
Arthur Sonzogni . resolved

This already exist as:
base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h

and `PA_CHECK` macro

Sergio Solano

Done

File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/location.h
Line 1, Patchset 2:// Copyright 2012 The Chromium Authors
Arthur Sonzogni . resolved

Is this file needed somewhere? If not, we can revert adding it.

Sergio Solano

Done

File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/macros/if.h
Line 1, Patchset 2:// Copyright 2023 The Chromium Authors
Arthur Sonzogni . resolved

I believe this file isn't necessary, right?

Sergio Solano

Done

File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/macros/is_empty.h
Line 1, Patchset 2:// Copyright 2023 The Chromium Authors
Arthur Sonzogni . resolved

I believe this file isn't necessary, right?

Sergio Solano

Done

File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/raw_ptr_exclusion.h
Line 1, Patchset 2:// Copyright 2023 The Chromium Authors
Arthur Sonzogni . resolved

No need to create this file, because it is already:
"partition_alloc/pointers/raw_ptr_exclusion.h"

Sergio Solano

Done

File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/not_fatal_until.h
Line 1, Patchset 2:// Copyright 2023 The Chromium Authors
Arthur Sonzogni . resolved

I don't believe this file is used, so we can get rid of it?

Sergio Solano

Done

File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/trace_event/base_tracing_forward.h
Line 1, Patchset 2:// Copyright 2021 The Chromium Authors
Arthur Sonzogni . resolved

If we remove `Location`, then this file isn't used anywhere, so it can be removed?

Sergio Solano

Done

Open in Gerrit

Related details

Attention is currently required from:
  • Arthur Sonzogni
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
    Gerrit-Change-Number: 7517264
    Gerrit-PatchSet: 5
    Gerrit-Owner: Sergio Solano <sergio...@google.com>
    Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
    Gerrit-CC: Kentaro Hara <har...@chromium.org>
    Gerrit-Attention: Arthur Sonzogni <arthurs...@chromium.org>
    Gerrit-Comment-Date: Wed, 28 Jan 2026 20:50:54 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Arthur Sonzogni <arthurs...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Arthur Sonzogni (Gerrit)

    unread,
    Jan 29, 2026, 8:53:33 AMJan 29
    to Sergio Solano, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
    Attention needed from Sergio Solano

    Arthur Sonzogni added 4 comments

    File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/checked_iterators.h
    Line 128, Patchset 6 (Latest): CHECK(current_ != start_);
    Arthur Sonzogni . unresolved

    `CHECK` => `PA_CHECK`

    This is because `CHECK` is from chromium, and `PA_CHECK` from partition_alloc.

    Line 91, Patchset 6 (Latest): DCHECK(other.start_ <= other.current_);
    Arthur Sonzogni . unresolved

    `DCHECK` => `PA_DCHECK`

    This is because `DCHECK` is from chromium, and `PA_DCHECK` from partition_alloc.

    Line 22, Patchset 6 (Latest):#include "partition_alloc/pointers/raw_ptr_exclusion.h"
    Arthur Sonzogni . unresolved

    We can't depend on `raw_ptr_exclusion.h` from `partition_alloc_base`.

    This is not required, as the clang pluging doesn't enforce `raw_ptr`.
    See:
    https://source.chromium.org/chromium/chromium/src/+/main:tools/clang/raw_ptr_plugin/RawPtrManualPathsToIgnore.cpp;l=29

    So maybe you can remove this include and the `RAW_PTR_EXCLUSION`?

    File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/macros/concat.h
    Line 1, Patchset 6 (Latest):// Copyright 2023 The Chromium Authors

    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.

    #ifndef BASE_MACROS_CONCAT_H_
    #define BASE_MACROS_CONCAT_H_

    // A macro that expands to the concatenation of its arguments. If the arguments
    // are themselves macros, they are first expanded (due to the indirection
    // through a second macro). This can be used to construct tokens.
    #define BASE_CONCAT(a, b) BASE_INTERNAL_CONCAT(a, b)

    // Implementation details: do not use directly.
    #define BASE_INTERNAL_CONCAT(a, b) a##b

    #endif // BASE_MACROS_CONCAT_H_
    Arthur Sonzogni . unresolved

    I don't see any usage. Maybe this should be removed?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Sergio Solano
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
      Gerrit-Change-Number: 7517264
      Gerrit-PatchSet: 6
      Gerrit-Owner: Sergio Solano <sergio...@google.com>
      Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
      Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
      Gerrit-CC: Kentaro Hara <har...@chromium.org>
      Gerrit-Attention: Sergio Solano <sergio...@google.com>
      Gerrit-Comment-Date: Thu, 29 Jan 2026 13:53:28 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Arthur Sonzogni (Gerrit)

      unread,
      Jan 29, 2026, 8:54:14 AMJan 29
      to Sergio Solano, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
      Attention needed from Sergio Solano

      Arthur Sonzogni added 1 comment

      Patchset-level comments
      File-level comment, Patchset 6 (Latest):
      Arthur Sonzogni . resolved

      I think we are very close!

      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Sergio Solano (Gerrit)

      unread,
      Jan 29, 2026, 1:06:16 PMJan 29
      to Chromium LUCI CQ, Arthur Sonzogni, chromium...@chromium.org, Kentaro Hara, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
      Attention needed from Arthur Sonzogni

      Sergio Solano added 4 comments

      File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/checked_iterators.h
      Line 128, Patchset 6: CHECK(current_ != start_);
      Arthur Sonzogni . resolved

      `CHECK` => `PA_CHECK`

      This is because `CHECK` is from chromium, and `PA_CHECK` from partition_alloc.

      Sergio Solano

      Done

      Line 91, Patchset 6: DCHECK(other.start_ <= other.current_);
      Arthur Sonzogni . resolved

      `DCHECK` => `PA_DCHECK`

      This is because `DCHECK` is from chromium, and `PA_DCHECK` from partition_alloc.

      Sergio Solano

      I missed updating this file. Done now.

      Line 22, Patchset 6:#include "partition_alloc/pointers/raw_ptr_exclusion.h"
      Arthur Sonzogni . resolved

      We can't depend on `raw_ptr_exclusion.h` from `partition_alloc_base`.

      This is not required, as the clang pluging doesn't enforce `raw_ptr`.
      See:
      https://source.chromium.org/chromium/chromium/src/+/main:tools/clang/raw_ptr_plugin/RawPtrManualPathsToIgnore.cpp;l=29

      So maybe you can remove this include and the `RAW_PTR_EXCLUSION`?

      Sergio Solano

      Is there a way i sould have known this? It's not clear to me:

      1. why we can't depend on `raw_ptr_exclusion.h` from `partition_alloc_base`. Does it has to do with cyclic dependencies?

      2. how did you know the clang pluging doesn't enforce `raw_ptr`? By experience or is there some checks I'm missing?

      File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/macros/concat.h
      Line 1, Patchset 6:// Copyright 2023 The Chromium Authors

      // Use of this source code is governed by a BSD-style license that can be
      // found in the LICENSE file.

      #ifndef BASE_MACROS_CONCAT_H_
      #define BASE_MACROS_CONCAT_H_

      // A macro that expands to the concatenation of its arguments. If the arguments
      // are themselves macros, they are first expanded (due to the indirection
      // through a second macro). This can be used to construct tokens.
      #define BASE_CONCAT(a, b) BASE_INTERNAL_CONCAT(a, b)

      // Implementation details: do not use directly.
      #define BASE_INTERNAL_CONCAT(a, b) a##b

      #endif // BASE_MACROS_CONCAT_H_
      Arthur Sonzogni . resolved

      I don't see any usage. Maybe this should be removed?

      Sergio Solano

      Done

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Arthur Sonzogni
      Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement is not satisfiedCode-Review
        • requirement is not satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
        Gerrit-Change-Number: 7517264
        Gerrit-PatchSet: 8
        Gerrit-Owner: Sergio Solano <sergio...@google.com>
        Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
        Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
        Gerrit-CC: Kentaro Hara <har...@chromium.org>
        Gerrit-Attention: Arthur Sonzogni <arthurs...@chromium.org>
        Gerrit-Comment-Date: Thu, 29 Jan 2026 18:06:07 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Arthur Sonzogni <arthurs...@chromium.org>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Arthur Sonzogni (Gerrit)

        unread,
        Jan 30, 2026, 5:15:05 AMJan 30
        to Sergio Solano, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
        Attention needed from Sergio Solano

        Arthur Sonzogni added 1 comment

        File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span.h
        Line 708, Patchset 8 (Latest): // Implicit conversion to fixed-extent `std::span<>`. (The fixed-extent
        // `std::span` range constructor is explicit.)
        // NOLINTNEXTLINE(google-explicit-constructor)
        operator std::span<element_type, extent>() const {
        return std::span<element_type, extent>(*this);
        }
        // NOLINTNEXTLINE(google-explicit-constructor)
        operator std::span<const element_type, extent>() const
        requires(!std::is_const_v<element_type>)
        {
        return std::span<const element_type, extent>(*this);
        }
        Arthur Sonzogni . unresolved

        I don't think we will need to support `std::span` conversion for now. Maybe this can be removed?

        If we ever need it, we can include it later and update the PRESUBMIT.

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Sergio Solano
        Submit Requirements:
          • requirement satisfiedCode-Coverage
          • requirement is not satisfiedCode-Owners
          • requirement is not satisfiedCode-Review
          • requirement is not satisfiedNo-Unresolved-Comments
          • requirement is not satisfiedReview-Enforcement
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: comment
          Gerrit-Project: chromium/src
          Gerrit-Branch: main
          Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
          Gerrit-Change-Number: 7517264
          Gerrit-PatchSet: 8
          Gerrit-Owner: Sergio Solano <sergio...@google.com>
          Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
          Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
          Gerrit-CC: Kentaro Hara <har...@chromium.org>
          Gerrit-Attention: Sergio Solano <sergio...@google.com>
          Gerrit-Comment-Date: Fri, 30 Jan 2026 10:14:52 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: No
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          Arthur Sonzogni (Gerrit)

          unread,
          Jan 30, 2026, 5:38:00 AMJan 30
          to Sergio Solano, Chromium LUCI CQ, Arthur Sonzogni, chromium...@chromium.org, Kentaro Hara, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
          Attention needed from Sergio Solano

          Arthur Sonzogni added 1 comment

          File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/checked_iterators.h
          Line 22, Patchset 6:#include "partition_alloc/pointers/raw_ptr_exclusion.h"
          Arthur Sonzogni . unresolved

          We can't depend on `raw_ptr_exclusion.h` from `partition_alloc_base`.

          This is not required, as the clang pluging doesn't enforce `raw_ptr`.
          See:
          https://source.chromium.org/chromium/chromium/src/+/main:tools/clang/raw_ptr_plugin/RawPtrManualPathsToIgnore.cpp;l=29

          So maybe you can remove this include and the `RAW_PTR_EXCLUSION`?

          Sergio Solano

          Is there a way i sould have known this? It's not clear to me:

          1. why we can't depend on `raw_ptr_exclusion.h` from `partition_alloc_base`. Does it has to do with cyclic dependencies?

          2. how did you know the clang pluging doesn't enforce `raw_ptr`? By experience or is there some checks I'm missing?

          Arthur Sonzogni

          I don't think you could have known. I also spent 10 minutes to think about that before suggesting this solution.

          This file is part of "raw_ptr" target. The CQ failure says it isn't a dependency of "allocator_base".

          We see "raw_ptr" depends on "allocator_base":
          ```
          gn path ./out/linux-rel base/allocator/partition_allocator/src/partition_alloc:raw_ptr base/allocator/partition_allocator/src/partition_alloc:allocator_base
          ```
          ```
          //base/allocator/partition_allocator/src/partition_alloc:raw_ptr --[public]-->
          //base/allocator/partition_allocator/src/partition_alloc:partition_alloc --[public]-->
          //base/allocator/partition_allocator/src/partition_alloc:allocator_base
          ```

          So, it would be a circular dependency for "allocator_base" to depend on "raw_ptr".

          We could have added a subtarget for just this file. It would be a dependency of both "raw_ptr" and "allocator_base", but this is a bit ugly.


          Technically, "allocator_base" is used to implement "raw_ptr", so we shouldn't really depend on `raw_ptr_exclusion". So I checked how other code in `allocator_base` deal with it. Then I guessed the clang plugin must have an exclusion for avoid this [issue](https://source.chromium.org/chromium/chromium/src/+/main:tools/clang/raw_ptr_plugin/RawPtrManualPathsToIgnore.cpp;l=29)

          Open in Gerrit

          Related details

          Attention is currently required from:
          • Sergio Solano
          Submit Requirements:
          • requirement satisfiedCode-Coverage
          • requirement is not satisfiedCode-Owners
          • requirement is not satisfiedCode-Review
          • requirement is not satisfiedNo-Unresolved-Comments
          • requirement is not satisfiedReview-Enforcement
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: comment
          Gerrit-Project: chromium/src
          Gerrit-Branch: main
          Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
          Gerrit-Change-Number: 7517264
          Gerrit-PatchSet: 8
          Gerrit-Owner: Sergio Solano <sergio...@google.com>
          Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
          Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
          Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
          Gerrit-CC: Kentaro Hara <har...@chromium.org>
          Gerrit-Attention: Sergio Solano <sergio...@google.com>
          Gerrit-Comment-Date: Fri, 30 Jan 2026 10:37:43 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: No
          Comment-In-Reply-To: Sergio Solano <sergio...@google.com>
          Comment-In-Reply-To: Arthur Sonzogni <arthurs...@chromium.org>
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          Sergio Solano (Gerrit)

          unread,
          Feb 6, 2026, 12:57:49 PMFeb 6
          to AyeAye, Arthur Sonzogni, Chromium LUCI CQ, Arthur Sonzogni, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
          Attention needed from Arthur Sonzogni, Arthur Sonzogni and Sergio Solano

          Sergio Solano voted and added 3 comments

          Votes added by Sergio Solano

          Commit-Queue+1

          3 comments

          Patchset-level comments
          File-level comment, Patchset 8:
          Sergio Solano . resolved

          I think I'm even closer to making it. What happens with ERROR A banned pattern was used. `absl::Span and std::span are banned.`? Is there a way to shutdown the error?

          File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/checked_iterators.h
          Line 22, Patchset 6:#include "partition_alloc/pointers/raw_ptr_exclusion.h"
          Arthur Sonzogni . resolved

          We can't depend on `raw_ptr_exclusion.h` from `partition_alloc_base`.

          This is not required, as the clang pluging doesn't enforce `raw_ptr`.
          See:
          https://source.chromium.org/chromium/chromium/src/+/main:tools/clang/raw_ptr_plugin/RawPtrManualPathsToIgnore.cpp;l=29

          So maybe you can remove this include and the `RAW_PTR_EXCLUSION`?

          Sergio Solano

          Is there a way i sould have known this? It's not clear to me:

          1. why we can't depend on `raw_ptr_exclusion.h` from `partition_alloc_base`. Does it has to do with cyclic dependencies?

          2. how did you know the clang pluging doesn't enforce `raw_ptr`? By experience or is there some checks I'm missing?

          Arthur Sonzogni

          I don't think you could have known. I also spent 10 minutes to think about that before suggesting this solution.

          This file is part of "raw_ptr" target. The CQ failure says it isn't a dependency of "allocator_base".

          We see "raw_ptr" depends on "allocator_base":
          ```
          gn path ./out/linux-rel base/allocator/partition_allocator/src/partition_alloc:raw_ptr base/allocator/partition_allocator/src/partition_alloc:allocator_base
          ```
          ```
          //base/allocator/partition_allocator/src/partition_alloc:raw_ptr --[public]-->
          //base/allocator/partition_allocator/src/partition_alloc:partition_alloc --[public]-->
          //base/allocator/partition_allocator/src/partition_alloc:allocator_base
          ```

          So, it would be a circular dependency for "allocator_base" to depend on "raw_ptr".

          We could have added a subtarget for just this file. It would be a dependency of both "raw_ptr" and "allocator_base", but this is a bit ugly.


          Technically, "allocator_base" is used to implement "raw_ptr", so we shouldn't really depend on `raw_ptr_exclusion". So I checked how other code in `allocator_base` deal with it. Then I guessed the clang plugin must have an exclusion for avoid this [issue](https://source.chromium.org/chromium/chromium/src/+/main:tools/clang/raw_ptr_plugin/RawPtrManualPathsToIgnore.cpp;l=29)

          Sergio Solano

          Done

          File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span.h
          Line 708, Patchset 8: // Implicit conversion to fixed-extent `std::span<>`. (The fixed-extent

          // `std::span` range constructor is explicit.)
          // NOLINTNEXTLINE(google-explicit-constructor)
          operator std::span<element_type, extent>() const {
          return std::span<element_type, extent>(*this);
          }
          // NOLINTNEXTLINE(google-explicit-constructor)
          operator std::span<const element_type, extent>() const
          requires(!std::is_const_v<element_type>)
          {
          return std::span<const element_type, extent>(*this);
          }
          Arthur Sonzogni . resolved

          I don't think we will need to support `std::span` conversion for now. Maybe this can be removed?

          If we ever need it, we can include it later and update the PRESUBMIT.

          Sergio Solano

          Done

          Open in Gerrit

          Related details

          Attention is currently required from:
          • Arthur Sonzogni
          • Arthur Sonzogni
          • Sergio Solano
          Submit Requirements:
            • requirement satisfiedCode-Coverage
            • requirement is not satisfiedCode-Owners
            • requirement is not satisfiedCode-Review
            • requirement is not satisfiedReview-Enforcement
            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
            Gerrit-MessageType: comment
            Gerrit-Project: chromium/src
            Gerrit-Branch: main
            Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
            Gerrit-Change-Number: 7517264
            Gerrit-PatchSet: 15
            Gerrit-Owner: Sergio Solano <sergio...@google.com>
            Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
            Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
            Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
            Gerrit-CC: Kentaro Hara <har...@chromium.org>
            Gerrit-Attention: Arthur Sonzogni <arthurs...@chromium.org>
            Gerrit-Attention: Sergio Solano <sergio...@google.com>
            Gerrit-Attention: Arthur Sonzogni <arthurs...@google.com>
            Gerrit-Comment-Date: Fri, 06 Feb 2026 17:57:38 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: Yes
            Comment-In-Reply-To: Sergio Solano <sergio...@google.com>
            Comment-In-Reply-To: Arthur Sonzogni <arthurs...@chromium.org>
            Comment-In-Reply-To: Arthur Sonzogni <arthurs...@google.com>
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Arthur Sonzogni (Gerrit)

            unread,
            Feb 11, 2026, 4:14:33 AMFeb 11
            to Sergio Solano, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
            Attention needed from Arthur Sonzogni and Sergio Solano

            Arthur Sonzogni added 8 comments

            Patchset-level comments
            File-level comment, Patchset 15 (Latest):
            Arthur Sonzogni . resolved

            There is a lot of includes with partition_alloc equivalent.

            Commit Message
            Line 9, Patchset 15 (Latest):Currently span.h is only copied into partition_alloc, further adjustments are needed for it to compile.
            Arthur Sonzogni . unresolved

            Could you please format the commit message to fit columns? (Click the format button)

            Line 10, Patchset 15 (Latest):
            Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
            Arthur Sonzogni . unresolved

            Add:
            ```
            Design doc: go/partition-alloc-spanification
            Bug: 481768474
            ```

            File base/allocator/partition_allocator/src/partition_alloc/BUILD.gn
            Line 623, Patchset 15 (Latest): "partition_alloc_base/pa_base_export.h",
            Arthur Sonzogni . unresolved

            ```
            PA_COMPONENT_EXPORT(PARTITION_ALLOC_BASE)
            ```
            from
            ```
            #include "partition_alloc/partition_alloc_base/component_export.h"
            ```

            Line 628, Patchset 15 (Latest): "partition_alloc_base/check_op.cc",
            "partition_alloc_base/check_op.h",
            Arthur Sonzogni . unresolved

            ```
            #include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
            ```

            Line 642, Patchset 15 (Latest): "partition_alloc_base/dcheck_is_on.h",
            Arthur Sonzogni . unresolved

            ```
            #include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
            ```

            Line 654, Patchset 15 (Latest): "partition_alloc_base/macros/concat.h",
            Arthur Sonzogni . unresolved

            `PA_CONCAT` from:
            ```
            #include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
            ```

            Line 689, Patchset 15 (Latest): "partition_alloc_base/strings/string_view_util.h",
            Arthur Sonzogni . unresolved

            I remember we discussed it. It can be removed.

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Arthur Sonzogni
            • Sergio Solano
            Submit Requirements:
              • requirement satisfiedCode-Coverage
              • requirement is not satisfiedCode-Owners
              • requirement is not satisfiedCode-Review
              • requirement is not satisfiedNo-Unresolved-Comments
              • requirement is not satisfiedReview-Enforcement
              Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
              Gerrit-MessageType: comment
              Gerrit-Project: chromium/src
              Gerrit-Branch: main
              Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
              Gerrit-Change-Number: 7517264
              Gerrit-PatchSet: 15
              Gerrit-Owner: Sergio Solano <sergio...@google.com>
              Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
              Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
              Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
              Gerrit-CC: Kentaro Hara <har...@chromium.org>
              Gerrit-Attention: Sergio Solano <sergio...@google.com>
              Gerrit-Attention: Arthur Sonzogni <arthurs...@google.com>
              Gerrit-Comment-Date: Wed, 11 Feb 2026 09:14:22 +0000
              Gerrit-HasComments: Yes
              Gerrit-Has-Labels: No
              satisfied_requirement
              unsatisfied_requirement
              open
              diffy

              Sergio Solano (Gerrit)

              unread,
              Feb 13, 2026, 10:01:58 AMFeb 13
              to AyeAye, Arthur Sonzogni, Chromium LUCI CQ, Arthur Sonzogni, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
              Attention needed from Arthur Sonzogni and Arthur Sonzogni

              Sergio Solano added 7 comments

              Commit Message
              Line 9, Patchset 15:Currently span.h is only copied into partition_alloc, further adjustments are needed for it to compile.
              Arthur Sonzogni . resolved

              Could you please format the commit message to fit columns? (Click the format button)

              Sergio Solano

              Done

              Line 10, Patchset 15:
              Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
              Arthur Sonzogni . resolved

              Add:
              ```
              Design doc: go/partition-alloc-spanification
              Bug: 481768474
              ```

              Sergio Solano

              Done

              File base/allocator/partition_allocator/src/partition_alloc/BUILD.gn
              Line 623, Patchset 15: "partition_alloc_base/pa_base_export.h",
              Arthur Sonzogni . resolved

              ```
              PA_COMPONENT_EXPORT(PARTITION_ALLOC_BASE)
              ```
              from
              ```
              #include "partition_alloc/partition_alloc_base/component_export.h"
              ```

              Sergio Solano

              Done

              Line 628, Patchset 15: "partition_alloc_base/check_op.cc",
              "partition_alloc_base/check_op.h",
              Arthur Sonzogni . resolved

              ```
              #include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
              ```

              Sergio Solano

              Done

              Line 642, Patchset 15: "partition_alloc_base/dcheck_is_on.h",
              Arthur Sonzogni . resolved

              ```
              #include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
              ```

              Sergio Solano

              Done

              Line 654, Patchset 15: "partition_alloc_base/macros/concat.h",
              Arthur Sonzogni . resolved

              `PA_CONCAT` from:
              ```
              #include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
              ```

              Sergio Solano

              Done

              Line 689, Patchset 15: "partition_alloc_base/strings/string_view_util.h",
              Arthur Sonzogni . resolved

              I remember we discussed it. It can be removed.

              Sergio Solano

              Done

              Open in Gerrit

              Related details

              Attention is currently required from:
              • Arthur Sonzogni
              • Arthur Sonzogni
              Submit Requirements:
                • requirement satisfiedCode-Coverage
                • requirement is not satisfiedCode-Owners
                • requirement is not satisfiedCode-Review
                • requirement is not satisfiedReview-Enforcement
                Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                Gerrit-MessageType: comment
                Gerrit-Project: chromium/src
                Gerrit-Branch: main
                Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                Gerrit-Change-Number: 7517264
                Gerrit-PatchSet: 19
                Gerrit-Owner: Sergio Solano <sergio...@google.com>
                Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                Gerrit-CC: Kentaro Hara <har...@chromium.org>
                Gerrit-Attention: Arthur Sonzogni <arthurs...@chromium.org>
                Gerrit-Attention: Arthur Sonzogni <arthurs...@google.com>
                Gerrit-Comment-Date: Fri, 13 Feb 2026 15:01:45 +0000
                Gerrit-HasComments: Yes
                Gerrit-Has-Labels: No
                Comment-In-Reply-To: Arthur Sonzogni <arthurs...@chromium.org>
                satisfied_requirement
                unsatisfied_requirement
                open
                diffy

                Arthur Sonzogni (Gerrit)

                unread,
                Feb 13, 2026, 10:55:02 AMFeb 13
                to Sergio Solano, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                Attention needed from Arthur Sonzogni and Sergio Solano

                Arthur Sonzogni added 14 comments

                File base/allocator/partition_allocator/src/partition_alloc/BUILD.gn
                Line 632, Patchset 19 (Latest): "partition_alloc_base/containers/adapters.h",
                Arthur Sonzogni . unresolved

                Let's throw away the test "SpanTest, ReverseIterator" and get rid of this dependency?

                Line 653, Patchset 19 (Latest): "partition_alloc_base/macros/is_empty.h",
                Arthur Sonzogni . unresolved

                See my other comments. This can probably be removed.

                Line 661, Patchset 19 (Latest): "partition_alloc_base/not_fatal_until.h",
                Arthur Sonzogni . unresolved

                Unused? You can remove it.

                Line 663, Patchset 19 (Latest): "partition_alloc_base/numerics/basic_ops_impl.h",
                Arthur Sonzogni . unresolved

                If you remove "byte_conversions", you can probably remove this one too.

                Line 664, Patchset 19 (Latest): "partition_alloc_base/numerics/byte_conversions.h",
                Arthur Sonzogni . unresolved

                I don't see any usage. I am guessing you reimplementing the missing function with fro span_unittest.cc from "Example_UnsafeBuffersPatterns" using a reinterpret_cast.

                This was a good call. Now, can you not add this unused dependency?

                Line 689, Patchset 19 (Latest): "partition_alloc_base/strings/to_string.h",
                Arthur Sonzogni . unresolved

                See other comments. This can probably be removed.

                Line 701, Patchset 19 (Latest): "partition_alloc_base/types/is_arc_pointer.h",
                Arthur Sonzogni . unresolved

                Why is this added?

                Line 704, Patchset 19 (Latest): "partition_alloc_base/types/supports_ostream_operator.h",
                Arthur Sonzogni . unresolved

                Unsure about this one. It might be needed, but I can find reference to where (<<) would be used.

                Could you print the error if you stop including it from span_unittest.cc?

                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h
                Line 517, Patchset 19 (Latest):#if __has_cpp_attribute(gnu::pure)
                #define PURE_FUNCTION [[gnu::pure]]
                #else
                #define PURE_FUNCTION
                #endif
                Arthur Sonzogni . unresolved

                Unused? => Remove?

                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span.h
                Line 37, Patchset 19 (Latest):#include "partition_alloc/partition_alloc_base/types/supports_to_string.h"
                Arthur Sonzogni . unresolved

                This wasn't part of the original span.h. Do you really need it?

                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_unittest.cc
                Line 26, Patchset 19 (Latest):#include "partition_alloc/partition_alloc_base/strings/to_string.h"
                Arthur Sonzogni . unresolved

                I don't see any usage. Remove?

                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/macros/is_empty.h
                Line 9, Patchset 19 (Latest):#define PARTITION_ALLOC_PARTITION_ALLOC_BASE_IS_EMPTY(...) \
                Arthur Sonzogni . unresolved

                Where is this used? Consider removing this file?

                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/not_fatal_until.h
                Line 1, Patchset 19 (Latest):// Copyright 2023 The Chromium Authors
                Arthur Sonzogni . unresolved

                See my other comment. This can probably be removed.

                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/to_string.h
                Line 1, Patchset 19 (Latest):// Copyright 2023 The Chromium Authors
                Arthur Sonzogni . unresolved

                See other comments. This can probably be removed.

                Open in Gerrit

                Related details

                Attention is currently required from:
                • Arthur Sonzogni
                • Sergio Solano
                Submit Requirements:
                  • requirement satisfiedCode-Coverage
                  • requirement is not satisfiedCode-Owners
                  • requirement is not satisfiedCode-Review
                  • requirement is not satisfiedNo-Unresolved-Comments
                  • requirement is not satisfiedReview-Enforcement
                  Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                  Gerrit-MessageType: comment
                  Gerrit-Project: chromium/src
                  Gerrit-Branch: main
                  Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                  Gerrit-Change-Number: 7517264
                  Gerrit-PatchSet: 19
                  Gerrit-Owner: Sergio Solano <sergio...@google.com>
                  Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                  Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                  Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                  Gerrit-CC: Kentaro Hara <har...@chromium.org>
                  Gerrit-Attention: Sergio Solano <sergio...@google.com>
                  Gerrit-Attention: Arthur Sonzogni <arthurs...@google.com>
                  Gerrit-Comment-Date: Fri, 13 Feb 2026 15:54:50 +0000
                  Gerrit-HasComments: Yes
                  Gerrit-Has-Labels: No
                  satisfied_requirement
                  unsatisfied_requirement
                  open
                  diffy

                  Sergio Solano (Gerrit)

                  unread,
                  Feb 13, 2026, 3:09:17 PMFeb 13
                  to AyeAye, Arthur Sonzogni, Chromium LUCI CQ, Arthur Sonzogni, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                  Attention needed from Arthur Sonzogni, Arthur Sonzogni and Sergio Solano

                  Sergio Solano voted and added 15 comments

                  Votes added by Sergio Solano

                  Commit-Queue+1

                  15 comments

                  Patchset-level comments
                  File-level comment, Patchset 20:
                  Sergio Solano . resolved

                  Hi, Arthur. Changes made.

                  File base/allocator/partition_allocator/src/partition_alloc/BUILD.gn
                  Line 632, Patchset 19: "partition_alloc_base/containers/adapters.h",
                  Arthur Sonzogni . resolved

                  Let's throw away the test "SpanTest, ReverseIterator" and get rid of this dependency?

                  Sergio Solano

                  Done

                  Line 653, Patchset 19: "partition_alloc_base/macros/is_empty.h",
                  Arthur Sonzogni . resolved

                  See my other comments. This can probably be removed.

                  Sergio Solano

                  Done

                  Line 661, Patchset 19: "partition_alloc_base/not_fatal_until.h",
                  Arthur Sonzogni . resolved

                  Unused? You can remove it.

                  Sergio Solano

                  Done

                  Line 663, Patchset 19: "partition_alloc_base/numerics/basic_ops_impl.h",
                  Arthur Sonzogni . resolved

                  If you remove "byte_conversions", you can probably remove this one too.

                  Sergio Solano

                  Done

                  Line 664, Patchset 19: "partition_alloc_base/numerics/byte_conversions.h",
                  Arthur Sonzogni . resolved

                  I don't see any usage. I am guessing you reimplementing the missing function with fro span_unittest.cc from "Example_UnsafeBuffersPatterns" using a reinterpret_cast.

                  This was a good call. Now, can you not add this unused dependency?

                  Sergio Solano

                  Done

                  Line 689, Patchset 19: "partition_alloc_base/strings/to_string.h",
                  Arthur Sonzogni . resolved

                  See other comments. This can probably be removed.

                  Sergio Solano

                  Done

                  Line 701, Patchset 19: "partition_alloc_base/types/is_arc_pointer.h",
                  Arthur Sonzogni . resolved

                  Why is this added?

                  Sergio Solano

                  It was a dependency of check_op.h, gone now.

                  Line 704, Patchset 19: "partition_alloc_base/types/supports_ostream_operator.h",
                  Arthur Sonzogni . resolved

                  Unsure about this one. It might be needed, but I can find reference to where (<<) would be used.

                  Could you print the error if you stop including it from span_unittest.cc?

                  Sergio Solano

                  No error.

                  File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h
                  Line 517, Patchset 19:#if __has_cpp_attribute(gnu::pure)

                  #define PURE_FUNCTION [[gnu::pure]]
                  #else
                  #define PURE_FUNCTION
                  #endif
                  Arthur Sonzogni . resolved

                  Unused? => Remove?

                  Sergio Solano

                  Yes. Do you have a tool that identifies these Unused?

                  File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span.h
                  Line 37, Patchset 19:#include "partition_alloc/partition_alloc_base/types/supports_to_string.h"
                  Arthur Sonzogni . resolved

                  This wasn't part of the original span.h. Do you really need it?

                  Sergio Solano

                  Done

                  File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_unittest.cc
                  Line 26, Patchset 19:#include "partition_alloc/partition_alloc_base/strings/to_string.h"
                  Arthur Sonzogni . resolved

                  I don't see any usage. Remove?

                  Sergio Solano

                  Done

                  File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/macros/is_empty.h
                  Line 9, Patchset 19:#define PARTITION_ALLOC_PARTITION_ALLOC_BASE_IS_EMPTY(...) \
                  Arthur Sonzogni . resolved

                  Where is this used? Consider removing this file?

                  Sergio Solano

                  Done

                  File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/not_fatal_until.h
                  Line 1, Patchset 19:// Copyright 2023 The Chromium Authors
                  Arthur Sonzogni . resolved

                  See my other comment. This can probably be removed.

                  Sergio Solano

                  Done

                  File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/to_string.h
                  Line 1, Patchset 19:// Copyright 2023 The Chromium Authors
                  Arthur Sonzogni . resolved

                  See other comments. This can probably be removed.

                  Sergio Solano

                  Done

                  Open in Gerrit

                  Related details

                  Attention is currently required from:
                  • Arthur Sonzogni
                  • Arthur Sonzogni
                  • Sergio Solano
                  Submit Requirements:
                    • requirement satisfiedCode-Coverage
                    • requirement is not satisfiedCode-Owners
                    • requirement is not satisfiedCode-Review
                    • requirement is not satisfiedReview-Enforcement
                    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                    Gerrit-MessageType: comment
                    Gerrit-Project: chromium/src
                    Gerrit-Branch: main
                    Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                    Gerrit-Change-Number: 7517264
                    Gerrit-PatchSet: 21
                    Gerrit-Owner: Sergio Solano <sergio...@google.com>
                    Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                    Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                    Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                    Gerrit-CC: Kentaro Hara <har...@chromium.org>
                    Gerrit-Attention: Arthur Sonzogni <arthurs...@chromium.org>
                    Gerrit-Attention: Sergio Solano <sergio...@google.com>
                    Gerrit-Attention: Arthur Sonzogni <arthurs...@google.com>
                    Gerrit-Comment-Date: Fri, 13 Feb 2026 20:09:10 +0000
                    Gerrit-HasComments: Yes
                    Gerrit-Has-Labels: Yes
                    Comment-In-Reply-To: Arthur Sonzogni <arthurs...@chromium.org>
                    satisfied_requirement
                    unsatisfied_requirement
                    open
                    diffy

                    Arthur Sonzogni (Gerrit)

                    unread,
                    Feb 16, 2026, 1:02:45 PMFeb 16
                    to Sergio Solano, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                    Attention needed from Arthur Sonzogni and Sergio Solano

                    Arthur Sonzogni added 7 comments

                    Patchset-level comments
                    File-level comment, Patchset 21 (Latest):
                    Arthur Sonzogni . resolved

                    Thanks!

                    File base/allocator/partition_allocator/src/partition_alloc/BUILD.gn
                    Line 704, Patchset 19: "partition_alloc_base/types/supports_ostream_operator.h",
                    Arthur Sonzogni . resolved

                    Unsure about this one. It might be needed, but I can find reference to where (<<) would be used.

                    Could you print the error if you stop including it from span_unittest.cc?

                    Sergio Solano

                    No error.

                    Arthur Sonzogni

                    If there are no errors. Then maybe it can be removd?

                    File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h
                    Line 512, Patchset 21 (Latest):// #define PA_ENABLE_IF_ATTR(cond, msg) __attribute__((enable_if(cond, msg)))
                    Arthur Sonzogni . unresolved

                    Should you remove the "//" to enable this?

                    File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span.h
                    Line 286, Patchset 21 (Latest):namespace partition_alloc::internal::base {
                    Arthur Sonzogni . unresolved

                    What do you think about replacing:
                    ```
                    partition_alloc::internal::base
                    ```
                    into
                    ```
                    partition_alloc::base
                    ```

                    Even if this is expected to be used only from inside partition_alloc, this would avoid having to update the rewritter to emit the "internal" when adding code from within "partition_alloc" namespace instead of "partition_alloc::internal".

                    Note: this is only for the "span". The other files added can stay in internal.

                    Line 31, Patchset 21 (Latest):#include <span>
                    Arthur Sonzogni . unresolved

                    I think we want to remove <span> for now to fix the PRESUBMIT. This is only used to convert a `std::span<T,N>` into a `base::span<T,N>`, but we don't use std::span anyway.

                    File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/integral_constant_like.h
                    Line 15, Patchset 21 (Latest):concept IntegralConstantLike =
                    std::is_integral_v<decltype(T::value)> &&
                    !std::is_same_v<bool, std::remove_const_t<decltype(T::value)>> &&
                    std::convertible_to<T, decltype(T::value)> &&
                    std::equality_comparable_with<T, decltype(T::value)> &&
                    std::bool_constant<T() == T::value>::value &&
                    std::bool_constant<static_cast<decltype(T::value)>(T()) == T::value>::value;
                    Arthur Sonzogni . unresolved

                    This is used only once. Maybe it can be inlined in the span.h file?

                    File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_unittest.cc
                    Line 6465, Patchset 21 (Latest):// Test that base::span can be used with a simple array.
                    Arthur Sonzogni . unresolved

                    I guess this file isn't necessary anymore, because you now have span_unittest ?

                    Open in Gerrit

                    Related details

                    Attention is currently required from:
                    • Arthur Sonzogni
                    • Sergio Solano
                    Submit Requirements:
                      • requirement satisfiedCode-Coverage
                      • requirement is not satisfiedCode-Owners
                      • requirement is not satisfiedCode-Review
                      • requirement is not satisfiedNo-Unresolved-Comments
                      • requirement is not satisfiedReview-Enforcement
                      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                      Gerrit-MessageType: comment
                      Gerrit-Project: chromium/src
                      Gerrit-Branch: main
                      Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                      Gerrit-Change-Number: 7517264
                      Gerrit-PatchSet: 21
                      Gerrit-Owner: Sergio Solano <sergio...@google.com>
                      Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                      Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                      Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                      Gerrit-CC: Kentaro Hara <har...@chromium.org>
                      Gerrit-Attention: Sergio Solano <sergio...@google.com>
                      Gerrit-Attention: Arthur Sonzogni <arthurs...@google.com>
                      Gerrit-Comment-Date: Mon, 16 Feb 2026 18:02:31 +0000
                      Gerrit-HasComments: Yes
                      Gerrit-Has-Labels: No
                      satisfied_requirement
                      unsatisfied_requirement
                      open
                      diffy

                      Sergio Solano (Gerrit)

                      unread,
                      Feb 17, 2026, 9:27:06 AMFeb 17
                      to AyeAye, Arthur Sonzogni, Chromium LUCI CQ, Arthur Sonzogni, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                      Attention needed from Arthur Sonzogni and Arthur Sonzogni

                      Sergio Solano added 8 comments

                      Patchset-level comments
                      File-level comment, Patchset 22 (Latest):
                      Sergio Solano . resolved

                      Hi, Arthur, I've made the changes and uploaded my patchset but until now i realize you said that removing <span> would fix the PRESUBMIT. I uploaded my CL with bypass-hooks, I hope that is still accepted.

                      File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h
                      Line 512, Patchset 21:// #define PA_ENABLE_IF_ATTR(cond, msg) __attribute__((enable_if(cond, msg)))
                      Arthur Sonzogni . resolved

                      Should you remove the "//" to enable this?

                      Sergio Solano

                      that throws error: ```In file included from ../../base/allocator/partition_allocator/src/partition_alloc/partition_alloc_unittest.cc:37: │
                      │ ../../base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span.h:1676:3: error: 'enable_if' attribute cannot be │
                      │ applied to a statement │
                      │ 1676 | PA_ENABLE_IF_ATTR(str[Extent - 1u] == CharT{0}, │
                      │ | ^ │
                      │ 1677 | "requires string literal as input"); │
                      │ | ~ │
                      │ ../../base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h:512:53: note: expanded from macro │
                      │ 'PA_ENABLE_IF_ATTR' │
                      │ 512 | #define PA_ENABLE_IF_ATTR(cond, msg) __attribute__((enable_if(cond, msg))) │
                      │ | ^ │
                      │ 4 errors generated. ```

                      I have got it to work with changing some functions like: ```

                      • const CharT (&str PA_LIFETIME_BOUND)[Extent]) {
                      • PA_ENABLE_IF_ATTR(str[Extent - 1u] == CharT{0},
                      • "requires string literal as input");
                      • + const CharT (&str PA_LIFETIME_BOUND)[Extent])
                      • + PA_ENABLE_IF_ATTR(str[Extent - 1u] == CharT{0},
                      • + "requires string literal as input") {```

                      I think it's equivalent but more verbose, is that acceptable?

                      File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span.h
                      Line 286, Patchset 21:namespace partition_alloc::internal::base {
                      Arthur Sonzogni . resolved

                      What do you think about replacing:
                      ```
                      partition_alloc::internal::base
                      ```
                      into
                      ```
                      partition_alloc::base
                      ```

                      Even if this is expected to be used only from inside partition_alloc, this would avoid having to update the rewritter to emit the "internal" when adding code from within "partition_alloc" namespace instead of "partition_alloc::internal".

                      Note: this is only for the "span". The other files added can stay in internal.

                      Sergio Solano

                      Had to also edit files:
                      1. span_forward_internal.h
                      2. checked_iterators.h
                      3. span_unittest.cc
                      4. partition_alloc_unittest.cc

                      Line 286, Patchset 21:namespace partition_alloc::internal::base {
                      Arthur Sonzogni . resolved

                      What do you think about replacing:
                      ```
                      partition_alloc::internal::base
                      ```
                      into
                      ```
                      partition_alloc::base
                      ```

                      Even if this is expected to be used only from inside partition_alloc, this would avoid having to update the rewritter to emit the "internal" when adding code from within "partition_alloc" namespace instead of "partition_alloc::internal".

                      Note: this is only for the "span". The other files added can stay in internal.

                      Sergio Solano

                      Done

                      Line 31, Patchset 21:#include <span>
                      Arthur Sonzogni . resolved

                      I think we want to remove <span> for now to fix the PRESUBMIT. This is only used to convert a `std::span<T,N>` into a `base::span<T,N>`, but we don't use std::span anyway.

                      Sergio Solano

                      Done

                      Line 31, Patchset 21:#include <span>
                      Arthur Sonzogni . resolved

                      I think we want to remove <span> for now to fix the PRESUBMIT. This is only used to convert a `std::span<T,N>` into a `base::span<T,N>`, but we don't use std::span anyway.

                      Sergio Solano

                      Done

                      File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/integral_constant_like.h
                      Line 15, Patchset 21:concept IntegralConstantLike =

                      std::is_integral_v<decltype(T::value)> &&
                      !std::is_same_v<bool, std::remove_const_t<decltype(T::value)>> &&
                      std::convertible_to<T, decltype(T::value)> &&
                      std::equality_comparable_with<T, decltype(T::value)> &&
                      std::bool_constant<T() == T::value>::value &&
                      std::bool_constant<static_cast<decltype(T::value)>(T()) == T::value>::value;
                      Arthur Sonzogni . resolved

                      This is used only once. Maybe it can be inlined in the span.h file?

                      Sergio Solano

                      Done

                      File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_unittest.cc
                      Line 6465, Patchset 21:// Test that base::span can be used with a simple array.
                      Arthur Sonzogni . resolved

                      I guess this file isn't necessary anymore, because you now have span_unittest ?

                      Sergio Solano

                      If you mean Test instead of File, done.

                      Open in Gerrit

                      Related details

                      Attention is currently required from:
                      • Arthur Sonzogni
                      • Arthur Sonzogni
                      Submit Requirements:
                        • requirement satisfiedCode-Coverage
                        • requirement is not satisfiedCode-Owners
                        • requirement is not satisfiedCode-Review
                        • requirement is not satisfiedReview-Enforcement
                        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                        Gerrit-MessageType: comment
                        Gerrit-Project: chromium/src
                        Gerrit-Branch: main
                        Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                        Gerrit-Change-Number: 7517264
                        Gerrit-PatchSet: 22
                        Gerrit-Owner: Sergio Solano <sergio...@google.com>
                        Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                        Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                        Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                        Gerrit-CC: Kentaro Hara <har...@chromium.org>
                        Gerrit-Attention: Arthur Sonzogni <arthurs...@chromium.org>
                        Gerrit-Attention: Arthur Sonzogni <arthurs...@google.com>
                        Gerrit-Comment-Date: Tue, 17 Feb 2026 14:27:00 +0000
                        Gerrit-HasComments: Yes
                        Gerrit-Has-Labels: No
                        Comment-In-Reply-To: Arthur Sonzogni <arthurs...@chromium.org>
                        satisfied_requirement
                        unsatisfied_requirement
                        open
                        diffy

                        Arthur Sonzogni (Gerrit)

                        unread,
                        Feb 19, 2026, 4:56:22 AMFeb 19
                        to Sergio Solano, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                        Attention needed from Arthur Sonzogni and Sergio Solano

                        Arthur Sonzogni added 1 comment

                        Patchset-level comments
                        Sergio Solano . unresolved

                        Hi, Arthur, I've made the changes and uploaded my patchset but until now i realize you said that removing <span> would fix the PRESUBMIT. I uploaded my CL with bypass-hooks, I hope that is still accepted.

                        Arthur Sonzogni

                        There is an other error about using `using namespace`.

                        Why uploading without checking the presubmit? This would have saved one one round trip no?

                        Open in Gerrit

                        Related details

                        Attention is currently required from:
                        • Arthur Sonzogni
                        • Sergio Solano
                        Submit Requirements:
                          • requirement satisfiedCode-Coverage
                          • requirement is not satisfiedCode-Owners
                          • requirement is not satisfiedCode-Review
                          • requirement is not satisfiedNo-Unresolved-Comments
                          • requirement is not satisfiedReview-Enforcement
                          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                          Gerrit-MessageType: comment
                          Gerrit-Project: chromium/src
                          Gerrit-Branch: main
                          Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                          Gerrit-Change-Number: 7517264
                          Gerrit-PatchSet: 22
                          Gerrit-Owner: Sergio Solano <sergio...@google.com>
                          Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                          Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                          Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                          Gerrit-CC: Kentaro Hara <har...@chromium.org>
                          Gerrit-Attention: Sergio Solano <sergio...@google.com>
                          Gerrit-Attention: Arthur Sonzogni <arthurs...@google.com>
                          Gerrit-Comment-Date: Thu, 19 Feb 2026 09:56:06 +0000
                          Gerrit-HasComments: Yes
                          Gerrit-Has-Labels: No
                          Comment-In-Reply-To: Sergio Solano <sergio...@google.com>
                          satisfied_requirement
                          unsatisfied_requirement
                          open
                          diffy

                          Sergio Solano (Gerrit)

                          unread,
                          Feb 19, 2026, 11:14:08 AMFeb 19
                          to AyeAye, Arthur Sonzogni, Chromium LUCI CQ, Arthur Sonzogni, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                          Attention needed from Arthur Sonzogni and Arthur Sonzogni

                          Sergio Solano voted and added 2 comments

                          Votes added by Sergio Solano

                          Commit-Queue+1

                          2 comments

                          Patchset-level comments
                          File-level comment, Patchset 22:
                          Sergio Solano . resolved

                          Hi, Arthur, I've made the changes and uploaded my patchset but until now i realize you said that removing <span> would fix the PRESUBMIT. I uploaded my CL with bypass-hooks, I hope that is still accepted.

                          Arthur Sonzogni

                          There is an other error about using `using namespace`.

                          Why uploading without checking the presubmit? This would have saved one one round trip no?

                          Sergio Solano

                          Yes, I got used to sending this CL with the bypass but now I've fixed the presubmit errors.

                          File-level comment, Patchset 29 (Latest):
                          Sergio Solano . resolved

                          Hi Arthur, sorry for bypassing the hooks last time...

                          Currently I have fixed the presubmit errors:

                              1. Replaced `if consteval` with `if (std::is_constant_evaluated())` to
                          satisfy C++20 constraints. (I was getting `PartitionAlloc disallows
                          C++23 features: `if consteval`).
                          2. Replaced `std::to_address` with constexpr, `std::pointer_traits` and
                          `operator->` to avoid presubmit error because the new to_address.h is
                          not on the `std::to_address` whitelist in PRESUBMIT.py. Would it be
                          better to update PRESUBMIT.py?
                          3. Removed `std::span` and `absl::Span` usage and tests to avoid
                          presubmit error: `A banned pattern was used`.
                          Open in Gerrit

                          Related details

                          Attention is currently required from:
                          • Arthur Sonzogni
                          • Arthur Sonzogni
                          Submit Requirements:
                            • requirement satisfiedCode-Coverage
                            • requirement is not satisfiedCode-Owners
                            • requirement is not satisfiedCode-Review
                            • requirement is not satisfiedReview-Enforcement
                            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                            Gerrit-MessageType: comment
                            Gerrit-Project: chromium/src
                            Gerrit-Branch: main
                            Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                            Gerrit-Change-Number: 7517264
                            Gerrit-PatchSet: 29
                            Gerrit-Owner: Sergio Solano <sergio...@google.com>
                            Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                            Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                            Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                            Gerrit-CC: Kentaro Hara <har...@chromium.org>
                            Gerrit-Attention: Arthur Sonzogni <arthurs...@chromium.org>
                            Gerrit-Attention: Arthur Sonzogni <arthurs...@google.com>
                            Gerrit-Comment-Date: Thu, 19 Feb 2026 16:13:56 +0000
                            Gerrit-HasComments: Yes
                            Gerrit-Has-Labels: Yes
                            Comment-In-Reply-To: Arthur Sonzogni <arthurs...@chromium.org>
                            Comment-In-Reply-To: Sergio Solano <sergio...@google.com>
                            satisfied_requirement
                            unsatisfied_requirement
                            open
                            diffy

                            Arthur Sonzogni (Gerrit)

                            unread,
                            Feb 20, 2026, 7:24:26 AMFeb 20
                            to Sergio Solano, Stephen Nusko, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                            Attention needed from Arthur Sonzogni, Sergio Solano and Stephen Nusko

                            Arthur Sonzogni voted and added 10 comments

                            Votes added by Arthur Sonzogni

                            Code-Review+1

                            10 comments

                            Patchset-level comments
                            File-level comment, Patchset 29 (Latest):
                            Arthur Sonzogni . resolved

                            Thanks for your work!

                            I think I only have a couple of minor comments below. Please take a look.
                            LGTM % addressing them.

                            File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/checked_iterators.h
                            Line 280, Patchset 29 (Latest):#endif // BASE_CONTAINERS_CHECKED_ITERATORS_H_
                            Arthur Sonzogni . unresolved

                            Update to match the `#if` / `#ifndef`

                            Line 1, Patchset 29 (Latest):// Copyright 2018 The Chromium Authors
                            Arthur Sonzogni . unresolved

                            Info: here is a summary of the differences against the original file.

                            All of them looks good to me.

                            ### 1. Namespace Changes

                            • **Moved to PartitionAlloc Namespace:** The entire implementation has been moved from `namespace base` to `namespace partition_alloc::internal::base`.
                            • **Updated Forward Declarations:** The friend class declaration for `span` was updated from `friend class span;` to the fully qualified `friend class ::partition_alloc::base::span;`.
                            • **Updated `std::pointer_traits`:** The specialization at the bottom of the file was updated to target `partition_alloc::internal::base::CheckedContiguousIterator<T>` instead of `::base::CheckedContiguousIterator<T>`.

                            ### 2. Include Path Adjustments

                            • **Path Prefixes:** All internal `#include` paths were rewritten to use the `partition_alloc/` or `partition_alloc/partition_alloc_base/` prefixes instead of `base/` or `build/`.
                            • **Removed Include:** `#include "base/memory/raw_ptr_exclusion.h"` was entirely removed in the new version.

                            ### 3. Macro Prefixes

                            Chromium-specific macros were prefixed with `PA_` or `PA_BASE_` to avoid collisions and fit the PartitionAlloc standalone build:

                            • `CHECK()` `PA_BASE_CHECK()`
                            • `DCHECK()` `PA_BASE_DCHECK()`
                            • `UNSAFE_BUFFER_USAGE` `PA_UNSAFE_BUFFER_USAGE`
                            • `UNSAFE_BUFFERS()` `PA_UNSAFE_BUFFERS()`

                            ### 4. Removal of `RAW_PTR_EXCLUSION`

                            • The `RAW_PTR_EXCLUSION` macro was stripped from all pointer members.
                            • In the old version, `start_`, `current_`, and `end_` inside both the `AssumeValid` struct and the private members of the iterator class were annotated with `RAW_PTR_EXCLUSION` (alongside a comment stating "The embedding class is stack-scoped"). In the new version, they are standard raw pointers (e.g., `const T* start_ = nullptr;`).

                            ### 5. Header Guards

                            • The include guard was updated from `BASE_CONTAINERS_CHECKED_ITERATORS_H_` to `PARTITION_ALLOC_PARTITION_ALLOC_BASE_CONTAINERS_CHECKED_ITERATORS_H_`.
                            File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span.h
                            Line 15, Patchset 29 (Latest):// #ifndef PARTITION_ALLOC_PARTITION_ALLOC_BASE_CONTAINERS_SPAN_H_
                            // #define PARTITION_ALLOC_PARTITION_ALLOC_BASE_CONTAINERS_SPAN_H_
                            Arthur Sonzogni . unresolved

                            Could you please remove this?

                            Line 1, Patchset 29 (Latest):// Copyright 2017 The Chromium Authors
                            Arthur Sonzogni . unresolved

                            For info: here is a summary of the changes:


                            Here is a comprehensive summary of the differences:

                            ### 1. Namespaces and Include Guards

                            • **Include Guard:** Changed from `BASE_CONTAINERS_SPAN_H_` to `PARTITION_ALLOC_PARTITION_ALLOC_BASE_CONTAINERS_SPAN_H_`.
                            • **Namespaces:** Everything is moved out of `namespace base` and into `namespace partition_alloc::base`.
                            • **Internal Routing:** Uses of `internal::` and base types now explicitly route through `::partition_alloc::internal::base::` (e.g., `bit_cast`, `checked_cast`, `StrictNumeric`, `to_address`).

                            ### 2. Include Path Updates

                            • All `#include "base/..."` paths have been updated to `#include "partition_alloc/partition_alloc_base/..."`.
                            • **Header Removals:** `#include <span>` and `#include "base/numerics/integral_constant_like.h"` were removed.
                            • **Header Additions:** `#include <string_view>` and `#include "partition_alloc/partition_alloc_base/bit_cast.h"` were added.

                            ### 3. Macro Isolation (The `PA_` Prefix)

                            To avoid colliding with Chromium's core `base` macros, all macros and attributes have been prefixed with `PA_`:

                            • `CHECK()` / `DCHECK()` -> `PA_BASE_CHECK()` / `PA_BASE_DCHECK()`
                            • `UNSAFE_BUFFERS()` -> `PA_UNSAFE_BUFFERS()`
                            • `UNSAFE_BUFFER_USAGE` -> `PA_UNSAFE_BUFFER_USAGE`
                            • `LIFETIME_BOUND` -> `PA_LIFETIME_BOUND`
                            • `GSL_POINTER` -> `PA_GSL_POINTER`
                            • `ENABLE_IF_ATTR` -> `PA_ENABLE_IF_ATTR`

                            ### 4. Downgrade from C++23 to C++20

                            • **`if consteval` replaced:** The C++23 `if consteval { ... }` blocks (used inside `copy_from` and `copy_from_nonoverlapping`) have been rewritten to use the C++20 equivalent `if (std::is_constant_evaluated()) { ... }`.

                            ### 5. Standard Library Decoupling

                            • **Removal of `std::span`:** All interoperability with `std::span` has been stripped out. The explicit/implicit conversion operators (`operator std::span<element_type, extent>() const`) were completely removed, as was the specific `kComputedExtentImpl` deduction guide for `std::span`.
                            • **Removal of `std::make_unique`:** Inside the `constexpr` blocks for `copy_from`, the old code used `auto buffer = std::make_unique<Holder[]>(extent);`. Because `std::unique_ptr` isn't fully constexpr-friendly prior to C++23 without `<vector>`, the new code falls back to raw pointer allocation: `Holder* buffer = new Holder[extent]; ... delete[] buffer;`.

                            ### 6. Compiler Pragmas added

                            • The new file wraps the entire header in Clang diagnostic pragmas to suppress `-Wgcc-compat` warnings:
                            • ```cpp
                            • #if defined(__clang__)
                            • #pragma clang diagnostic push
                            • #pragma clang diagnostic ignored "-Wgcc-compat"
                            • #endif
                            • // ... file content ...
                            • #pragma clang diagnostic pop

                            ```

                            ### 7. New Functionality

                            • **`as_string_view` helpers:** The new code introduces several overloads for `as_string_view()` at the very bottom of the file to easily convert byte-like spans (`span<const char>`, `span<const unsigned char>`, `span<const char16_t>`, etc.) into their respective `std::string_view` types.
                            File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_forward_internal.h
                            Line 29, Patchset 29 (Latest):#endif // BASE_CONTAINERS_SPAN_FORWARD_INTERNAL_H_
                            Arthur Sonzogni . unresolved

                            Update to match the `#if` / `#ifndef`

                            File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_unittest.cc
                            Line 2539, Patchset 29 (Latest): // Alas, many desirable comparisions are still not possible. They
                            Arthur Sonzogni . unresolved

                            Please fix this WARNING reported by Spellchecker: "comparisions" is a possible misspelling of "comparisons".

                            To bypass Spellcheck...

                            "comparisions" is a possible misspelling of "comparisons".

                            To bypass Spellchecker, add a footer with DISABLE_SPELLCHECKER

                            File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/utf_ostream_operators.h
                            Line 47, Patchset 29 (Latest):#endif // BASE_STRINGS_UTF_OSTREAM_OPERATORS_H_
                            Arthur Sonzogni . unresolved

                            Update to match the `#if` / `#ifndef`

                            File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/types/to_address.h
                            Line 44, Patchset 29 (Latest):#endif // BASE_TYPES_TO_ADDRESS_H_
                            Arthur Sonzogni . unresolved

                            Update to match the `#if` / `#ifndef`

                            File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_unittest.cc
                            Line 6462, Patchset 29 (Latest):}

                            } // namespace partition_alloc::internal
                            Arthur Sonzogni . unresolved

                            Optional: Since it isn't meaningful to update this file, you can revert this part?
                            ```
                            git checkout HEAD~ -- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_unittest.cc
                            ```

                            Open in Gerrit

                            Related details

                            Attention is currently required from:
                            • Arthur Sonzogni
                            • Sergio Solano
                            • Stephen Nusko
                            Submit Requirements:
                              • requirement satisfiedCode-Coverage
                              • requirement is not satisfiedCode-Owners
                              • requirement is not satisfiedCode-Review
                              • requirement is not satisfiedNo-Unresolved-Comments
                              • requirement satisfiedReview-Enforcement
                              Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                              Gerrit-MessageType: comment
                              Gerrit-Project: chromium/src
                              Gerrit-Branch: main
                              Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                              Gerrit-Change-Number: 7517264
                              Gerrit-PatchSet: 29
                              Gerrit-Owner: Sergio Solano <sergio...@google.com>
                              Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                              Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                              Gerrit-Reviewer: Stephen Nusko <nus...@chromium.org>
                              Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                              Gerrit-CC: Kentaro Hara <har...@chromium.org>
                              Gerrit-Attention: Stephen Nusko <nus...@chromium.org>
                              Gerrit-Attention: Sergio Solano <sergio...@google.com>
                              Gerrit-Attention: Arthur Sonzogni <arthurs...@google.com>
                              Gerrit-Comment-Date: Fri, 20 Feb 2026 12:24:12 +0000
                              Gerrit-HasComments: Yes
                              Gerrit-Has-Labels: Yes
                              satisfied_requirement
                              unsatisfied_requirement
                              open
                              diffy

                              Sergio Solano (Gerrit)

                              unread,
                              Feb 23, 2026, 10:41:19 AMFeb 23
                              to Stephen Nusko, Arthur Sonzogni, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                              Attention needed from Arthur Sonzogni and Stephen Nusko

                              Sergio Solano added 7 comments

                              File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/checked_iterators.h
                              Line 280, Patchset 29:#endif // BASE_CONTAINERS_CHECKED_ITERATORS_H_
                              Arthur Sonzogni . resolved

                              Update to match the `#if` / `#ifndef`

                              Sergio Solano

                              Done

                              File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span.h
                              Line 15, Patchset 29:// #ifndef PARTITION_ALLOC_PARTITION_ALLOC_BASE_CONTAINERS_SPAN_H_
                              // #define PARTITION_ALLOC_PARTITION_ALLOC_BASE_CONTAINERS_SPAN_H_
                              Arthur Sonzogni . resolved

                              Could you please remove this?

                              Sergio Solano

                              Done

                              File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_forward_internal.h
                              Line 29, Patchset 29:#endif // BASE_CONTAINERS_SPAN_FORWARD_INTERNAL_H_
                              Arthur Sonzogni . resolved

                              Update to match the `#if` / `#ifndef`

                              Sergio Solano

                              Done

                              File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_unittest.cc
                              Line 2539, Patchset 29: // Alas, many desirable comparisions are still not possible. They
                              Arthur Sonzogni . resolved

                              Please fix this WARNING reported by Spellchecker: "comparisions" is a possible misspelling of "comparisons".

                              To bypass Spellcheck...

                              "comparisions" is a possible misspelling of "comparisons".

                              To bypass Spellchecker, add a footer with DISABLE_SPELLCHECKER

                              Sergio Solano

                              Done

                              File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/utf_ostream_operators.h
                              Line 47, Patchset 29:#endif // BASE_STRINGS_UTF_OSTREAM_OPERATORS_H_
                              Arthur Sonzogni . resolved

                              Update to match the `#if` / `#ifndef`

                              Sergio Solano

                              Done

                              File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/types/to_address.h
                              Line 44, Patchset 29:#endif // BASE_TYPES_TO_ADDRESS_H_
                              Arthur Sonzogni . resolved

                              Update to match the `#if` / `#ifndef`

                              Sergio Solano

                              Done

                              File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_unittest.cc
                              Line 6462, Patchset 29:}

                              } // namespace partition_alloc::internal
                              Arthur Sonzogni . resolved

                              Optional: Since it isn't meaningful to update this file, you can revert this part?
                              ```
                              git checkout HEAD~ -- base/allocator/partition_allocator/src/partition_alloc/partition_alloc_unittest.cc
                              ```

                              Sergio Solano

                              Done

                              Open in Gerrit

                              Related details

                              Attention is currently required from:
                              • Arthur Sonzogni
                              • Stephen Nusko
                              Submit Requirements:
                                • requirement satisfiedCode-Coverage
                                • requirement is not satisfiedCode-Owners
                                • requirement is not satisfiedCode-Review
                                • requirement is not satisfiedNo-Unresolved-Comments
                                • requirement is not satisfiedReview-Enforcement
                                Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                Gerrit-MessageType: comment
                                Gerrit-Project: chromium/src
                                Gerrit-Branch: main
                                Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                                Gerrit-Change-Number: 7517264
                                Gerrit-PatchSet: 30
                                Gerrit-Owner: Sergio Solano <sergio...@google.com>
                                Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                                Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                                Gerrit-Reviewer: Stephen Nusko <nus...@chromium.org>
                                Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                                Gerrit-CC: Kentaro Hara <har...@chromium.org>
                                Gerrit-Attention: Stephen Nusko <nus...@chromium.org>
                                Gerrit-Attention: Arthur Sonzogni <arthurs...@chromium.org>
                                Gerrit-Comment-Date: Mon, 23 Feb 2026 15:41:13 +0000
                                Gerrit-HasComments: Yes
                                satisfied_requirement
                                unsatisfied_requirement
                                open
                                diffy

                                Stephen Nusko (Gerrit)

                                unread,
                                Feb 24, 2026, 1:14:37 AMFeb 24
                                to Sergio Solano, Arthur Sonzogni, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                                Attention needed from Arthur Sonzogni and Sergio Solano

                                Stephen Nusko added 2 comments

                                Patchset-level comments
                                File-level comment, Patchset 30 (Latest):
                                Stephen Nusko . resolved

                                This is looking pretty good, going to pull it down and verify the diffs as Arthur has noted in his comments and then this will LGTM, just leaving the one comment about utf_ostreams which I think we might be able to remove?

                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_unittest.cc
                                Line 23, Patchset 30 (Latest):#include "partition_alloc/partition_alloc_base/strings/utf_ostream_operators.h"
                                Stephen Nusko . unresolved

                                Can we remove this dependency?

                                I don't even see where the ostream is in this file?

                                Bonus we don't need to bring it in, which I'd like, can you tell me the lines that are using this and I can think if there are reasonable alternatives?

                                Open in Gerrit

                                Related details

                                Attention is currently required from:
                                • Arthur Sonzogni
                                • Sergio Solano
                                Submit Requirements:
                                • requirement satisfiedCode-Coverage
                                • requirement is not satisfiedCode-Owners
                                • requirement is not satisfiedCode-Review
                                • requirement is not satisfiedNo-Unresolved-Comments
                                • requirement is not satisfiedReview-Enforcement
                                Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                Gerrit-MessageType: comment
                                Gerrit-Project: chromium/src
                                Gerrit-Branch: main
                                Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                                Gerrit-Change-Number: 7517264
                                Gerrit-PatchSet: 30
                                Gerrit-Owner: Sergio Solano <sergio...@google.com>
                                Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                                Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                                Gerrit-Reviewer: Stephen Nusko <nus...@chromium.org>
                                Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                                Gerrit-CC: Kentaro Hara <har...@chromium.org>
                                Gerrit-Attention: Sergio Solano <sergio...@google.com>
                                Gerrit-Attention: Arthur Sonzogni <arthurs...@chromium.org>
                                Gerrit-Comment-Date: Tue, 24 Feb 2026 06:14:17 +0000
                                Gerrit-HasComments: Yes
                                Gerrit-Has-Labels: No
                                satisfied_requirement
                                unsatisfied_requirement
                                open
                                diffy

                                Sergio Solano (Gerrit)

                                unread,
                                Feb 24, 2026, 1:25:39 PMFeb 24
                                to Stephen Nusko, Arthur Sonzogni, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                                Attention needed from Arthur Sonzogni and Stephen Nusko

                                Sergio Solano voted and added 1 comment

                                Votes added by Sergio Solano

                                Commit-Queue+1

                                1 comment

                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_unittest.cc
                                Line 23, Patchset 30:#include "partition_alloc/partition_alloc_base/strings/utf_ostream_operators.h"
                                Stephen Nusko . resolved

                                Can we remove this dependency?

                                I don't even see where the ostream is in this file?

                                Bonus we don't need to bring it in, which I'd like, can you tell me the lines that are using this and I can think if there are reasonable alternatives?

                                Sergio Solano

                                Removed it, it was not used.

                                Open in Gerrit

                                Related details

                                Attention is currently required from:
                                • Arthur Sonzogni
                                • Stephen Nusko
                                Submit Requirements:
                                • requirement satisfiedCode-Coverage
                                • requirement is not satisfiedCode-Owners
                                • requirement is not satisfiedCode-Review
                                • requirement is not satisfiedNo-Unresolved-Comments
                                • requirement is not satisfiedReview-Enforcement
                                Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                Gerrit-MessageType: comment
                                Gerrit-Project: chromium/src
                                Gerrit-Branch: main
                                Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                                Gerrit-Change-Number: 7517264
                                Gerrit-PatchSet: 31
                                Gerrit-Owner: Sergio Solano <sergio...@google.com>
                                Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                                Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                                Gerrit-Reviewer: Stephen Nusko <nus...@chromium.org>
                                Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                                Gerrit-CC: Kentaro Hara <har...@chromium.org>
                                Gerrit-Attention: Stephen Nusko <nus...@chromium.org>
                                Gerrit-Attention: Arthur Sonzogni <arthurs...@chromium.org>
                                Gerrit-Comment-Date: Tue, 24 Feb 2026 18:25:33 +0000
                                Gerrit-HasComments: Yes
                                Gerrit-Has-Labels: Yes
                                Comment-In-Reply-To: Stephen Nusko <nus...@chromium.org>
                                satisfied_requirement
                                unsatisfied_requirement
                                open
                                diffy

                                Stephen Nusko (Gerrit)

                                unread,
                                Feb 24, 2026, 10:23:32 PMFeb 24
                                to Sergio Solano, Arthur Sonzogni, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                                Attention needed from Arthur Sonzogni and Sergio Solano

                                Stephen Nusko added 20 comments

                                File base/allocator/partition_allocator/src/partition_alloc/BUILD.gn
                                Line 684, Patchset 31 (Latest): "partition_alloc_base/strings/utf_ostream_operators.h",
                                Stephen Nusko . unresolved

                                This file can be removed now.

                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/checked_iterators.h
                                Line 1, Patchset 29:// Copyright 2018 The Chromium Authors
                                Arthur Sonzogni . resolved

                                Info: here is a summary of the differences against the original file.

                                All of them looks good to me.

                                ### 1. Namespace Changes

                                • **Moved to PartitionAlloc Namespace:** The entire implementation has been moved from `namespace base` to `namespace partition_alloc::internal::base`.
                                • **Updated Forward Declarations:** The friend class declaration for `span` was updated from `friend class span;` to the fully qualified `friend class ::partition_alloc::base::span;`.
                                • **Updated `std::pointer_traits`:** The specialization at the bottom of the file was updated to target `partition_alloc::internal::base::CheckedContiguousIterator<T>` instead of `::base::CheckedContiguousIterator<T>`.

                                ### 2. Include Path Adjustments

                                • **Path Prefixes:** All internal `#include` paths were rewritten to use the `partition_alloc/` or `partition_alloc/partition_alloc_base/` prefixes instead of `base/` or `build/`.
                                • **Removed Include:** `#include "base/memory/raw_ptr_exclusion.h"` was entirely removed in the new version.

                                ### 3. Macro Prefixes

                                Chromium-specific macros were prefixed with `PA_` or `PA_BASE_` to avoid collisions and fit the PartitionAlloc standalone build:

                                • `CHECK()` `PA_BASE_CHECK()`
                                • `DCHECK()` `PA_BASE_DCHECK()`
                                • `UNSAFE_BUFFER_USAGE` `PA_UNSAFE_BUFFER_USAGE`
                                • `UNSAFE_BUFFERS()` `PA_UNSAFE_BUFFERS()`

                                ### 4. Removal of `RAW_PTR_EXCLUSION`

                                • The `RAW_PTR_EXCLUSION` macro was stripped from all pointer members.
                                • In the old version, `start_`, `current_`, and `end_` inside both the `AssumeValid` struct and the private members of the iterator class were annotated with `RAW_PTR_EXCLUSION` (alongside a comment stating "The embedding class is stack-scoped"). In the new version, they are standard raw pointers (e.g., `const T* start_ = nullptr;`).

                                ### 5. Header Guards

                                • The include guard was updated from `BASE_CONTAINERS_CHECKED_ITERATORS_H_` to `PARTITION_ALLOC_PARTITION_ALLOC_BASE_CONTAINERS_CHECKED_ITERATORS_H_`.
                                Stephen Nusko

                                Verified all these changes locally with diff.

                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span.h
                                Line 1190, Patchset 30: if (std::is_constant_evaluated()) {
                                Stephen Nusko . unresolved

                                nit: Add a `TODO(c++23): Switch to if consteval once PA supports only c++23 and above.`

                                Line 1144, Patchset 30: std::construct_at(&PA_UNSAFE_BUFFERS(buffer[i]).value, other[i]);
                                Stephen Nusko . unresolved

                                same optional nit:

                                ```suggestion
                                std::construct_at(PA_UNSAFE_BUFFERS(&buffer[i]).value, other[i]);
                                ```
                                Line 1124, Patchset 30: if (std::is_constant_evaluated()) {
                                Stephen Nusko . unresolved

                                nit: Add a `TODO(c++23): Switch to if consteval once PA supports only c++23 and above.`

                                Line 668, Patchset 30: if (std::is_constant_evaluated()) {
                                Stephen Nusko . unresolved

                                nit: Add a `TODO(c++23): Switch to if consteval once PA supports only c++23 and above.`

                                Line 615, Patchset 30: std::construct_at(&PA_UNSAFE_BUFFERS(buffer[i]).value, other[i]);
                                Stephen Nusko . unresolved

                                optional nit: I find it strange to see the '&' outside the UNSAFE_BUFFERS

                                ```suggestion
                                std::construct_at(PA_UNSAFE_BUFFERS(&buffer[i]).value, other[i]);
                                ```
                                Line 593, Patchset 30: if (std::is_constant_evaluated()) {
                                Stephen Nusko . unresolved

                                nit: Add a `TODO(c++23): Switch to if consteval once PA supports only c++23 and above.`

                                Line 306, Patchset 30:using ::partition_alloc::internal::base::bit_cast;
                                using ::partition_alloc::internal::base::checked_cast;
                                using ::partition_alloc::internal::base::CheckedContiguousConstIterator;
                                using ::partition_alloc::internal::base::CheckedContiguousIterator;
                                using ::partition_alloc::internal::base::StrictNumeric;
                                using ::partition_alloc::internal::base::to_address;
                                Stephen Nusko . unresolved

                                This has the effect of making these internal functions become part of `partition_alloc::base` namespace (anyone can refer to them as such if they include span.h).

                                Is there a reason to have them be in the internal namespace to begin with?

                                Line 1, Patchset 29:// Copyright 2017 The Chromium Authors
                                Stephen Nusko

                                Thanks, I've verified the all of these by diffing locally.

                                Question about 5) Is this just because folks that depend on PA might not be compiling with a full std::span implementation (assuming Angle and downstream of them)? Or what was the reasling for removing `std::span` otherwise?

                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_unittest.cc
                                Line 189, Patchset 30:
                                Stephen Nusko . unresolved

                                The test `ConstructFromDataAndSize` was deleted do you know why?

                                Line 1643, Patchset 30:
                                Stephen Nusko . unresolved

                                Why was the AsWritableBytes and AsChars test deleted AsWritableChars?

                                Line 1940, Patchset 30:
                                Stephen Nusko . unresolved

                                Was was Indexing, CopyFrom, deleted?

                                Line 2035, Patchset 30:
                                Stephen Nusko . unresolved

                                Why was CopyPrefixFrom deleted?

                                Line 2092, Patchset 30:
                                Stephen Nusko . unresolved

                                Why was SplitAt TakeFirst deleted?

                                Line 2573, Patchset 30:
                                Stephen Nusko . resolved

                                Presuming that abslHash got deleted because PA doesn't use absl, let me know if I'm wrong.

                                Line 2661, Patchset 30:
                                Stephen Nusko . unresolved

                                The safe alternative was deleted, is this because we don't have `U32FromLittleEndian`?

                                Could we just do something like.

                                `uint64_t v2 = *(reinterpret_cast<const uint64_t*>(&span(array)[6u]));`?

                                it was also removed from the one below.

                                Line 2708, Patchset 30:
                                Stephen Nusko . resolved

                                note: std tests were removed because std support was removed.

                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/utf_ostream_operators.h
                                Line 2, Patchset 31 (Latest):// Use of this source code is governed by a BSD-style license that can be
                                Stephen Nusko . unresolved

                                This file can be removed now

                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/types/to_address.h
                                Line 35, Patchset 31 (Latest): if constexpr (requires { std::pointer_traits<P>::to_address(p); }) {
                                return std::pointer_traits<P>::to_address(p);
                                } else {
                                return p.operator->();
                                }
                                Stephen Nusko . unresolved

                                This changed versus the base version which just uses `std::to_address`, which is a c++20 type, do you know what caused this constexpr addition here?

                                Open in Gerrit

                                Related details

                                Attention is currently required from:
                                • Arthur Sonzogni
                                • Sergio Solano
                                Submit Requirements:
                                • requirement satisfiedCode-Coverage
                                • requirement is not satisfiedCode-Owners
                                • requirement is not satisfiedCode-Review
                                • requirement is not satisfiedNo-Unresolved-Comments
                                • requirement is not satisfiedReview-Enforcement
                                Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                Gerrit-MessageType: comment
                                Gerrit-Project: chromium/src
                                Gerrit-Branch: main
                                Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                                Gerrit-Change-Number: 7517264
                                Gerrit-PatchSet: 31
                                Gerrit-Owner: Sergio Solano <sergio...@google.com>
                                Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                                Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                                Gerrit-Reviewer: Stephen Nusko <nus...@chromium.org>
                                Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                                Gerrit-CC: Kentaro Hara <har...@chromium.org>
                                Gerrit-Attention: Sergio Solano <sergio...@google.com>
                                Gerrit-Attention: Arthur Sonzogni <arthurs...@chromium.org>
                                Gerrit-Comment-Date: Wed, 25 Feb 2026 03:23:02 +0000
                                Gerrit-HasComments: Yes
                                Gerrit-Has-Labels: No
                                Comment-In-Reply-To: Arthur Sonzogni <arthurs...@chromium.org>
                                satisfied_requirement
                                unsatisfied_requirement
                                open
                                diffy

                                Arthur Sonzogni (Gerrit)

                                unread,
                                Feb 25, 2026, 4:24:53 AMFeb 25
                                to Sergio Solano, Stephen Nusko, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                                Attention needed from Sergio Solano

                                Arthur Sonzogni added 1 comment

                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span.h
                                Arthur Sonzogni

                                Thanks Stephen.

                                For now, PartitionAlloc is subject to the Chromium requirements around std::span. So this would trigger a PRESUBMIT.py.

                                We might need to interact with libraries that are interacting with span at some point in the future, but I strongly suspect we don't, and will never have to.

                                So, instead of asking a PRESUBMIT.py exception for PartitionAlloc, I said can ignore this for now and strip out the `std::span` logic for now. Then we can merge this quickly.

                                If we need it in the future, we can reconsider bringing this back.

                                Open in Gerrit

                                Related details

                                Attention is currently required from:
                                • Sergio Solano
                                Gerrit-Comment-Date: Wed, 25 Feb 2026 09:24:40 +0000
                                Gerrit-HasComments: Yes
                                Gerrit-Has-Labels: No
                                Comment-In-Reply-To: Stephen Nusko <nus...@chromium.org>
                                Comment-In-Reply-To: Arthur Sonzogni <arthurs...@chromium.org>
                                satisfied_requirement
                                unsatisfied_requirement
                                open
                                diffy

                                Sergio Solano (Gerrit)

                                unread,
                                Mar 2, 2026, 9:26:58 PMMar 2
                                to Stephen Nusko, Arthur Sonzogni, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                                Attention needed from Stephen Nusko

                                Sergio Solano voted and added 17 comments

                                Votes added by Sergio Solano

                                Commit-Queue+1

                                17 comments

                                Patchset-level comments
                                File-level comment, Patchset 32 (Latest):
                                Sergio Solano . resolved

                                I've made most of the fixes.

                                File base/allocator/partition_allocator/src/partition_alloc/BUILD.gn
                                Line 684, Patchset 31: "partition_alloc_base/strings/utf_ostream_operators.h",
                                Stephen Nusko . resolved

                                This file can be removed now.

                                Sergio Solano

                                Done

                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span.h
                                Line 1190, Patchset 30: if (std::is_constant_evaluated()) {
                                Stephen Nusko . resolved

                                nit: Add a `TODO(c++23): Switch to if consteval once PA supports only c++23 and above.`

                                Sergio Solano

                                Done

                                Line 1144, Patchset 30: std::construct_at(&PA_UNSAFE_BUFFERS(buffer[i]).value, other[i]);
                                Stephen Nusko . resolved

                                same optional nit:

                                ```suggestion
                                std::construct_at(PA_UNSAFE_BUFFERS(&buffer[i]).value, other[i]);
                                ```
                                Sergio Solano

                                Done

                                Line 1124, Patchset 30: if (std::is_constant_evaluated()) {
                                Stephen Nusko . resolved

                                nit: Add a `TODO(c++23): Switch to if consteval once PA supports only c++23 and above.`

                                Sergio Solano

                                Done

                                Line 668, Patchset 30: if (std::is_constant_evaluated()) {
                                Stephen Nusko . resolved

                                nit: Add a `TODO(c++23): Switch to if consteval once PA supports only c++23 and above.`

                                Sergio Solano

                                Done

                                Line 615, Patchset 30: std::construct_at(&PA_UNSAFE_BUFFERS(buffer[i]).value, other[i]);
                                Stephen Nusko . resolved

                                optional nit: I find it strange to see the '&' outside the UNSAFE_BUFFERS

                                ```suggestion
                                std::construct_at(PA_UNSAFE_BUFFERS(&buffer[i]).value, other[i]);
                                ```
                                Sergio Solano

                                Done

                                Line 593, Patchset 30: if (std::is_constant_evaluated()) {
                                Stephen Nusko . resolved

                                nit: Add a `TODO(c++23): Switch to if consteval once PA supports only c++23 and above.`

                                Sergio Solano

                                Done

                                Line 306, Patchset 30:using ::partition_alloc::internal::base::bit_cast;
                                using ::partition_alloc::internal::base::checked_cast;
                                using ::partition_alloc::internal::base::CheckedContiguousConstIterator;
                                using ::partition_alloc::internal::base::CheckedContiguousIterator;
                                using ::partition_alloc::internal::base::StrictNumeric;
                                using ::partition_alloc::internal::base::to_address;
                                Stephen Nusko . resolved

                                This has the effect of making these internal functions become part of `partition_alloc::base` namespace (anyone can refer to them as such if they include span.h).

                                Is there a reason to have them be in the internal namespace to begin with?

                                Sergio Solano

                                Added alias `namespace pa_base = ::partition_alloc::internal::base;` inside internal to be less verbose when using StrictNumeric without making these external functions part of the public PA base namespace.

                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_unittest.cc
                                Stephen Nusko . unresolved

                                The test `ConstructFromDataAndSize` was deleted do you know why?

                                Sergio Solano

                                I've added `ConstructFromDataAndSize` except the part that uses `fixed_extent`.

                                Currently, `strict_cast` in PartitionAlloc's base only handles arithmetic types. To support the full test, we would need to update `StrictNumeric` and `strict_cast` to handle `std::integral_constant` (which `fixed_extent` uses), similar to the main //base implementation. I don't think the gains of having the complete test justify the effort. What do you think?

                                Line 1643, Patchset 30:
                                Stephen Nusko . resolved

                                Why was the AsWritableBytes and AsChars test deleted AsWritableChars?

                                Sergio Solano

                                Added the tests without the raw_ptr y raw_span parts.

                                Line 1940, Patchset 30:
                                Stephen Nusko . resolved

                                Was was Indexing, CopyFrom, deleted?

                                Sergio Solano

                                Marked as resolved.

                                Line 2035, Patchset 30:
                                Stephen Nusko . resolved

                                Why was CopyPrefixFrom deleted?

                                Sergio Solano

                                Done

                                Line 2092, Patchset 30:
                                Stephen Nusko . resolved

                                Why was SplitAt TakeFirst deleted?

                                Sergio Solano

                                Done

                                Line 2661, Patchset 30:
                                Stephen Nusko . resolved

                                The safe alternative was deleted, is this because we don't have `U32FromLittleEndian`?

                                Could we just do something like.

                                `uint64_t v2 = *(reinterpret_cast<const uint64_t*>(&span(array)[6u]));`?

                                it was also removed from the one below.

                                Sergio Solano

                                Done

                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/utf_ostream_operators.h
                                Line 2, Patchset 31:// Use of this source code is governed by a BSD-style license that can be
                                Stephen Nusko . resolved

                                This file can be removed now

                                Sergio Solano

                                Done

                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/types/to_address.h
                                Line 35, Patchset 31: if constexpr (requires { std::pointer_traits<P>::to_address(p); }) {

                                return std::pointer_traits<P>::to_address(p);
                                } else {
                                return p.operator->();
                                }
                                Stephen Nusko . resolved

                                This changed versus the base version which just uses `std::to_address`, which is a c++20 type, do you know what caused this constexpr addition here?

                                Sergio Solano

                                Fixed. Don't remember the reason for changing.

                                Open in Gerrit

                                Related details

                                Attention is currently required from:
                                • Stephen Nusko
                                Submit Requirements:
                                • requirement satisfiedCode-Coverage
                                • requirement is not satisfiedCode-Owners
                                • requirement is not satisfiedCode-Review
                                • requirement is not satisfiedNo-Unresolved-Comments
                                • requirement is not satisfiedReview-Enforcement
                                Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                Gerrit-MessageType: comment
                                Gerrit-Project: chromium/src
                                Gerrit-Branch: main
                                Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                                Gerrit-Change-Number: 7517264
                                Gerrit-PatchSet: 32
                                Gerrit-Owner: Sergio Solano <sergio...@google.com>
                                Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                                Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                                Gerrit-Reviewer: Stephen Nusko <nus...@chromium.org>
                                Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                                Gerrit-CC: Kentaro Hara <har...@chromium.org>
                                Gerrit-Attention: Stephen Nusko <nus...@chromium.org>
                                Gerrit-Comment-Date: Tue, 03 Mar 2026 02:26:51 +0000
                                satisfied_requirement
                                unsatisfied_requirement
                                open
                                diffy

                                Stephen Nusko (Gerrit)

                                unread,
                                Mar 3, 2026, 2:16:26 AMMar 3
                                to Sergio Solano, Arthur Sonzogni, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                                Attention needed from Arthur Sonzogni and Sergio Solano

                                Stephen Nusko added 8 comments

                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span.h
                                Line 502, Patchset 32 (Latest): : data_(::partition_alloc::base::to_address(first)) {
                                Stephen Nusko . unresolved

                                aren't we already in ::partition_alloc::base? wouldn't just `to_address` work? here and below.

                                Line 501, Patchset 32 (Latest): internal::pa_base::StrictNumeric<size_type> count)
                                Stephen Nusko . unresolved

                                why not just `internal::base::StrictNumeric<size_type>` isn't `pa_base` +2 letters?

                                Or did you want this to be

                                `pa_base::StrictNumeric<size_type>`?

                                In which case you should put this

                                `using pa_base = ::partition_alloc::internal::base;` inside the span class perhaps and use that as `pa_base::StrictNumeric<size_type>`?

                                Line 308, Patchset 32 (Latest):using ::partition_alloc::base::to_address;
                                Stephen Nusko . unresolved

                                What is this using statement for?

                                Is internal enough in this case?

                                Line 1, Patchset 29:// Copyright 2017 The Chromium Authors
                                Arthur Sonzogni . resolved
                                Stephen Nusko

                                Yeah perfectly reasonable just wanted to know for my own knowledge.

                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_forward_internal.h
                                Line 20, Patchset 32 (Latest): // Storage pointer customization. By default this is not a
                                // `raw_ptr<>`, since `span` is mostly used for stack variables. Use
                                // `raw_span` instead for class fields, which sets this to
                                // `raw_ptr<T>`.
                                Stephen Nusko . unresolved

                                Can we even use raw_ptr inside partition_alloc? It is probably to self referential? And perhaps we remove this comment?

                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_unittest.cc
                                Line 62, Patchset 30: {
                                const std::vector<int> v;
                                static_assert(
                                std::is_same_v<decltype(span(v.cbegin(), v.cend())), span<const int>>);
                                static_assert(
                                std::is_same_v<decltype(span(v.begin(), v.end())), span<const int>>);
                                }

                                {
                                std::vector<int> v;
                                static_assert(
                                std::is_same_v<decltype(span(v.cbegin(), v.cend())), span<const int>>);
                                static_assert(
                                std::is_same_v<decltype(span(v.begin(), v.end())), span<int>>);
                                }

                                // Tests for span(Range&&) deduction guide.

                                // C-style arrays.
                                static_assert(std::is_same_v<decltype(span(std::declval<const int (&)[3]>())),
                                span<const int, 3>>);
                                static_assert(
                                std::is_same_v<decltype(span(std::declval<const int (&&)[3]>())),
                                span<const int, 3>>);
                                static_assert(
                                std::is_same_v<decltype(span(std::declval<int (&)[3]>())), span<int, 3>>);
                                static_assert(std::is_same_v<decltype(span(std::declval<int (&&)[3]>())),
                                span<const int, 3>>);

                                // std::array<const T, N>.
                                static_assert(
                                std::is_same_v<decltype(span(
                                std::declval<const std::array<const bool, 3>&>())),
                                span<const bool, 3>>);
                                static_assert(
                                std::is_same_v<decltype(span(
                                std::declval<const std::array<const bool, 3>&&>())),
                                span<const bool, 3>>);
                                static_assert(
                                std::is_same_v<decltype(span(std::declval<std::array<const bool, 3>&>())),
                                span<const bool, 3>>);
                                static_assert(std::is_same_v<
                                decltype(span(std::declval<std::array<const bool, 3>&&>())),
                                span<const bool, 3>>);

                                // std::array<T, N>.
                                static_assert(
                                std::is_same_v<decltype(span(std::declval<const std::array<bool, 3>&>())),
                                span<const bool, 3>>);
                                static_assert(std::is_same_v<
                                decltype(span(std::declval<const std::array<bool, 3>&&>())),
                                span<const bool, 3>>);
                                static_assert(
                                std::is_same_v<decltype(span(std::declval<std::array<bool, 3>&>())),
                                span<bool, 3>>);
                                static_assert(
                                std::is_same_v<decltype(span(std::declval<std::array<bool, 3>&&>())),
                                span<const bool, 3>>);

                                // std::string.
                                static_assert(
                                std::is_same_v<decltype(span(std::declval<const std::string&>())),
                                span<const char>>);
                                static_assert(
                                std::is_same_v<decltype(span(std::declval<const std::string&&>())),
                                span<const char>>);
                                static_assert(
                                std::is_same_v<decltype(span(std::declval<std::string&>())), span<char>>);
                                static_assert(std::is_same_v<decltype(span(std::declval<std::string&&>())),
                                span<const char>>);

                                // std::u16string.
                                static_assert(
                                std::is_same_v<decltype(span(std::declval<const std::u16string&>())),
                                span<const char16_t>>);
                                static_assert(
                                std::is_same_v<decltype(span(std::declval<const std::u16string&&>())),
                                span<const char16_t>>);
                                static_assert(std::is_same_v<decltype(span(std::declval<std::u16string&>())),
                                span<char16_t>>);
                                static_assert(std::is_same_v<decltype(span(std::declval<std::u16string&&>())),
                                span<const char16_t>>);

                                // std::ranges::subrange<const T*>.
                                static_assert(std::is_same_v<
                                decltype(span(
                                std::declval<const std::ranges::subrange<const int*>&>())),
                                span<const int>>);
                                static_assert(std::is_same_v<
                                decltype(span(
                                std::declval<const std::ranges::subrange<const int*>&&>())),
                                span<const int>>);
                                static_assert(
                                std::is_same_v<decltype(span(
                                std::declval<std::ranges::subrange<const int*>&>())),
                                span<const int>>);
                                static_assert(
                                std::is_same_v<decltype(span(
                                std::declval<std::ranges::subrange<const int*>&&>())),
                                span<const int>>);

                                // std::ranges::subrange<T*>.
                                static_assert(
                                std::is_same_v<decltype(span(
                                std::declval<const std::ranges::subrange<int*>&>())),
                                span<int>>);
                                static_assert(
                                std::is_same_v<decltype(span(
                                std::declval<const std::ranges::subrange<int*>&&>())),
                                span<int>>);
                                static_assert(std::is_same_v<
                                decltype(span(std::declval<std::ranges::subrange<int*>&>())),
                                span<int>>);
                                static_assert(std::is_same_v<
                                decltype(span(std::declval<std::ranges::subrange<int*>&&>())),
                                span<int>>);
                                Stephen Nusko . unresolved

                                There are suddenly a bunch of deletions was this intentional (here and elsewhere). It makes it hard to check the added tests and also raises the question of why they were removed (were they failing?)

                                Line 189, Patchset 30:
                                Stephen Nusko . resolved

                                The test `ConstructFromDataAndSize` was deleted do you know why?

                                Sergio Solano

                                I've added `ConstructFromDataAndSize` except the part that uses `fixed_extent`.

                                Currently, `strict_cast` in PartitionAlloc's base only handles arithmetic types. To support the full test, we would need to update `StrictNumeric` and `strict_cast` to handle `std::integral_constant` (which `fixed_extent` uses), similar to the main //base implementation. I don't think the gains of having the complete test justify the effort. What do you think?

                                Stephen Nusko

                                This seems like a reasonable compromise.

                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/types/to_address.h
                                Line 35, Patchset 31: if constexpr (requires { std::pointer_traits<P>::to_address(p); }) {
                                return std::pointer_traits<P>::to_address(p);
                                } else {
                                return p.operator->();
                                }
                                Stephen Nusko . unresolved

                                This changed versus the base version which just uses `std::to_address`, which is a c++20 type, do you know what caused this constexpr addition here?

                                Sergio Solano

                                Fixed. Don't remember the reason for changing.

                                Stephen Nusko

                                This implementation is still quite different from base, do we not need the SFINAE wrapper? Can you add some comments if that is the case in which case do we need this function at all?

                                Open in Gerrit

                                Related details

                                Attention is currently required from:
                                • Arthur Sonzogni
                                • Sergio Solano
                                Submit Requirements:
                                • requirement satisfiedCode-Coverage
                                • requirement is not satisfiedCode-Owners
                                • requirement is not satisfiedCode-Review
                                • requirement is not satisfiedNo-Unresolved-Comments
                                • requirement is not satisfiedReview-Enforcement
                                Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                Gerrit-MessageType: comment
                                Gerrit-Project: chromium/src
                                Gerrit-Branch: main
                                Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                                Gerrit-Change-Number: 7517264
                                Gerrit-PatchSet: 32
                                Gerrit-Owner: Sergio Solano <sergio...@google.com>
                                Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                                Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                                Gerrit-Reviewer: Stephen Nusko <nus...@chromium.org>
                                Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                                Gerrit-CC: Kentaro Hara <har...@chromium.org>
                                Gerrit-Attention: Arthur Sonzogni <arthurs...@chromium.org>
                                Gerrit-Attention: Sergio Solano <sergio...@google.com>
                                Gerrit-Comment-Date: Tue, 03 Mar 2026 07:16:20 +0000
                                Gerrit-HasComments: Yes
                                Gerrit-Has-Labels: No
                                Comment-In-Reply-To: Stephen Nusko <nus...@chromium.org>
                                Comment-In-Reply-To: Arthur Sonzogni <arthurs...@chromium.org>
                                Comment-In-Reply-To: Sergio Solano <sergio...@google.com>
                                satisfied_requirement
                                unsatisfied_requirement
                                open
                                diffy

                                Arthur Sonzogni (Gerrit)

                                unread,
                                Mar 5, 2026, 10:27:00 AMMar 5
                                to Sergio Solano, Code Review Nudger, Stephen Nusko, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                                Attention needed from Sergio Solano

                                Arthur Sonzogni added 1 comment

                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_unittest.cc
                                Arthur Sonzogni

                                Sergio, make you can add a top-level comment?

                                ```
                                // This is a simplified version of Chromium's
                                // //base/containers/span_unittest.cc. To minimize dependencies, several tests
                                // and APIs were removed:
                                //
                                // 1. std::span Interoperability (FromStdSpan, ToStdSpan)
                                // Rationale: Avoids triggering Chromium PRESUBMIT.py checks for `std::span`.
                                // We don't currently need this interoperability. We can revisit this if
                                // needed in the future.
                                //
                                // 2. Type Punning (ReinterpretSpan)
                                // Rationale: This was introduced in upstream //base after our initial
                                // migration.
                                // TODO(sergiosolano): Should we port this over and add it back in?
                                //
                                // 3. Abseil Dependencies (AbslHash)
                                // Rationale: PartitionAlloc doesn't depend on Abseil.
                                //
                                // 4. Volatile Memory Support (ConstructFromVolatileArray, CopyFromVolatile)
                                // TODO(sergiosolano): Please clarify why these were removed. I am not sure
                                // to remember.
                                //
                                // 5. String/C-String Utilities (FromCString, FromCStringEmpty, etc.)
                                // Rationale: PA strictly handles byte-level memory, so text-focused
                                // utilities and their tests are unnecessary. This avoids importing
                                // base::cstring_view and its dependencies, which are not likely not needed.
                                //
                                // 6. Exhaustive API Testing (Slicing, Iterators, Comparisons, Conversions)
                                // TODO(sergiosolano): Please document the exact rationale for removing
                                // these test cases. I don't remember why.
                                //
                                // 7. Death Tests and Macros (OutOfBoundsDeath, GTest/GMock Compatibility)
                                // Rationale: Death tests rely on Chromium-specific build config macros.
                                // Removing them avoids pulling in those external dependencies just to
                                // make the tests run reliably.
                                // -----------------------------------------------------------------------------
                                ```

                                Open in Gerrit

                                Related details

                                Attention is currently required from:
                                • Sergio Solano
                                Submit Requirements:
                                • requirement satisfiedCode-Coverage
                                • requirement is not satisfiedCode-Owners
                                • requirement is not satisfiedCode-Review
                                • requirement is not satisfiedNo-Unresolved-Comments
                                • requirement is not satisfiedReview-Enforcement
                                Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                Gerrit-MessageType: comment
                                Gerrit-Project: chromium/src
                                Gerrit-Branch: main
                                Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                                Gerrit-Change-Number: 7517264
                                Gerrit-PatchSet: 32
                                Gerrit-Owner: Sergio Solano <sergio...@google.com>
                                Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                                Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                                Gerrit-Reviewer: Stephen Nusko <nus...@chromium.org>
                                Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                                Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                                Gerrit-CC: Kentaro Hara <har...@chromium.org>
                                Gerrit-Attention: Sergio Solano <sergio...@google.com>
                                Gerrit-Comment-Date: Thu, 05 Mar 2026 15:26:46 +0000
                                satisfied_requirement
                                unsatisfied_requirement
                                open
                                diffy

                                Sergio Solano (Gerrit)

                                unread,
                                Mar 11, 2026, 10:25:27 PMMar 11
                                to Bryan Enrique Gonzalez, Code Review Nudger, Stephen Nusko, Arthur Sonzogni, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                                Attention needed from Arthur Sonzogni and Stephen Nusko

                                Sergio Solano voted and added 7 comments

                                Votes added by Sergio Solano

                                Commit-Queue+1

                                7 comments

                                Patchset-level comments
                                File-level comment, Patchset 33 (Latest):
                                Sergio Solano . resolved

                                Hi, guys. I hit a presubmit error with std::to_address because it's banned globally. To keep to_address.h as a copy of //base/types/to_address.h (which also uses std::to_address in its implementation), I've added our new path to the exception list in the root PRESUBMIT.py. This is consistent with how //base handles its own wrapper.

                                Do you agree?

                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span.h
                                Line 502, Patchset 32: : data_(::partition_alloc::base::to_address(first)) {
                                Stephen Nusko . resolved

                                aren't we already in ::partition_alloc::base? wouldn't just `to_address` work? here and below.

                                Sergio Solano

                                Done

                                Line 501, Patchset 32: internal::pa_base::StrictNumeric<size_type> count)
                                Stephen Nusko . resolved

                                why not just `internal::base::StrictNumeric<size_type>` isn't `pa_base` +2 letters?

                                Or did you want this to be

                                `pa_base::StrictNumeric<size_type>`?

                                In which case you should put this

                                `using pa_base = ::partition_alloc::internal::base;` inside the span class perhaps and use that as `pa_base::StrictNumeric<size_type>`?

                                Sergio Solano

                                I've brought StrictNumeric directly into the partition_alloc::base::internal namespace. This allows using internal::StrictNumeric at the call sites without the need for an extra alias layer or placing it inside the class.

                                Line 308, Patchset 32:using ::partition_alloc::base::to_address;
                                Stephen Nusko . resolved

                                What is this using statement for?

                                Is internal enough in this case?

                                Sergio Solano

                                I've removed that using statement.

                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_forward_internal.h
                                Line 20, Patchset 32: // Storage pointer customization. By default this is not a

                                // `raw_ptr<>`, since `span` is mostly used for stack variables. Use
                                // `raw_span` instead for class fields, which sets this to
                                // `raw_ptr<T>`.
                                Stephen Nusko . resolved

                                Can we even use raw_ptr inside partition_alloc? It is probably to self referential? And perhaps we remove this comment?

                                Sergio Solano

                                Comment removed.

                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_unittest.cc
                                Stephen Nusko . resolved
                                Sergio Solano

                                Done

                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/types/to_address.h
                                Line 35, Patchset 31: if constexpr (requires { std::pointer_traits<P>::to_address(p); }) {
                                return std::pointer_traits<P>::to_address(p);
                                } else {
                                return p.operator->();
                                }
                                Stephen Nusko . resolved

                                This changed versus the base version which just uses `std::to_address`, which is a c++20 type, do you know what caused this constexpr addition here?

                                Sergio Solano

                                Fixed. Don't remember the reason for changing.

                                Stephen Nusko

                                This implementation is still quite different from base, do we not need the SFINAE wrapper? Can you add some comments if that is the case in which case do we need this function at all?

                                Sergio Solano

                                I'm not really sure if PartitionAlloc needs this. I am changing the file to be as similar to the original.

                                Open in Gerrit

                                Related details

                                Attention is currently required from:
                                • Arthur Sonzogni
                                • Stephen Nusko
                                Submit Requirements:
                                  • requirement satisfiedCode-Coverage
                                  • requirement is not satisfiedCode-Owners
                                  • requirement is not satisfiedCode-Review
                                  • requirement is not satisfiedReview-Enforcement
                                  Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                  Gerrit-MessageType: comment
                                  Gerrit-Project: chromium/src
                                  Gerrit-Branch: main
                                  Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                                  Gerrit-Change-Number: 7517264
                                  Gerrit-PatchSet: 33
                                  Gerrit-Owner: Sergio Solano <sergio...@google.com>
                                  Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                                  Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                                  Gerrit-Reviewer: Stephen Nusko <nus...@chromium.org>
                                  Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                                  Gerrit-CC: Bryan Enrique Gonzalez <bryanen...@google.com>
                                  Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                                  Gerrit-CC: Kentaro Hara <har...@chromium.org>
                                  Gerrit-Attention: Stephen Nusko <nus...@chromium.org>
                                  Gerrit-Attention: Arthur Sonzogni <arthurs...@chromium.org>
                                  Gerrit-Comment-Date: Thu, 12 Mar 2026 02:25:16 +0000
                                  Gerrit-HasComments: Yes
                                  Gerrit-Has-Labels: Yes
                                  satisfied_requirement
                                  unsatisfied_requirement
                                  open
                                  diffy

                                  Stephen Nusko (Gerrit)

                                  unread,
                                  Mar 12, 2026, 12:53:02 AMMar 12
                                  to Sergio Solano, Bryan Enrique Gonzalez, Code Review Nudger, Arthur Sonzogni, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                                  Attention needed from Arthur Sonzogni and Sergio Solano

                                  Stephen Nusko added 2 comments

                                  Patchset-level comments
                                  File-level comment, Patchset 34 (Latest):
                                  Stephen Nusko . resolved

                                  Will do a side by side diff from base again tomorrow, but looking reasonable I think.

                                  File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_unittest.cc
                                  Line 42, Patchset 34 (Latest):// Rationale: Death tests rely on Chromium-specific build config macros.

                                  // Removing them avoids pulling in those external dependencies just to
                                  // make the tests run reliably.
                                  Stephen Nusko . unresolved

                                  PartitionAlloc has `PA_USE_DEATH_TESTS`, I'll take a look but could you expand one what sort of BUILD config macros?

                                  Open in Gerrit

                                  Related details

                                  Attention is currently required from:
                                  • Arthur Sonzogni
                                  • Sergio Solano
                                  Submit Requirements:
                                    • requirement satisfiedCode-Coverage
                                    • requirement is not satisfiedCode-Owners
                                    • requirement is not satisfiedCode-Review
                                    • requirement is not satisfiedNo-Unresolved-Comments
                                    • requirement is not satisfiedReview-Enforcement
                                    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                    Gerrit-MessageType: comment
                                    Gerrit-Project: chromium/src
                                    Gerrit-Branch: main
                                    Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                                    Gerrit-Change-Number: 7517264
                                    Gerrit-PatchSet: 34
                                    Gerrit-Owner: Sergio Solano <sergio...@google.com>
                                    Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                                    Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                                    Gerrit-Reviewer: Stephen Nusko <nus...@chromium.org>
                                    Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                                    Gerrit-CC: Bryan Enrique Gonzalez <bryanen...@google.com>
                                    Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                                    Gerrit-CC: Kentaro Hara <har...@chromium.org>
                                    Gerrit-Attention: Sergio Solano <sergio...@google.com>
                                    Gerrit-Attention: Arthur Sonzogni <arthurs...@chromium.org>
                                    Gerrit-Comment-Date: Thu, 12 Mar 2026 04:52:29 +0000
                                    Gerrit-HasComments: Yes
                                    Gerrit-Has-Labels: No
                                    satisfied_requirement
                                    unsatisfied_requirement
                                    open
                                    diffy

                                    Stephen Nusko (Gerrit)

                                    unread,
                                    Mar 13, 2026, 3:34:49 AMMar 13
                                    to Sergio Solano, Bryan Enrique Gonzalez, Code Review Nudger, Arthur Sonzogni, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                                    Attention needed from Arthur Sonzogni and Sergio Solano

                                    Stephen Nusko added 6 comments

                                    Patchset-level comments
                                    Stephen Nusko . resolved

                                    Do you mind double checking the logic for all the removals in the tests? Seems like a lot got deleted that could be fixed, we won't ever import span again and we'd like to make sure our implementation stays well tested at least.

                                    File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span.h
                                    Line 303, Patchset 34 (Latest):namespace partition_alloc::base::internal {

                                    using ::partition_alloc::internal::base::StrictNumeric;
                                    } // namespace partition_alloc::base::internal

                                    namespace partition_alloc::base {
                                    Stephen Nusko . unresolved

                                    You can move this down into the namespace below.

                                    ```suggestion


                                    using ::partition_alloc::internal::base::StrictNumeric;

                                    } // namespace partition_alloc::base::internal

                                    namespace partition_alloc::base {
                                    namespace internal {

                                    using ::partition_alloc::internal::base::StrictNumeric;
                                    }  // namespace internal
                                    ```

                                    But also I have some questions

                                    why do we have a `partition_alloc::base` and a `partition_alloc::internal::base` to begin with?

                                    I can't see any previous use-case of `partition_alloc::base` is this the first introduction of it in this CL?

                                    I remember there was discussions of namespaces but this seems to be a bit conflicted because if this should be in base::internal StrictNumeric should declare itself there.

                                    See for example how we redeclare things in [PartitionLock](https://source.chromium.org/chromium/chromium/src/+/main:base/allocator/partition_allocator/src/partition_alloc/partition_lock.h;l=181-188;drc=e72a72ba9fe98e14b9d255722b7704ae84f5b8df), but should we just remove partition_alloc::internal for partition_alloc::base::internal?

                                    File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_unittest.cc
                                    Line 42, Patchset 34 (Latest):// Rationale: Death tests rely on Chromium-specific build config macros.
                                    // Removing them avoids pulling in those external dependencies just to
                                    // make the tests run reliably.
                                    Stephen Nusko . unresolved

                                    PartitionAlloc has `PA_USE_DEATH_TESTS`, I'll take a look but could you expand one what sort of BUILD config macros?

                                    Stephen Nusko

                                    For OutOfBoundsDeath test, could you just do

                                    ```
                                    #if PA_USE_DEATH_TESTS
                                    TEST(PASpanTest, OutOfBoundsDeath) {
                                    constexpr span<int, 0> kEmptySpan;
                                    EXPECT_DEATH({kEmptySpan.first(1u);}, "");
                                    }
                                    #endif // PA_USE_DEATH_TESTS
                                    ```

                                    ?

                                    Line 80, Patchset 34 (Latest): // Tests for span(It, EndOrSize) deduction guide.

                                    {
                                    const std::vector<int> v;
                                    static_assert(
                                    std::is_same_v<decltype(span(v.cbegin(), v.size())), span<const int>>);
                                    static_assert(
                                    std::is_same_v<decltype(span(v.begin(), v.size())), span<const int>>);
                                    static_assert(
                                    std::is_same_v<decltype(span(v.data(), v.size())), span<const int>>);

                                    }

                                    {
                                    std::vector<int> v;
                                    static_assert(
                                    std::is_same_v<decltype(span(v.cbegin(), v.size())), span<const int>>);
                                    static_assert(
                                    std::is_same_v<decltype(span(v.begin(), v.size())), span<int>>);
                                    static_assert(
                                    std::is_same_v<decltype(span(v.data(), v.size())), span<int>>);
                                    }
                                    }
                                    Stephen Nusko . unresolved

                                    This test was greatly reduced, but it only used standard std types rational given in number 6 doesn't apply. For example:

                                    I.E. all of these seem trival to have in partitionAlloc as well: https://source.chromium.org/chromium/chromium/src/+/main:base/containers/span_unittest.cc;l=85-184;drc=9a040b86879feaa0d33e564776741f4729e5c4d1

                                    Line 111, Patchset 34 (Latest):
                                    Stephen Nusko . unresolved

                                    ConstructFromDataAndSize again doesn't seem to fall into number 6, I don't see why we couldn't keep it?

                                    ConstructFromDataAndZeroSize has a DEATH check but if you use

                                    ```

                                    #if PA_USE_DEATH_TESTS
                                    PA_EXPECT_DCHECK_DEATH(({ PA_UNSAFE_BUFFERS(span<char>(nullptr_to_char, 123u)); });
                                    #endif
                                    ```
                                    Line 133, Patchset 34 (Latest): std::vector<int> vector = {1, 1, 2, 3, 5, 8};
                                    Stephen Nusko . unresolved

                                    This removed the construct from empty

                                    ```
                                    constexpr int* kNull = nullptr;
                                    constexpr span<int> UNSAFE_BUFFERS(empty_span(kNull, kNull));
                                    EXPECT_TRUE(empty_span.empty());
                                    EXPECT_EQ(nullptr, empty_span.data());
                                    ```

                                    Do you mind going through this and explaining a bit clearer why you removed tests you did? This one seems like it would work just fine?

                                    Gerrit-Comment-Date: Fri, 13 Mar 2026 07:34:18 +0000
                                    Gerrit-HasComments: Yes
                                    Gerrit-Has-Labels: No
                                    Comment-In-Reply-To: Stephen Nusko <nus...@chromium.org>
                                    satisfied_requirement
                                    unsatisfied_requirement
                                    open
                                    diffy

                                    Sergio Solano (Gerrit)

                                    unread,
                                    Mar 16, 2026, 11:40:30 PMMar 16
                                    to Bryan Enrique Gonzalez, Code Review Nudger, Stephen Nusko, Arthur Sonzogni, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                                    Attention needed from Arthur Sonzogni and Stephen Nusko

                                    Sergio Solano added 6 comments

                                    Patchset-level comments
                                    File-level comment, Patchset 37 (Latest):
                                    Sergio Solano . resolved

                                    Hi, thanks for the reviews. Here is my next attempt.

                                    File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span.h
                                    Line 303, Patchset 34:namespace partition_alloc::base::internal {

                                    using ::partition_alloc::internal::base::StrictNumeric;
                                    } // namespace partition_alloc::base::internal

                                    namespace partition_alloc::base {
                                    Stephen Nusko . resolved

                                    You can move this down into the namespace below.

                                    ```suggestion
                                    using ::partition_alloc::internal::base::StrictNumeric;
                                    } // namespace partition_alloc::base::internal

                                    namespace partition_alloc::base {
                                    namespace internal {
                                    using ::partition_alloc::internal::base::StrictNumeric;
                                    } // namespace internal
                                    ```

                                    But also I have some questions

                                    why do we have a `partition_alloc::base` and a `partition_alloc::internal::base` to begin with?

                                    I can't see any previous use-case of `partition_alloc::base` is this the first introduction of it in this CL?

                                    I remember there was discussions of namespaces but this seems to be a bit conflicted because if this should be in base::internal StrictNumeric should declare itself there.

                                    See for example how we redeclare things in [PartitionLock](https://source.chromium.org/chromium/chromium/src/+/main:base/allocator/partition_allocator/src/partition_alloc/partition_lock.h;l=181-188;drc=e72a72ba9fe98e14b9d255722b7704ae84f5b8df), but should we just remove partition_alloc::internal for partition_alloc::base::internal?

                                    Sergio Solano

                                    Sorry, I introduced partition_alloc::base by mistake in an earlier patch. I hope my understanding of namespaces is better now. I've changed the CL to the pre-existing partition_alloc::internal::base namespace. Now there is no need for StrictNumeric aliases.

                                    File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_unittest.cc
                                    Line 42, Patchset 34:// Rationale: Death tests rely on Chromium-specific build config macros.

                                    // Removing them avoids pulling in those external dependencies just to
                                    // make the tests run reliably.
                                    Stephen Nusko . resolved

                                    PartitionAlloc has `PA_USE_DEATH_TESTS`, I'll take a look but could you expand one what sort of BUILD config macros?

                                    Stephen Nusko

                                    For OutOfBoundsDeath test, could you just do

                                    ```
                                    #if PA_USE_DEATH_TESTS
                                    TEST(PASpanTest, OutOfBoundsDeath) {
                                    constexpr span<int, 0> kEmptySpan;
                                    EXPECT_DEATH({kEmptySpan.first(1u);}, "");
                                    }
                                    #endif // PA_USE_DEATH_TESTS
                                    ```

                                    ?

                                    Sergio Solano

                                    Done

                                    Line 80, Patchset 34: // Tests for span(It, EndOrSize) deduction guide.

                                    {
                                    const std::vector<int> v;
                                    static_assert(
                                    std::is_same_v<decltype(span(v.cbegin(), v.size())), span<const int>>);
                                    static_assert(
                                    std::is_same_v<decltype(span(v.begin(), v.size())), span<const int>>);
                                    static_assert(
                                    std::is_same_v<decltype(span(v.data(), v.size())), span<const int>>);
                                    }

                                    {
                                    std::vector<int> v;
                                    static_assert(
                                    std::is_same_v<decltype(span(v.cbegin(), v.size())), span<const int>>);
                                    static_assert(
                                    std::is_same_v<decltype(span(v.begin(), v.size())), span<int>>);
                                    static_assert(
                                    std::is_same_v<decltype(span(v.data(), v.size())), span<int>>);
                                    }
                                    }
                                    Stephen Nusko . resolved

                                    This test was greatly reduced, but it only used standard std types rational given in number 6 doesn't apply. For example:

                                    I.E. all of these seem trival to have in partitionAlloc as well: https://source.chromium.org/chromium/chromium/src/+/main:base/containers/span_unittest.cc;l=85-184;drc=9a040b86879feaa0d33e564776741f4729e5c4d1

                                    Sergio Solano

                                    I've re-reviewed the original base/containers/span_unittest.cc and realized that my simplification went too far. I have restored all the tests that required no new dependencies (I've still omitted the once that require base::cstring_view or Abseil). I've also updated the comment at the top of the file to reflect the set of omissions.

                                    Line 111, Patchset 34:
                                    Stephen Nusko . resolved

                                    ConstructFromDataAndSize again doesn't seem to fall into number 6, I don't see why we couldn't keep it?

                                    ConstructFromDataAndZeroSize has a DEATH check but if you use

                                    ```

                                    #if PA_USE_DEATH_TESTS
                                    PA_EXPECT_DCHECK_DEATH(({ PA_UNSAFE_BUFFERS(span<char>(nullptr_to_char, 123u)); });
                                    #endif
                                    ```
                                    Sergio Solano

                                    Done

                                    Line 133, Patchset 34: std::vector<int> vector = {1, 1, 2, 3, 5, 8};
                                    Stephen Nusko . resolved

                                    This removed the construct from empty

                                    ```
                                    constexpr int* kNull = nullptr;
                                    constexpr span<int> UNSAFE_BUFFERS(empty_span(kNull, kNull));
                                    EXPECT_TRUE(empty_span.empty());
                                    EXPECT_EQ(nullptr, empty_span.data());
                                    ```

                                    Do you mind going through this and explaining a bit clearer why you removed tests you did? This one seems like it would work just fine?

                                    Sergio Solano

                                    Sorry, I did some unnecessary omissions, hope the current state is better. Thanks for the review, it's helping me understand a bunch.

                                    Open in Gerrit

                                    Related details

                                    Attention is currently required from:
                                    • Arthur Sonzogni
                                    • Stephen Nusko
                                    Submit Requirements:
                                      • requirement satisfiedCode-Coverage
                                      • requirement is not satisfiedCode-Owners
                                      • requirement is not satisfiedCode-Review
                                      • requirement is not satisfiedReview-Enforcement
                                      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                      Gerrit-MessageType: comment
                                      Gerrit-Project: chromium/src
                                      Gerrit-Branch: main
                                      Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                                      Gerrit-Change-Number: 7517264
                                      Gerrit-PatchSet: 37
                                      Gerrit-Owner: Sergio Solano <sergio...@google.com>
                                      Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                                      Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                                      Gerrit-Reviewer: Stephen Nusko <nus...@chromium.org>
                                      Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                                      Gerrit-CC: Bryan Enrique Gonzalez <bryanen...@google.com>
                                      Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                                      Gerrit-CC: Kentaro Hara <har...@chromium.org>
                                      Gerrit-Attention: Stephen Nusko <nus...@chromium.org>
                                      Gerrit-Attention: Arthur Sonzogni <arthurs...@chromium.org>
                                      Gerrit-Comment-Date: Tue, 17 Mar 2026 03:40:17 +0000
                                      satisfied_requirement
                                      unsatisfied_requirement
                                      open
                                      diffy

                                      Stephen Nusko (Gerrit)

                                      unread,
                                      Mar 17, 2026, 12:48:53 AMMar 17
                                      to Sergio Solano, Bryan Enrique Gonzalez, Code Review Nudger, Arthur Sonzogni, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                                      Attention needed from Arthur Sonzogni and Sergio Solano

                                      Stephen Nusko added 4 comments

                                      Patchset-level comments
                                      Stephen Nusko . resolved

                                      m

                                      File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_unittest.cc
                                      Line 80, Patchset 34: // Tests for span(It, EndOrSize) deduction guide.
                                      {
                                      const std::vector<int> v;
                                      static_assert(
                                      std::is_same_v<decltype(span(v.cbegin(), v.size())), span<const int>>);
                                      static_assert(
                                      std::is_same_v<decltype(span(v.begin(), v.size())), span<const int>>);
                                      static_assert(
                                      std::is_same_v<decltype(span(v.data(), v.size())), span<const int>>);
                                      }

                                      {
                                      std::vector<int> v;
                                      static_assert(
                                      std::is_same_v<decltype(span(v.cbegin(), v.size())), span<const int>>);
                                      static_assert(
                                      std::is_same_v<decltype(span(v.begin(), v.size())), span<int>>);
                                      static_assert(
                                      std::is_same_v<decltype(span(v.data(), v.size())), span<int>>);
                                      }
                                      }
                                      Stephen Nusko . unresolved

                                      This test was greatly reduced, but it only used standard std types rational given in number 6 doesn't apply. For example:

                                      I.E. all of these seem trival to have in partitionAlloc as well: https://source.chromium.org/chromium/chromium/src/+/main:base/containers/span_unittest.cc;l=85-184;drc=9a040b86879feaa0d33e564776741f4729e5c4d1

                                      Sergio Solano

                                      I've re-reviewed the original base/containers/span_unittest.cc and realized that my simplification went too far. I have restored all the tests that required no new dependencies (I've still omitted the once that require base::cstring_view or Abseil). I've also updated the comment at the top of the file to reflect the set of omissions.

                                      Stephen Nusko

                                      Thanks!

                                      Can you look at:

                                      *  `NoLifetimeWarnings` test
                                      * I think it should be able to be included? It was sandwitched inbetween the CString tests, but itself doesn't actually reference them.
                                      * `Subspan` tests, looks like a bunch of cases were deleted.
                                      * The matchers are just standard GTEST matches they should be able to be included. (ElementsAre & IsEmpty).
                                      * `Size` test
                                      * it was edited to remove the {} scopes which makes the names have to be unique, we can leave it as it was in the original to reduce churn.
                                      * `Empty` test
                                      * the span of end iterators is an empty span seems like a valid test which got deleted.
                                      * `AsWriteableByteSpan` test
                                      * the little endian test was deleted, it should continue to work? `EXPECT_EQ(byte_span[0u], 2);`
                                      * `OutOfBoundsDeath` test
                                      * stl algorithms should be fine to test as well right? So even though we don't support std::span we can still test std::copy, std::copy_n, etc I think?
                                      * `CopyFromNonoverlapping`
                                      * Looks like we removed some expectations that should work (ElementsAre is a standard GTEST matcher). The span_from_cstring can probably be replaced with an std::string_view or just a span<char> to do the same test.
                                      * `CopyFromConversion`
                                      * again looks like some tests were deleted that I don't understand the reason for (ElementsAre is a standard GTEST matcher).
                                      * `CompareEquality`, `CompareOrdered`, `GMockMacroCompatibility`, and`GTestMacroCompatability` tests
                                      * seems to have completely been removed but seems valid overall?
                                      Line 133, Patchset 34: std::vector<int> vector = {1, 1, 2, 3, 5, 8};
                                      Stephen Nusko . resolved

                                      This removed the construct from empty

                                      ```
                                      constexpr int* kNull = nullptr;
                                      constexpr span<int> UNSAFE_BUFFERS(empty_span(kNull, kNull));
                                      EXPECT_TRUE(empty_span.empty());
                                      EXPECT_EQ(nullptr, empty_span.data());
                                      ```

                                      Do you mind going through this and explaining a bit clearer why you removed tests you did? This one seems like it would work just fine?

                                      Sergio Solano

                                      Sorry, I did some unnecessary omissions, hope the current state is better. Thanks for the review, it's helping me understand a bunch.

                                      Stephen Nusko

                                      No worries, it is a large CL with a lot of moving parts 😊 Easy to delete things.

                                      Line 2531, Patchset 37 (Latest): (void)val_span;
                                      Stephen Nusko . unresolved

                                      What is this `(void)val_span;` doesn't seem to be in bases copy and I believe it doesn't do anything?

                                      Open in Gerrit

                                      Related details

                                      Attention is currently required from:
                                      • Arthur Sonzogni
                                      • Sergio Solano
                                      Submit Requirements:
                                        • requirement satisfiedCode-Coverage
                                        • requirement is not satisfiedCode-Owners
                                        • requirement is not satisfiedCode-Review
                                        • requirement is not satisfiedNo-Unresolved-Comments
                                        • requirement is not satisfiedReview-Enforcement
                                        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                        Gerrit-MessageType: comment
                                        Gerrit-Project: chromium/src
                                        Gerrit-Branch: main
                                        Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                                        Gerrit-Change-Number: 7517264
                                        Gerrit-PatchSet: 37
                                        Gerrit-Owner: Sergio Solano <sergio...@google.com>
                                        Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                                        Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                                        Gerrit-Reviewer: Stephen Nusko <nus...@chromium.org>
                                        Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                                        Gerrit-CC: Bryan Enrique Gonzalez <bryanen...@google.com>
                                        Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                                        Gerrit-CC: Kentaro Hara <har...@chromium.org>
                                        Gerrit-Attention: Sergio Solano <sergio...@google.com>
                                        Gerrit-Attention: Arthur Sonzogni <arthurs...@chromium.org>
                                        Gerrit-Comment-Date: Tue, 17 Mar 2026 04:48:20 +0000
                                        Gerrit-HasComments: Yes
                                        Gerrit-Has-Labels: No
                                        Comment-In-Reply-To: Stephen Nusko <nus...@chromium.org>
                                        Comment-In-Reply-To: Sergio Solano <sergio...@google.com>
                                        satisfied_requirement
                                        unsatisfied_requirement
                                        open
                                        diffy

                                        Sergio Solano (Gerrit)

                                        unread,
                                        Mar 20, 2026, 6:30:55 PM (13 days ago) Mar 20
                                        to Bryan Enrique Gonzalez, Code Review Nudger, Stephen Nusko, Arthur Sonzogni, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                                        Attention needed from Arthur Sonzogni and Stephen Nusko

                                        Sergio Solano added 3 comments

                                        Patchset-level comments
                                        File-level comment, Patchset 38 (Latest):
                                        Sergio Solano . resolved

                                        Hi, guys, new iteration. I hope this time the code is good enough.

                                        File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_unittest.cc
                                        Line 80, Patchset 34: // Tests for span(It, EndOrSize) deduction guide.
                                        {
                                        const std::vector<int> v;
                                        static_assert(
                                        std::is_same_v<decltype(span(v.cbegin(), v.size())), span<const int>>);
                                        static_assert(
                                        std::is_same_v<decltype(span(v.begin(), v.size())), span<const int>>);
                                        static_assert(
                                        std::is_same_v<decltype(span(v.data(), v.size())), span<const int>>);
                                        }

                                        {
                                        std::vector<int> v;
                                        static_assert(
                                        std::is_same_v<decltype(span(v.cbegin(), v.size())), span<const int>>);
                                        static_assert(
                                        std::is_same_v<decltype(span(v.begin(), v.size())), span<int>>);
                                        static_assert(
                                        std::is_same_v<decltype(span(v.data(), v.size())), span<int>>);
                                        }
                                        }
                                        Stephen Nusko . resolved
                                        Sergio Solano

                                        I have added all missing tests and parts you mention.

                                        About `span_from_cstring`, I added the test as is in base/containers/span_unittest.cc. `span_from_cstring` is defined in partition_alloc's span.h and all tests pass. Is it ok to have span_from_cstring in span.h or does it contradicts the idea of staying away from string utilities?

                                        Line 2531, Patchset 37: (void)val_span;
                                        Stephen Nusko . resolved

                                        What is this `(void)val_span;` doesn't seem to be in bases copy and I believe it doesn't do anything?

                                        Sergio Solano

                                        Done

                                        Open in Gerrit

                                        Related details

                                        Attention is currently required from:
                                        • Arthur Sonzogni
                                        • Stephen Nusko
                                        Submit Requirements:
                                          • requirement satisfiedCode-Coverage
                                          • requirement is not satisfiedCode-Owners
                                          • requirement is not satisfiedCode-Review
                                          • requirement is not satisfiedReview-Enforcement
                                          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                          Gerrit-MessageType: comment
                                          Gerrit-Project: chromium/src
                                          Gerrit-Branch: main
                                          Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                                          Gerrit-Change-Number: 7517264
                                          Gerrit-PatchSet: 38
                                          Gerrit-Owner: Sergio Solano <sergio...@google.com>
                                          Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                                          Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                                          Gerrit-Reviewer: Stephen Nusko <nus...@chromium.org>
                                          Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                                          Gerrit-CC: Bryan Enrique Gonzalez <bryanen...@google.com>
                                          Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                                          Gerrit-CC: Kentaro Hara <har...@chromium.org>
                                          Gerrit-Attention: Stephen Nusko <nus...@chromium.org>
                                          Gerrit-Attention: Arthur Sonzogni <arthurs...@chromium.org>
                                          Gerrit-Comment-Date: Fri, 20 Mar 2026 22:30:44 +0000
                                          satisfied_requirement
                                          unsatisfied_requirement
                                          open
                                          diffy

                                          Stephen Nusko (Gerrit)

                                          unread,
                                          Mar 23, 2026, 2:12:45 AM (11 days ago) Mar 23
                                          to Sergio Solano, Bryan Enrique Gonzalez, Code Review Nudger, Arthur Sonzogni, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                                          Attention needed from Arthur Sonzogni and Sergio Solano

                                          Stephen Nusko voted and added 4 comments

                                          Votes added by Stephen Nusko

                                          Code-Review+1

                                          4 comments

                                          Patchset-level comments
                                          Stephen Nusko . resolved

                                          Thanks for keeping at it. I think this looks reasonable to me.

                                          File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_unittest.cc
                                          Stephen Nusko

                                          If it is defined in span.h I think it seems reasonable to test it, and we probably should.

                                          If however you are asking should we remove this support completely because we don't suspect we'll do string manipulation... Maybe? I'm unsure what we will and what we won't use in this regards. however supporting a conversion from a string_view to a span does not itself really cross into a "string" utility so it would have to live in this file I think if we want it.

                                          Feel free to remove as per reason (5) at the top of the file.

                                          Line 759, Patchset 38 (Latest):
                                          static_assert(std::is_same_v<decltype(byte_span_from_ref(std::move(x))),
                                          span<const uint8_t, sizeof(int)>>);
                                          EXPECT_EQ(reinterpret_cast<const uint8_t*>(&x),
                                          byte_span_from_ref(std::move(x)).data());
                                          Stephen Nusko . unresolved

                                          This was added versus, base. Doesn't seem terrible, but also did you have a reason to add it? Seems like an additional test of as_bytes?

                                          Line 2005, Patchset 38 (Latest): partition_alloc::internal::base::debug::Alias(&fixed_span[3u]));
                                          Stephen Nusko . unresolved

                                          nit: we are already in `partition_alloc::internal::base` so this should only need `debug::Alias`. Please check other locations as well.

                                          Open in Gerrit

                                          Related details

                                          Attention is currently required from:
                                          • Arthur Sonzogni
                                          • Sergio Solano
                                          Submit Requirements:
                                            • requirement satisfiedCode-Coverage
                                            • requirement is not satisfiedCode-Owners
                                            • requirement is not satisfiedCode-Review
                                            • requirement is not satisfiedNo-Unresolved-Comments
                                            • requirement satisfiedReview-Enforcement
                                            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                            Gerrit-MessageType: comment
                                            Gerrit-Project: chromium/src
                                            Gerrit-Branch: main
                                            Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                                            Gerrit-Change-Number: 7517264
                                            Gerrit-PatchSet: 38
                                            Gerrit-Owner: Sergio Solano <sergio...@google.com>
                                            Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                                            Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                                            Gerrit-Reviewer: Stephen Nusko <nus...@chromium.org>
                                            Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                                            Gerrit-CC: Bryan Enrique Gonzalez <bryanen...@google.com>
                                            Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                                            Gerrit-CC: Kentaro Hara <har...@chromium.org>
                                            Gerrit-Attention: Sergio Solano <sergio...@google.com>
                                            Gerrit-Attention: Arthur Sonzogni <arthurs...@chromium.org>
                                            Gerrit-Comment-Date: Mon, 23 Mar 2026 06:12:32 +0000
                                            Gerrit-HasComments: Yes
                                            Gerrit-Has-Labels: Yes
                                            satisfied_requirement
                                            unsatisfied_requirement
                                            open
                                            diffy

                                            Sergio Solano (Gerrit)

                                            unread,
                                            Mar 23, 2026, 12:59:04 PM (10 days ago) Mar 23
                                            to Stephen Nusko, Bryan Enrique Gonzalez, Code Review Nudger, Arthur Sonzogni, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                                            Attention needed from Arthur Sonzogni and Stephen Nusko

                                            Sergio Solano added 3 comments

                                            Patchset-level comments
                                            File-level comment, Patchset 39 (Latest):
                                            Sergio Solano . resolved

                                            Hi, guys, I've fixed the (hopefully) last two comments.

                                            File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_unittest.cc

                                            static_assert(std::is_same_v<decltype(byte_span_from_ref(std::move(x))),
                                            span<const uint8_t, sizeof(int)>>);
                                            EXPECT_EQ(reinterpret_cast<const uint8_t*>(&x),
                                            byte_span_from_ref(std::move(x)).data());
                                            Stephen Nusko . resolved

                                            This was added versus, base. Doesn't seem terrible, but also did you have a reason to add it? Seems like an additional test of as_bytes?

                                            Sergio Solano

                                            Now I don't see a reason to add it since there is TEST AsBytes. I'll delete it. Sorry for the unjustified diffs between this and base.

                                            Line 2005, Patchset 38: partition_alloc::internal::base::debug::Alias(&fixed_span[3u]));
                                            Stephen Nusko . resolved

                                            nit: we are already in `partition_alloc::internal::base` so this should only need `debug::Alias`. Please check other locations as well.

                                            Sergio Solano

                                            Done

                                            Open in Gerrit

                                            Related details

                                            Attention is currently required from:
                                            • Arthur Sonzogni
                                            • Stephen Nusko
                                            Submit Requirements:
                                              • requirement satisfiedCode-Coverage
                                              • requirement is not satisfiedCode-Owners
                                              • requirement is not satisfiedCode-Review
                                              • requirement is not satisfiedReview-Enforcement
                                              Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                              Gerrit-MessageType: comment
                                              Gerrit-Project: chromium/src
                                              Gerrit-Branch: main
                                              Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                                              Gerrit-Change-Number: 7517264
                                              Gerrit-PatchSet: 39
                                              Gerrit-Owner: Sergio Solano <sergio...@google.com>
                                              Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                                              Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                                              Gerrit-Reviewer: Stephen Nusko <nus...@chromium.org>
                                              Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                                              Gerrit-CC: Bryan Enrique Gonzalez <bryanen...@google.com>
                                              Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                                              Gerrit-CC: Kentaro Hara <har...@chromium.org>
                                              Gerrit-Attention: Stephen Nusko <nus...@chromium.org>
                                              Gerrit-Attention: Arthur Sonzogni <arthurs...@chromium.org>
                                              Gerrit-Comment-Date: Mon, 23 Mar 2026 16:58:56 +0000
                                              satisfied_requirement
                                              unsatisfied_requirement
                                              open
                                              diffy

                                              Arthur Sonzogni (Gerrit)

                                              unread,
                                              Mar 23, 2026, 1:51:27 PM (10 days ago) Mar 23
                                              to Sergio Solano, Stephen Nusko, Bryan Enrique Gonzalez, Code Review Nudger, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                                              Attention needed from Sergio Solano and Stephen Nusko

                                              Arthur Sonzogni added 7 comments

                                              Patchset-level comments
                                              Arthur Sonzogni . resolved

                                              Excellent!

                                              File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/checked_iterators.h
                                              Line 219, Patchset 39 (Latest): // allocation (it is not the pointer toone-past-the-end).
                                              Arthur Sonzogni . unresolved

                                              nit: "to one"

                                              File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_unittest.cc
                                              Line 1076, Patchset 39 (Latest): // `array` has three elmenents, so `span` has three elements, so
                                              Arthur Sonzogni . unresolved

                                              typo

                                              Line 1086, Patchset 39 (Latest): // `array` has three elmenents, so `span` has three elements, so
                                              Arthur Sonzogni . unresolved

                                              typo

                                              Line 1095, Patchset 39 (Latest): // `array` has three elmenents, so `span` has three elements, so
                                              Arthur Sonzogni . unresolved

                                              typo

                                              File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/types/to_address.h
                                              Line 11, Patchset 39 (Latest):// SFINAE-compatible wrapper for `std::to_address()`.
                                              //
                                              // The standard does not require `std::to_address()` to be SFINAE-compatible
                                              // when code attempts instantiation with non-pointer-like types, and libstdc++'s
                                              // implementation hard errors. For the sake of templated code that wants simple,
                                              // unified handling, Chromium instead uses this wrapper, which provides that
                                              // guarantee. This allows code to use "`to_address()` would be valid here" as a
                                              // constraint to detect pointer-like types.
                                              namespace partition_alloc::internal::base {

                                              // Note that calling `std::to_address()` with a function pointer renders the
                                              // program ill-formed.
                                              template <typename T>
                                              requires(!std::is_function_v<T>)
                                              constexpr T* to_address(T* p) noexcept {
                                              return p;
                                              }

                                              // These constraints cover the cases where `std::to_address()`'s fancy pointer
                                              // overload is well-specified.
                                              template <typename P>
                                              requires requires(const P& p) { std::pointer_traits<P>::to_address(p); } ||
                                              requires(const P& p) { p.operator->(); }
                                              constexpr auto to_address(const P& p) noexcept {
                                              return std::to_address(p);
                                              }
                                              Arthur Sonzogni . unresolved

                                              I would have liked to avoid requesting the review of one more reviewer.

                                              Maybe the definition of `to_address` could be part of span.h private functions?

                                              Then you can remove the PRESUBMIT change, the "to_address.h" file.

                                              File base/allocator/partition_allocator/src/partition_alloc/use_death_tests.h
                                              Line 25, Patchset 39 (Latest):// We also exclude Android because PartitionAlloc's death test macros are
                                              // disabled there (see partition_alloc_base/test/gtest_util.h).
                                              Arthur Sonzogni . unresolved

                                              I am not sure to understand. Do we need to even use `PA_USE_DEATH_TESTS`?

                                              I believe this is a legacy from chromium. If the test use the macro from the file you are referencing: partition_alloc/partition_alloc_base/test/gtest_util.h
                                              then the behavior of the macro becomes a no-op under Android.

                                              I was thinking span.h could avoid using it (a straight removal if the #if, but keep the content)

                                              Open in Gerrit

                                              Related details

                                              Attention is currently required from:
                                              • Sergio Solano
                                              • Stephen Nusko
                                              Submit Requirements:
                                                • requirement satisfiedCode-Coverage
                                                • requirement is not satisfiedCode-Owners
                                                • requirement is not satisfiedCode-Review
                                                • requirement is not satisfiedNo-Unresolved-Comments
                                                • requirement is not satisfiedReview-Enforcement
                                                Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                                Gerrit-MessageType: comment
                                                Gerrit-Project: chromium/src
                                                Gerrit-Branch: main
                                                Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                                                Gerrit-Change-Number: 7517264
                                                Gerrit-PatchSet: 39
                                                Gerrit-Owner: Sergio Solano <sergio...@google.com>
                                                Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                                                Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                                                Gerrit-Reviewer: Stephen Nusko <nus...@chromium.org>
                                                Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                                                Gerrit-CC: Bryan Enrique Gonzalez <bryanen...@google.com>
                                                Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                                                Gerrit-CC: Kentaro Hara <har...@chromium.org>
                                                Gerrit-Attention: Stephen Nusko <nus...@chromium.org>
                                                Gerrit-Attention: Sergio Solano <sergio...@google.com>
                                                Gerrit-Comment-Date: Mon, 23 Mar 2026 17:51:04 +0000
                                                Gerrit-HasComments: Yes
                                                Gerrit-Has-Labels: No
                                                satisfied_requirement
                                                unsatisfied_requirement
                                                open
                                                diffy

                                                Stephen Nusko (Gerrit)

                                                unread,
                                                Mar 24, 2026, 2:38:00 AM (10 days ago) Mar 24
                                                to Sergio Solano, Bryan Enrique Gonzalez, Code Review Nudger, Arthur Sonzogni, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                                                Attention needed from Sergio Solano

                                                Stephen Nusko added 1 comment

                                                File base/allocator/partition_allocator/src/partition_alloc/use_death_tests.h
                                                Line 25, Patchset 39 (Latest):// We also exclude Android because PartitionAlloc's death test macros are
                                                // disabled there (see partition_alloc_base/test/gtest_util.h).
                                                Arthur Sonzogni . unresolved

                                                I am not sure to understand. Do we need to even use `PA_USE_DEATH_TESTS`?

                                                I believe this is a legacy from chromium. If the test use the macro from the file you are referencing: partition_alloc/partition_alloc_base/test/gtest_util.h
                                                then the behavior of the macro becomes a no-op under Android.

                                                I was thinking span.h could avoid using it (a straight removal if the #if, but keep the content)

                                                Stephen Nusko

                                                +1 I don't think we should need to switch this, there should already be some proper combination for the exclusion we want to handle.

                                                I think I missed that this condition was modified.

                                                Open in Gerrit

                                                Related details

                                                Attention is currently required from:
                                                • Sergio Solano
                                                Gerrit-Attention: Sergio Solano <sergio...@google.com>
                                                Gerrit-Comment-Date: Tue, 24 Mar 2026 06:37:50 +0000
                                                Gerrit-HasComments: Yes
                                                Gerrit-Has-Labels: No
                                                Comment-In-Reply-To: Arthur Sonzogni <arthurs...@chromium.org>
                                                satisfied_requirement
                                                unsatisfied_requirement
                                                open
                                                diffy

                                                Sergio Solano (Gerrit)

                                                unread,
                                                Mar 25, 2026, 1:25:17 PM (8 days ago) Mar 25
                                                to Stephen Nusko, Bryan Enrique Gonzalez, Code Review Nudger, Arthur Sonzogni, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                                                Attention needed from Arthur Sonzogni and Stephen Nusko

                                                Sergio Solano added 8 comments

                                                Patchset-level comments
                                                File-level comment, Patchset 41 (Latest):
                                                Sergio Solano . resolved

                                                Hi guys, here is the new version. It includes a refactored to_address.h file that avoids using `std::to_address` to avoid changes in PRESUBMIT.py. If you agree we could use this version and maybe consider applying the same change in base.

                                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/checked_iterators.h
                                                Line 219, Patchset 39: // allocation (it is not the pointer toone-past-the-end).
                                                Arthur Sonzogni . resolved

                                                nit: "to one"

                                                Sergio Solano

                                                Done

                                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_unittest.cc
                                                Line 1076, Patchset 39: // `array` has three elmenents, so `span` has three elements, so
                                                Arthur Sonzogni . resolved

                                                typo

                                                Sergio Solano

                                                Done

                                                Line 1086, Patchset 39: // `array` has three elmenents, so `span` has three elements, so
                                                Arthur Sonzogni . resolved

                                                typo

                                                Sergio Solano

                                                Done

                                                Line 1095, Patchset 39: // `array` has three elmenents, so `span` has three elements, so
                                                Arthur Sonzogni . resolved

                                                typo

                                                Sergio Solano

                                                Done

                                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/types/to_address.h
                                                Line 11, Patchset 39:// SFINAE-compatible wrapper for `std::to_address()`.

                                                //
                                                // The standard does not require `std::to_address()` to be SFINAE-compatible
                                                // when code attempts instantiation with non-pointer-like types, and libstdc++'s
                                                // implementation hard errors. For the sake of templated code that wants simple,
                                                // unified handling, Chromium instead uses this wrapper, which provides that
                                                // guarantee. This allows code to use "`to_address()` would be valid here" as a
                                                // constraint to detect pointer-like types.
                                                namespace partition_alloc::internal::base {

                                                // Note that calling `std::to_address()` with a function pointer renders the
                                                // program ill-formed.
                                                template <typename T>
                                                requires(!std::is_function_v<T>)
                                                constexpr T* to_address(T* p) noexcept {
                                                return p;
                                                }

                                                // These constraints cover the cases where `std::to_address()`'s fancy pointer
                                                // overload is well-specified.
                                                template <typename P>
                                                requires requires(const P& p) { std::pointer_traits<P>::to_address(p); } ||
                                                requires(const P& p) { p.operator->(); }
                                                constexpr auto to_address(const P& p) noexcept {
                                                return std::to_address(p);
                                                }
                                                Arthur Sonzogni . resolved

                                                I would have liked to avoid requesting the review of one more reviewer.

                                                Maybe the definition of `to_address` could be part of span.h private functions?

                                                Then you can remove the PRESUBMIT change, the "to_address.h" file.

                                                Sergio Solano

                                                Done, i used the internal namespace instead of a private member function so that both the fixed-extent and dynamic-extent span definitions can use it without duplication.

                                                Line 11, Patchset 39:// SFINAE-compatible wrapper for `std::to_address()`.

                                                //
                                                // The standard does not require `std::to_address()` to be SFINAE-compatible
                                                // when code attempts instantiation with non-pointer-like types, and libstdc++'s
                                                // implementation hard errors. For the sake of templated code that wants simple,
                                                // unified handling, Chromium instead uses this wrapper, which provides that
                                                // guarantee. This allows code to use "`to_address()` would be valid here" as a
                                                // constraint to detect pointer-like types.
                                                namespace partition_alloc::internal::base {

                                                // Note that calling `std::to_address()` with a function pointer renders the
                                                // program ill-formed.
                                                template <typename T>
                                                requires(!std::is_function_v<T>)
                                                constexpr T* to_address(T* p) noexcept {
                                                return p;
                                                }

                                                // These constraints cover the cases where `std::to_address()`'s fancy pointer
                                                // overload is well-specified.
                                                template <typename P>
                                                requires requires(const P& p) { std::pointer_traits<P>::to_address(p); } ||
                                                requires(const P& p) { p.operator->(); }
                                                constexpr auto to_address(const P& p) noexcept {
                                                return std::to_address(p);
                                                }
                                                Arthur Sonzogni . resolved

                                                I would have liked to avoid requesting the review of one more reviewer.

                                                Maybe the definition of `to_address` could be part of span.h private functions?

                                                Then you can remove the PRESUBMIT change, the "to_address.h" file.

                                                Sergio Solano

                                                Done. I've switched the implementation to the recursive version we discussed. This version avoids the literal std::to_address call and the need to modify PRESUBMIT.py.

                                                I've also updated the comments to_address.h to also bypass the automated presubmit check.

                                                File base/allocator/partition_allocator/src/partition_alloc/use_death_tests.h
                                                Line 25, Patchset 39:// We also exclude Android because PartitionAlloc's death test macros are

                                                // disabled there (see partition_alloc_base/test/gtest_util.h).
                                                Arthur Sonzogni . resolved

                                                I am not sure to understand. Do we need to even use `PA_USE_DEATH_TESTS`?

                                                I believe this is a legacy from chromium. If the test use the macro from the file you are referencing: partition_alloc/partition_alloc_base/test/gtest_util.h
                                                then the behavior of the macro becomes a no-op under Android.

                                                I was thinking span.h could avoid using it (a straight removal if the #if, but keep the content)

                                                Stephen Nusko

                                                +1 I don't think we should need to switch this, there should already be some proper combination for the exclusion we want to handle.

                                                I think I missed that this condition was modified.

                                                Sergio Solano

                                                Thanks. At some point i ran into Android error and that fixed it, somehow i cannot recreate the errors.

                                                Open in Gerrit

                                                Related details

                                                Attention is currently required from:
                                                • Arthur Sonzogni
                                                • Stephen Nusko
                                                Submit Requirements:
                                                • requirement satisfiedCode-Coverage
                                                • requirement satisfiedCode-Owners
                                                • requirement is not satisfiedCode-Review
                                                • requirement is not satisfiedReview-Enforcement
                                                Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                                Gerrit-MessageType: comment
                                                Gerrit-Project: chromium/src
                                                Gerrit-Branch: main
                                                Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                                                Gerrit-Change-Number: 7517264
                                                Gerrit-PatchSet: 41
                                                Gerrit-Owner: Sergio Solano <sergio...@google.com>
                                                Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                                                Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                                                Gerrit-Reviewer: Stephen Nusko <nus...@chromium.org>
                                                Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                                                Gerrit-CC: Bryan Enrique Gonzalez <bryanen...@google.com>
                                                Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                                                Gerrit-CC: Kentaro Hara <har...@chromium.org>
                                                Gerrit-Attention: Stephen Nusko <nus...@chromium.org>
                                                Gerrit-Attention: Arthur Sonzogni <arthurs...@chromium.org>
                                                Gerrit-Comment-Date: Wed, 25 Mar 2026 17:25:07 +0000
                                                Gerrit-HasComments: Yes
                                                Gerrit-Has-Labels: No
                                                satisfied_requirement
                                                unsatisfied_requirement
                                                open
                                                diffy

                                                Stephen Nusko (Gerrit)

                                                unread,
                                                Mar 26, 2026, 1:13:06 AM (8 days ago) Mar 26
                                                to Sergio Solano, Bryan Enrique Gonzalez, Code Review Nudger, Arthur Sonzogni, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                                                Attention needed from Arthur Sonzogni and Sergio Solano

                                                Stephen Nusko voted and added 2 comments

                                                Votes added by Stephen Nusko

                                                Code-Review+1

                                                2 comments

                                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_unittest.cc
                                                Line 1988, Patchset 41 (Latest): PA_EXPECT_CHECK_DEATH(debug::Alias(&fixed_span[3u]));
                                                PA_EXPECT_CHECK_DEATH(debug::Alias(&dyn_span[3u]));
                                                PA_EXPECT_CHECK_DEATH(debug::Alias(fixed_span.get_at(3u)));
                                                PA_EXPECT_CHECK_DEATH(debug::Alias(dyn_span.get_at(3u)));
                                                Stephen Nusko . unresolved

                                                If we no longer need to have a macro around it, can you move this back up

                                                So that we have the EXPECT_CHECK_DEATH of the span up with the other accesses?

                                                File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/types/to_address.h

                                                Done. I've switched the implementation to the recursive version we discussed. This version avoids the literal std::to_address call and the need to modify PRESUBMIT.py.

                                                I've also updated the comments to_address.h to also bypass the automated presubmit check.

                                                Stephen Nusko

                                                This is very weird, couldn't we just send a separate CL just to add to_address and the presubmit and then import span?

                                                But I'm fine with landing this as is and then perhaps as a follow up getting the presubmit exception in a separate review?

                                                Open in Gerrit

                                                Related details

                                                Attention is currently required from:
                                                • Arthur Sonzogni
                                                • Sergio Solano
                                                Submit Requirements:
                                                  • requirement satisfiedCode-Coverage
                                                  • requirement satisfiedCode-Owners
                                                  • requirement is not satisfiedCode-Review
                                                  • requirement is not satisfiedNo-Unresolved-Comments
                                                  • requirement satisfiedReview-Enforcement
                                                  Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                                  Gerrit-MessageType: comment
                                                  Gerrit-Project: chromium/src
                                                  Gerrit-Branch: main
                                                  Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                                                  Gerrit-Change-Number: 7517264
                                                  Gerrit-PatchSet: 41
                                                  Gerrit-Owner: Sergio Solano <sergio...@google.com>
                                                  Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                                                  Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                                                  Gerrit-Reviewer: Stephen Nusko <nus...@chromium.org>
                                                  Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                                                  Gerrit-CC: Bryan Enrique Gonzalez <bryanen...@google.com>
                                                  Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                                                  Gerrit-CC: Kentaro Hara <har...@chromium.org>
                                                  Gerrit-Attention: Sergio Solano <sergio...@google.com>
                                                  Gerrit-Attention: Arthur Sonzogni <arthurs...@chromium.org>
                                                  Gerrit-Comment-Date: Thu, 26 Mar 2026 05:12:53 +0000
                                                  Gerrit-HasComments: Yes
                                                  Gerrit-Has-Labels: Yes
                                                  satisfied_requirement
                                                  unsatisfied_requirement
                                                  open
                                                  diffy

                                                  Sergio Solano (Gerrit)

                                                  unread,
                                                  Mar 26, 2026, 1:22:05 AM (8 days ago) Mar 26
                                                  to Stephen Nusko, Bryan Enrique Gonzalez, Code Review Nudger, Arthur Sonzogni, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                                                  Attention needed from Arthur Sonzogni and Stephen Nusko

                                                  Sergio Solano added 2 comments

                                                  Patchset-level comments
                                                  File-level comment, Patchset 42 (Latest):
                                                  Sergio Solano . resolved

                                                  Done.

                                                  File base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_unittest.cc
                                                  Line 1988, Patchset 41: PA_EXPECT_CHECK_DEATH(debug::Alias(&fixed_span[3u]));

                                                  PA_EXPECT_CHECK_DEATH(debug::Alias(&dyn_span[3u]));
                                                  PA_EXPECT_CHECK_DEATH(debug::Alias(fixed_span.get_at(3u)));
                                                  PA_EXPECT_CHECK_DEATH(debug::Alias(dyn_span.get_at(3u)));
                                                  Stephen Nusko . resolved

                                                  If we no longer need to have a macro around it, can you move this back up

                                                  So that we have the EXPECT_CHECK_DEATH of the span up with the other accesses?

                                                  Sergio Solano

                                                  Done

                                                  Open in Gerrit

                                                  Related details

                                                  Attention is currently required from:
                                                  • Arthur Sonzogni
                                                  • Stephen Nusko
                                                  Submit Requirements:
                                                    • requirement satisfiedCode-Coverage
                                                    • requirement satisfiedCode-Owners
                                                    • requirement is not satisfiedCode-Review
                                                    • requirement is not satisfiedReview-Enforcement
                                                    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                                    Gerrit-MessageType: comment
                                                    Gerrit-Project: chromium/src
                                                    Gerrit-Branch: main
                                                    Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                                                    Gerrit-Change-Number: 7517264
                                                    Gerrit-PatchSet: 42
                                                    Gerrit-Owner: Sergio Solano <sergio...@google.com>
                                                    Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                                                    Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                                                    Gerrit-Reviewer: Stephen Nusko <nus...@chromium.org>
                                                    Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                                                    Gerrit-CC: Bryan Enrique Gonzalez <bryanen...@google.com>
                                                    Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                                                    Gerrit-CC: Kentaro Hara <har...@chromium.org>
                                                    Gerrit-Attention: Stephen Nusko <nus...@chromium.org>
                                                    Gerrit-Attention: Arthur Sonzogni <arthurs...@chromium.org>
                                                    Gerrit-Comment-Date: Thu, 26 Mar 2026 05:21:54 +0000
                                                    satisfied_requirement
                                                    unsatisfied_requirement
                                                    open
                                                    diffy

                                                    Arthur Sonzogni (Gerrit)

                                                    unread,
                                                    Mar 26, 2026, 6:07:10 AM (8 days ago) Mar 26
                                                    to Sergio Solano, Stephen Nusko, Bryan Enrique Gonzalez, Code Review Nudger, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                                                    Attention needed from Sergio Solano and Stephen Nusko

                                                    Arthur Sonzogni voted Code-Review+1

                                                    Code-Review+1
                                                    Open in Gerrit

                                                    Related details

                                                    Attention is currently required from:
                                                    • Sergio Solano
                                                    • Stephen Nusko
                                                    Submit Requirements:
                                                      • requirement satisfiedCode-Coverage
                                                      • requirement satisfiedCode-Owners
                                                      • requirement is not satisfiedCode-Review
                                                      • requirement satisfiedReview-Enforcement
                                                      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                                      Gerrit-MessageType: comment
                                                      Gerrit-Project: chromium/src
                                                      Gerrit-Branch: main
                                                      Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                                                      Gerrit-Change-Number: 7517264
                                                      Gerrit-PatchSet: 42
                                                      Gerrit-Owner: Sergio Solano <sergio...@google.com>
                                                      Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                                                      Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                                                      Gerrit-Reviewer: Stephen Nusko <nus...@chromium.org>
                                                      Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                                                      Gerrit-CC: Bryan Enrique Gonzalez <bryanen...@google.com>
                                                      Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                                                      Gerrit-CC: Kentaro Hara <har...@chromium.org>
                                                      Gerrit-Attention: Stephen Nusko <nus...@chromium.org>
                                                      Gerrit-Attention: Sergio Solano <sergio...@google.com>
                                                      Gerrit-Comment-Date: Thu, 26 Mar 2026 10:06:52 +0000
                                                      Gerrit-HasComments: No
                                                      Gerrit-Has-Labels: Yes
                                                      satisfied_requirement
                                                      unsatisfied_requirement
                                                      open
                                                      diffy

                                                      Stephen Nusko (Gerrit)

                                                      unread,
                                                      Mar 26, 2026, 10:47:43 PM (7 days ago) Mar 26
                                                      to Sergio Solano, Arthur Sonzogni, Bryan Enrique Gonzalez, Code Review Nudger, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org
                                                      Attention needed from Sergio Solano

                                                      Stephen Nusko voted and added 1 comment

                                                      Votes added by Stephen Nusko

                                                      Code-Review+1

                                                      1 comment

                                                      Patchset-level comments
                                                      Stephen Nusko . resolved

                                                      🎉 YAY!

                                                      Open in Gerrit

                                                      Related details

                                                      Attention is currently required from:
                                                      • Sergio Solano
                                                      Submit Requirements:
                                                        • requirement satisfiedCode-Coverage
                                                        • requirement satisfiedCode-Owners
                                                        • requirement satisfiedCode-Review
                                                        • requirement satisfiedReview-Enforcement
                                                        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                                        Gerrit-MessageType: comment
                                                        Gerrit-Project: chromium/src
                                                        Gerrit-Branch: main
                                                        Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                                                        Gerrit-Change-Number: 7517264
                                                        Gerrit-PatchSet: 42
                                                        Gerrit-Owner: Sergio Solano <sergio...@google.com>
                                                        Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                                                        Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                                                        Gerrit-Reviewer: Stephen Nusko <nus...@chromium.org>
                                                        Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                                                        Gerrit-CC: Bryan Enrique Gonzalez <bryanen...@google.com>
                                                        Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                                                        Gerrit-CC: Kentaro Hara <har...@chromium.org>
                                                        Gerrit-Attention: Sergio Solano <sergio...@google.com>
                                                        Gerrit-Comment-Date: Fri, 27 Mar 2026 02:47:08 +0000
                                                        Gerrit-HasComments: Yes
                                                        Gerrit-Has-Labels: Yes
                                                        satisfied_requirement
                                                        open
                                                        diffy

                                                        Sergio Solano (Gerrit)

                                                        unread,
                                                        Mar 26, 2026, 11:03:17 PM (7 days ago) Mar 26
                                                        to Stephen Nusko, Arthur Sonzogni, Bryan Enrique Gonzalez, Code Review Nudger, AyeAye, Arthur Sonzogni, Chromium LUCI CQ, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org

                                                        Sergio Solano voted Commit-Queue+2

                                                        Commit-Queue+2
                                                        Open in Gerrit

                                                        Related details

                                                        Attention set is empty
                                                        Submit Requirements:
                                                        • requirement satisfiedCode-Coverage
                                                        • requirement satisfiedCode-Owners
                                                        • requirement satisfiedCode-Review
                                                        • requirement satisfiedReview-Enforcement
                                                        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                                        Gerrit-MessageType: comment
                                                        Gerrit-Project: chromium/src
                                                        Gerrit-Branch: main
                                                        Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                                                        Gerrit-Change-Number: 7517264
                                                        Gerrit-PatchSet: 42
                                                        Gerrit-Owner: Sergio Solano <sergio...@google.com>
                                                        Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                                                        Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                                                        Gerrit-Reviewer: Stephen Nusko <nus...@chromium.org>
                                                        Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                                                        Gerrit-CC: Bryan Enrique Gonzalez <bryanen...@google.com>
                                                        Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                                                        Gerrit-CC: Kentaro Hara <har...@chromium.org>
                                                        Gerrit-Comment-Date: Fri, 27 Mar 2026 03:03:05 +0000
                                                        Gerrit-HasComments: No
                                                        Gerrit-Has-Labels: Yes
                                                        satisfied_requirement
                                                        open
                                                        diffy

                                                        Chromium LUCI CQ (Gerrit)

                                                        unread,
                                                        Mar 26, 2026, 11:06:34 PM (7 days ago) Mar 26
                                                        to Sergio Solano, Stephen Nusko, Arthur Sonzogni, Bryan Enrique Gonzalez, Code Review Nudger, AyeAye, Arthur Sonzogni, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org

                                                        Chromium LUCI CQ submitted the change

                                                        Change information

                                                        Commit message:
                                                        Making span.h available within partition_alloc.

                                                        Added span.h and span_unittests.cc with their dependencies.

                                                        Design doc: go/partition-alloc-spanification
                                                        BYPASS_RECITATION_REASON=Internal file copy from base to partition_alloc
                                                        Bug: 481768474
                                                        Bypass-Check-License: Moved files without licence changes.
                                                        Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                                                        Reviewed-by: Arthur Sonzogni <arthurs...@chromium.org>
                                                        Reviewed-by: Stephen Nusko <nus...@chromium.org>
                                                        Commit-Queue: Sergio Solano <sergio...@google.com>
                                                        Cr-Commit-Position: refs/heads/main@{#1605946}
                                                        Files:
                                                        • M base/allocator/partition_allocator/src/partition_alloc/BUILD.gn
                                                        • M base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h
                                                        • A base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/checked_iterators.h
                                                        • A base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span.h
                                                        • A base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_forward_internal.h
                                                        • A base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/containers/span_unittest.cc
                                                        • A base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/types/to_address.h
                                                        Change size: XL
                                                        Delta: 7 files changed, 5409 insertions(+), 3 deletions(-)
                                                        Branch: refs/heads/main
                                                        Submit Requirements:
                                                        • requirement satisfiedCode-Review: +1 by Arthur Sonzogni, +1 by Stephen Nusko
                                                        Open in Gerrit
                                                        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                                        Gerrit-MessageType: merged
                                                        Gerrit-Project: chromium/src
                                                        Gerrit-Branch: main
                                                        Gerrit-Change-Id: I214b046ab46ab59053b03e8ed7a473a0b238b906
                                                        Gerrit-Change-Number: 7517264
                                                        Gerrit-PatchSet: 43
                                                        Gerrit-Owner: Sergio Solano <sergio...@google.com>
                                                        Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
                                                        Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
                                                        Gerrit-Reviewer: Sergio Solano <sergio...@google.com>
                                                        Gerrit-Reviewer: Stephen Nusko <nus...@chromium.org>
                                                        Gerrit-CC: Arthur Sonzogni <arthurs...@google.com>
                                                        Gerrit-CC: Bryan Enrique Gonzalez <bryanen...@google.com>
                                                        open
                                                        diffy
                                                        satisfied_requirement

                                                        Ken Okada (Gerrit)

                                                        unread,
                                                        Mar 27, 2026, 2:54:58 AM (7 days ago) Mar 27
                                                        to Chromium LUCI CQ, Sergio Solano, Stephen Nusko, Arthur Sonzogni, Bryan Enrique Gonzalez, Code Review Nudger, AyeAye, Arthur Sonzogni, chromium...@chromium.org, Kentaro Hara, jshin...@chromium.org, bartek...@chromium.org, lize...@chromium.org, lizeb...@chromium.org, spang...@chromium.org, tracing...@chromium.org, wfh+...@chromium.org

                                                        Ken Okada has created a revert of this change

                                                        Related details

                                                        Attention set is empty
                                                        Submit Requirements:
                                                        • requirement satisfiedCode-Coverage
                                                        • requirement satisfiedCode-Owners
                                                        • requirement satisfiedCode-Review
                                                        • requirement satisfiedReview-Enforcement
                                                        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                                                        Gerrit-MessageType: revert
                                                        satisfied_requirement
                                                        open
                                                        diffy
                                                        Reply all
                                                        Reply to author
                                                        Forward
                                                        0 new messages