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

1 view
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 PM (12 days ago) Feb 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 AM (11 days ago) Feb 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 AM (9 days ago) Feb 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 AM (9 days ago) Feb 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 AM (8 days ago) Feb 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 AM (5 days ago) Feb 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 AM (4 days ago) Feb 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 PM (3 days ago) Feb 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 PM (3 days ago) Feb 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 AM (3 days ago) Feb 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
                                Reply all
                                Reply to author
                                Forward
                                0 new messages