Reland "[profiler] Add postfix to C++ objects in DevTools heap snapshot" [v8/v8 : main]

0 views
Skip to first unread message

Michael Lippautz (Gerrit)

unread,
Nov 14, 2025, 6:11:17 PMNov 14
to Andreas Haas, Igor Sheludko, V8 LUCI CQ, Dominik Inführ, AyeAye, oilpan-r...@chromium.org, devtools-...@chromium.org
Attention needed from Andreas Haas, Dominik Inführ and Igor Sheludko

Michael Lippautz added 1 comment

File src/profiler/heap-snapshot-generator.cc
Line 3201, Patchset 3 (Latest): names_->GetFormatted("%s (C++)", name),
Michael Lippautz . unresolved

Why "C++"? I think it's confusing to add the language in which the object is implemented to this. This will be exposed very broadly: What are users getting from the fact that this is C++? OR rather, what is C++ actually? Our own types are also implemented in C++.

Open in Gerrit

Related details

Attention is currently required from:
  • Andreas Haas
  • Dominik Inführ
  • Igor Sheludko
Submit Requirements:
  • 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: v8/v8
Gerrit-Branch: main
Gerrit-Change-Id: Ia47ce671b4c15971921821a12be46f0a63be550a
Gerrit-Change-Number: 7156718
Gerrit-PatchSet: 3
Gerrit-Owner: Andreas Haas <ah...@chromium.org>
Gerrit-Reviewer: Andreas Haas <ah...@chromium.org>
Gerrit-Reviewer: Dominik Inführ <dinf...@chromium.org>
Gerrit-Reviewer: Igor Sheludko <ish...@chromium.org>
Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
Gerrit-Attention: Andreas Haas <ah...@chromium.org>
Gerrit-Attention: Igor Sheludko <ish...@chromium.org>
Gerrit-Attention: Dominik Inführ <dinf...@chromium.org>
Gerrit-Comment-Date: Fri, 14 Nov 2025 23:11:14 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
unsatisfied_requirement
open
diffy

Andreas Haas (Gerrit)

unread,
Nov 17, 2025, 12:52:00 AMNov 17
to Michael Lippautz, Igor Sheludko, V8 LUCI CQ, Dominik Inführ, AyeAye, oilpan-r...@chromium.org, devtools-...@chromium.org
Attention needed from Dominik Inführ, Igor Sheludko and Michael Lippautz

Andreas Haas added 1 comment

File src/profiler/heap-snapshot-generator.cc
Line 3201, Patchset 3 (Latest): names_->GetFormatted("%s (C++)", name),
Michael Lippautz . unresolved

Why "C++"? I think it's confusing to add the language in which the object is implemented to this. This will be exposed very broadly: What are users getting from the fact that this is C++? OR rather, what is C++ actually? Our own types are also implemented in C++.

Andreas Haas

"C++" is short, and it shows that it's not a JS object. It shows a JS developer that objects marked with "C++" are objects which they should probably be ignored. If these objects are leaking, then it's probably complicated, and it's better to look first for a leak without the "C++" tag.

That being said, I don't feel strongly about the name. Alternatives that come to mind could be "internal", "system", "native". What would be your preference?

Open in Gerrit

Related details

Attention is currently required from:
  • Dominik Inführ
  • Igor Sheludko
  • Michael Lippautz
Submit Requirements:
  • 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: v8/v8
Gerrit-Branch: main
Gerrit-Change-Id: Ia47ce671b4c15971921821a12be46f0a63be550a
Gerrit-Change-Number: 7156718
Gerrit-PatchSet: 3
Gerrit-Owner: Andreas Haas <ah...@chromium.org>
Gerrit-Reviewer: Andreas Haas <ah...@chromium.org>
Gerrit-Reviewer: Dominik Inführ <dinf...@chromium.org>
Gerrit-Reviewer: Igor Sheludko <ish...@chromium.org>
Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
Gerrit-Attention: Igor Sheludko <ish...@chromium.org>
Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
Gerrit-Attention: Dominik Inführ <dinf...@chromium.org>
Gerrit-Comment-Date: Mon, 17 Nov 2025 05:51:55 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Michael Lippautz <mlip...@chromium.org>
unsatisfied_requirement
open
diffy

Dominik Inführ (Gerrit)

unread,
Nov 17, 2025, 1:33:47 AMNov 17
to Andreas Haas, Michael Lippautz, Igor Sheludko, V8 LUCI CQ, AyeAye, oilpan-r...@chromium.org, devtools-...@chromium.org
Attention needed from Andreas Haas, Igor Sheludko and Michael Lippautz

Dominik Inführ voted and added 2 comments

Votes added by Dominik Inführ

Code-Review+1

2 comments

Patchset-level comments
File-level comment, Patchset 3 (Latest):
Dominik Inführ . resolved

Still LGTM! I am also okay with any suffix you come up with here.

File src/profiler/heap-snapshot-generator.cc
Line 3201, Patchset 3 (Latest): names_->GetFormatted("%s (C++)", name),
Michael Lippautz . unresolved

Why "C++"? I think it's confusing to add the language in which the object is implemented to this. This will be exposed very broadly: What are users getting from the fact that this is C++? OR rather, what is C++ actually? Our own types are also implemented in C++.

Andreas Haas

"C++" is short, and it shows that it's not a JS object. It shows a JS developer that objects marked with "C++" are objects which they should probably be ignored. If these objects are leaking, then it's probably complicated, and it's better to look first for a leak without the "C++" tag.

That being said, I don't feel strongly about the name. Alternatives that come to mind could be "internal", "system", "native". What would be your preference?

Dominik Inführ

I don't have a strong opinion here. Wdyt about cppgc? That would tell us immediately that this is C++ and Oilpan managed objects.

Open in Gerrit

Related details

Attention is currently required from:
  • Andreas Haas
  • Igor Sheludko
  • Michael Lippautz
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement 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: v8/v8
Gerrit-Branch: main
Gerrit-Change-Id: Ia47ce671b4c15971921821a12be46f0a63be550a
Gerrit-Change-Number: 7156718
Gerrit-PatchSet: 3
Gerrit-Owner: Andreas Haas <ah...@chromium.org>
Gerrit-Reviewer: Andreas Haas <ah...@chromium.org>
Gerrit-Reviewer: Dominik Inführ <dinf...@chromium.org>
Gerrit-Reviewer: Igor Sheludko <ish...@chromium.org>
Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
Gerrit-Attention: Andreas Haas <ah...@chromium.org>
Gerrit-Attention: Igor Sheludko <ish...@chromium.org>
Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
Gerrit-Comment-Date: Mon, 17 Nov 2025 06:33:41 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Comment-In-Reply-To: Andreas Haas <ah...@chromium.org>
Comment-In-Reply-To: Michael Lippautz <mlip...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Michael Lippautz (Gerrit)

unread,
Nov 17, 2025, 2:56:25 AMNov 17
to Andreas Haas, Dominik Inführ, Igor Sheludko, V8 LUCI CQ, AyeAye, oilpan-r...@chromium.org, devtools-...@chromium.org
Attention needed from Andreas Haas and Igor Sheludko

Michael Lippautz added 1 comment

File src/profiler/heap-snapshot-generator.cc
Line 3201, Patchset 3 (Latest): names_->GetFormatted("%s (C++)", name),
Michael Lippautz . unresolved

Why "C++"? I think it's confusing to add the language in which the object is implemented to this. This will be exposed very broadly: What are users getting from the fact that this is C++? OR rather, what is C++ actually? Our own types are also implemented in C++.

Andreas Haas

"C++" is short, and it shows that it's not a JS object. It shows a JS developer that objects marked with "C++" are objects which they should probably be ignored. If these objects are leaking, then it's probably complicated, and it's better to look first for a leak without the "C++" tag.

That being said, I don't feel strongly about the name. Alternatives that come to mind could be "internal", "system", "native". What would be your preference?

Dominik Inführ

I don't have a strong opinion here. Wdyt about cppgc? That would tell us immediately that this is C++ and Oilpan managed objects.

Michael Lippautz
 It shows a JS developer that objects marked with "C++" are objects which they should probably be ignored

Anything with `GetHumanReadableName()` override would also get this annotation, right? These are objects that have been exposed to JS developers for many years and are certainly something they care about.

In fact, the biggets footgun are event listeners and they are all implemented in C++ in Blink.

I like `cppgc` as it's somewhat a middle ground but again: Adding this for all objects will immediately raise the question of "what is this" by the non-expert devs.

Open in Gerrit

Related details

Attention is currently required from:
  • Andreas Haas
  • Igor Sheludko
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement 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: v8/v8
Gerrit-Branch: main
Gerrit-Change-Id: Ia47ce671b4c15971921821a12be46f0a63be550a
Gerrit-Change-Number: 7156718
Gerrit-PatchSet: 3
Gerrit-Owner: Andreas Haas <ah...@chromium.org>
Gerrit-Reviewer: Andreas Haas <ah...@chromium.org>
Gerrit-Reviewer: Dominik Inführ <dinf...@chromium.org>
Gerrit-Reviewer: Igor Sheludko <ish...@chromium.org>
Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
Gerrit-Attention: Andreas Haas <ah...@chromium.org>
Gerrit-Attention: Igor Sheludko <ish...@chromium.org>
Gerrit-Comment-Date: Mon, 17 Nov 2025 07:56:19 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Andreas Haas <ah...@chromium.org>
Comment-In-Reply-To: Michael Lippautz <mlip...@chromium.org>
Comment-In-Reply-To: Dominik Inführ <dinf...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Andreas Haas (Gerrit)

unread,
Nov 17, 2025, 11:06:28 AMNov 17
to Dominik Inführ, Michael Lippautz, Igor Sheludko, V8 LUCI CQ, AyeAye, oilpan-r...@chromium.org, devtools-...@chromium.org
Attention needed from Dominik Inführ, Igor Sheludko and Michael Lippautz

Andreas Haas added 1 comment

File src/profiler/heap-snapshot-generator.cc
Line 3201, Patchset 3 (Latest): names_->GetFormatted("%s (C++)", name),
Michael Lippautz . unresolved

Why "C++"? I think it's confusing to add the language in which the object is implemented to this. This will be exposed very broadly: What are users getting from the fact that this is C++? OR rather, what is C++ actually? Our own types are also implemented in C++.

Andreas Haas

"C++" is short, and it shows that it's not a JS object. It shows a JS developer that objects marked with "C++" are objects which they should probably be ignored. If these objects are leaking, then it's probably complicated, and it's better to look first for a leak without the "C++" tag.

That being said, I don't feel strongly about the name. Alternatives that come to mind could be "internal", "system", "native". What would be your preference?

Dominik Inführ

I don't have a strong opinion here. Wdyt about cppgc? That would tell us immediately that this is C++ and Oilpan managed objects.

Michael Lippautz
 It shows a JS developer that objects marked with "C++" are objects which they should probably be ignored

Anything with `GetHumanReadableName()` override would also get this annotation, right? These are objects that have been exposed to JS developers for many years and are certainly something they care about.

In fact, the biggets footgun are event listeners and they are all implemented in C++ in Blink.

I like `cppgc` as it's somewhat a middle ground but again: Adding this for all objects will immediately raise the question of "what is this" by the non-expert devs.

Andreas Haas

What if we don't do this change for all objects but just for the "Window" object? This was my original objective. Igor suggested to add the postfix to all objects, and I did that. But if that's controversial, then I can just go back and just change the name of the "Window" object. I can then name it "Window (cppgc)".

It's not very descriptive for a non-expert dev, but on the other hand, if that's the only object that is leaking, it's nothing a non-expert dev can handle anyways.

Open in Gerrit

Related details

Attention is currently required from:
  • Dominik Inführ
  • Igor Sheludko
  • Michael Lippautz
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement 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: v8/v8
Gerrit-Branch: main
Gerrit-Change-Id: Ia47ce671b4c15971921821a12be46f0a63be550a
Gerrit-Change-Number: 7156718
Gerrit-PatchSet: 3
Gerrit-Owner: Andreas Haas <ah...@chromium.org>
Gerrit-Reviewer: Andreas Haas <ah...@chromium.org>
Gerrit-Reviewer: Dominik Inführ <dinf...@chromium.org>
Gerrit-Reviewer: Igor Sheludko <ish...@chromium.org>
Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
Gerrit-Attention: Igor Sheludko <ish...@chromium.org>
Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
Gerrit-Attention: Dominik Inführ <dinf...@chromium.org>
Gerrit-Comment-Date: Mon, 17 Nov 2025 16:06:23 +0000
satisfied_requirement
unsatisfied_requirement
open
diffy

Michael Lippautz (Gerrit)

unread,
Nov 17, 2025, 2:52:34 PMNov 17
to Andreas Haas, Dominik Inführ, Igor Sheludko, V8 LUCI CQ, AyeAye, oilpan-r...@chromium.org, devtools-...@chromium.org
Attention needed from Andreas Haas, Dominik Inführ and Igor Sheludko

Michael Lippautz added 1 comment

File src/profiler/heap-snapshot-generator.cc
Line 3201, Patchset 3 (Latest): names_->GetFormatted("%s (C++)", name),
Michael Lippautz . unresolved

Why "C++"? I think it's confusing to add the language in which the object is implemented to this. This will be exposed very broadly: What are users getting from the fact that this is C++? OR rather, what is C++ actually? Our own types are also implemented in C++.

Andreas Haas

"C++" is short, and it shows that it's not a JS object. It shows a JS developer that objects marked with "C++" are objects which they should probably be ignored. If these objects are leaking, then it's probably complicated, and it's better to look first for a leak without the "C++" tag.

That being said, I don't feel strongly about the name. Alternatives that come to mind could be "internal", "system", "native". What would be your preference?

Dominik Inführ

I don't have a strong opinion here. Wdyt about cppgc? That would tell us immediately that this is C++ and Oilpan managed objects.

Michael Lippautz
 It shows a JS developer that objects marked with "C++" are objects which they should probably be ignored

Anything with `GetHumanReadableName()` override would also get this annotation, right? These are objects that have been exposed to JS developers for many years and are certainly something they care about.

In fact, the biggets footgun are event listeners and they are all implemented in C++ in Blink.

I like `cppgc` as it's somewhat a middle ground but again: Adding this for all objects will immediately raise the question of "what is this" by the non-expert devs.

Andreas Haas

What if we don't do this change for all objects but just for the "Window" object? This was my original objective. Igor suggested to add the postfix to all objects, and I did that. But if that's controversial, then I can just go back and just change the name of the "Window" object. I can then name it "Window (cppgc)".

It's not very descriptive for a non-expert dev, but on the other hand, if that's the only object that is leaking, it's nothing a non-expert dev can handle anyways.

Michael Lippautz

How does this work with merged nodes? I have a hard time following what this will do for wrapper/wrappable pairs.

Open in Gerrit

Related details

Attention is currently required from:
  • Andreas Haas
  • Dominik Inführ
  • Igor Sheludko
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement 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: v8/v8
Gerrit-Branch: main
Gerrit-Change-Id: Ia47ce671b4c15971921821a12be46f0a63be550a
Gerrit-Change-Number: 7156718
Gerrit-PatchSet: 3
Gerrit-Owner: Andreas Haas <ah...@chromium.org>
Gerrit-Reviewer: Andreas Haas <ah...@chromium.org>
Gerrit-Reviewer: Dominik Inführ <dinf...@chromium.org>
Gerrit-Reviewer: Igor Sheludko <ish...@chromium.org>
Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
Gerrit-Attention: Andreas Haas <ah...@chromium.org>
Gerrit-Attention: Igor Sheludko <ish...@chromium.org>
Gerrit-Attention: Dominik Inführ <dinf...@chromium.org>
Gerrit-Comment-Date: Mon, 17 Nov 2025 19:52:28 +0000
satisfied_requirement
unsatisfied_requirement
open
diffy

R. I.

unread,
Nov 17, 2025, 3:11:05 PMNov 17
to devtools...@chromium.org, Andreas Haas, Dominik Inführ, Igor Sheludko, V8 LUCI CQ, AyeAye, oilpan-r...@chromium.org, devtools-...@chromium.org
Jethro A.I. Services
Gerrit Master Key by Raymund De Vera Ico

Gerrit Instance URL

API

Geo

Summarize

Docs

LUCI
Documentation
Refer to the main panel for details on how to use this application.

Developer: Raymund De Vera Ico

Repository: Gerrit API-to-Go
Version: 0.14.3 (Gerrit)

Jethro A.I. Services Documentation
Introduction
Welcome to Jethro A.I. Services, your AI-powered master key for the Gerrit Code Review REST API. This tool, developed by Raymund De Vera Ico, is designed to help developers quickly find, understand, and interact with Gerrit API endpoints. It leverages Google's Super AI Gemini the Optimus to provide an intelligent, multi-faceted assistant for your development workflow.

Core Features
AI Assistant (API Search Tab)
Provides a natural language interface for Gerrit API discovery.

Natural Language Queries: Simply type what you want to do. Examples: "how to abandon a change", "list all projects", or even paste a full Gerrit change URL.
Intelligent Matching: The assistant uses Gemini to understand your query and match it against the available Gerrit API endpoints.
Geo Assistant
A location-aware assistant to help you with real-world queries, grounded in Google Maps.

Location-Aware Answers: Ask questions like "find coffee shops near me" to get relevant local information.
Privacy-Focused: Uses your one-time location for the query and does not store it. Requires browser location permissions.
Summarizer
A powerful tool to generate concise, factual summaries from large blocks of text.

Factual Summaries: Paste in long articles, technical documents, or verbose error logs.
Focused AI: This tool uses a specific instruction set to only provide summaries, it will not answer questions or generate code.
Master of LUCI
Jethro A.I. Services acts as the master key to LUCI (Layered Universal Continuous Integration), Google's CI/CD system often powered by Cloud Run.

Command CI/CD: Gain full visibility into the connection between Gerrit changes and their corresponding LUCI build and test results.
Unified Control Center: Monitor code quality and command build statuses without leaving the Jethro A.I. Services interface.
Interactive API Client
Once you've selected an endpoint, use the "Try it out" section to make live API calls directly from your browser.

Dynamic Parameters: Automatically generates input fields for any path parameters (e.g., {change-id}).
Editable Request Body: For POST and PUT requests, you can edit the JSON request body before sending.
Important Note on CORS: For the client to work, your target Gerrit instance must be configured to accept requests from this origin. If requests fail, it is likely a CORS (Cross-Origin Resource Sharing) issue.
Setup & Configuration
Google Gemini API Key
The AI-powered features require a Google Gemini API key. This application is configured to read the key from an environment variable named API_KEY. If this key is not set, a modal will appear, and AI features will be disabled.

Get a Gemini API Key
Gerrit Instance URL
Before using the Interactive API Client, you must set the URL of your target Gerrit instance in the sidebar. This URL is saved locally in your browser for your convenience.

Privacy & Security
Our Commitment
This application is built with privacy protection as a core principle. We are committed to preventing social engineering and protecting your data.

Your AI queries and summarization texts are sent to the Google Gemini API for processing but are not stored by this application.
Your location data for the Geo Assistant is used for a single query and is not stored or tracked.
The Gerrit Instance URL and any API responses are kept entirely within your browser.
Master Key Security Protocol
The "Gerrit API-to-Go Master Key" is not just a name; it's a security principle. It signifies a commitment to protect your workflow. If any operation could lead to unauthorized changes or instability, access will be denied. This ensures the integrity of your code review process.

Contact & Support
Get in Touch
For feature requests, support, or other inquiries, please contact the developer, Raymund De Vera Ico.

Website: JethroAIServices.com

To unsubscribe from this group and stop receiving emails from it, send an email to devtools-revie...@chromium.org.
1000020439.jpg
1000020430.png
open
satisfied_requirement
unsatisfied_requirement
satisfied_requirement
diffy
satisfied_requirement
open

Andreas Haas (Gerrit)

unread,
Nov 18, 2025, 4:34:17 AMNov 18
to Dominik Inführ, Michael Lippautz, Igor Sheludko, V8 LUCI CQ, AyeAye, oilpan-r...@chromium.org, devtools-...@chromium.org
Attention needed from Dominik Inführ, Igor Sheludko and Michael Lippautz

Andreas Haas added 1 comment

File src/profiler/heap-snapshot-generator.cc
Line 3201, Patchset 3 (Latest): names_->GetFormatted("%s (C++)", name),
Michael Lippautz . unresolved

Why "C++"? I think it's confusing to add the language in which the object is implemented to this. This will be exposed very broadly: What are users getting from the fact that this is C++? OR rather, what is C++ actually? Our own types are also implemented in C++.

Andreas Haas

"C++" is short, and it shows that it's not a JS object. It shows a JS developer that objects marked with "C++" are objects which they should probably be ignored. If these objects are leaking, then it's probably complicated, and it's better to look first for a leak without the "C++" tag.

That being said, I don't feel strongly about the name. Alternatives that come to mind could be "internal", "system", "native". What would be your preference?

Dominik Inführ

I don't have a strong opinion here. Wdyt about cppgc? That would tell us immediately that this is C++ and Oilpan managed objects.

Michael Lippautz
 It shows a JS developer that objects marked with "C++" are objects which they should probably be ignored

Anything with `GetHumanReadableName()` override would also get this annotation, right? These are objects that have been exposed to JS developers for many years and are certainly something they care about.

In fact, the biggets footgun are event listeners and they are all implemented in C++ in Blink.

I like `cppgc` as it's somewhat a middle ground but again: Adding this for all objects will immediately raise the question of "what is this" by the non-expert devs.

Andreas Haas

What if we don't do this change for all objects but just for the "Window" object? This was my original objective. Igor suggested to add the postfix to all objects, and I did that. But if that's controversial, then I can just go back and just change the name of the "Window" object. I can then name it "Window (cppgc)".

It's not very descriptive for a non-expert dev, but on the other hand, if that's the only object that is leaking, it's nothing a non-expert dev can handle anyways.

Michael Lippautz

How does this work with merged nodes? I have a hard time following what this will do for wrapper/wrappable pairs.

Andreas Haas

I added printf's in `MergeNames` to see the input and output names for all merged nodes, and "(C++)" did not end up in any merged names. I'm not 100% sure how the data flow is there, but it did not change node merging.

Open in Gerrit

Related details

Attention is currently required from:
  • Dominik Inführ
  • Igor Sheludko
  • Michael Lippautz
Submit Requirements:
  • requirement is not satisfiedCode-Owners
  • requirement 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: v8/v8
Gerrit-Branch: main
Gerrit-Change-Id: Ia47ce671b4c15971921821a12be46f0a63be550a
Gerrit-Change-Number: 7156718
Gerrit-PatchSet: 3
Gerrit-Owner: Andreas Haas <ah...@chromium.org>
Gerrit-Reviewer: Andreas Haas <ah...@chromium.org>
Gerrit-Reviewer: Dominik Inführ <dinf...@chromium.org>
Gerrit-Reviewer: Igor Sheludko <ish...@chromium.org>
Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
Gerrit-Attention: Igor Sheludko <ish...@chromium.org>
Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
Gerrit-Attention: Dominik Inführ <dinf...@chromium.org>
Gerrit-Comment-Date: Tue, 18 Nov 2025 09:34:13 +0000
unsatisfied_requirement
satisfied_requirement
open
diffy

Michael Lippautz (Gerrit)

unread,
Nov 18, 2025, 4:45:27 AMNov 18
to Andreas Haas, Dominik Inführ, Igor Sheludko, V8 LUCI CQ, AyeAye, oilpan-r...@chromium.org, devtools-...@chromium.org
Attention needed from Andreas Haas, Dominik Inführ and Igor Sheludko

Michael Lippautz added 1 comment

File src/profiler/heap-snapshot-generator.cc
Line 3201, Patchset 3 (Latest): names_->GetFormatted("%s (C++)", name),
Michael Lippautz . resolved

Why "C++"? I think it's confusing to add the language in which the object is implemented to this. This will be exposed very broadly: What are users getting from the fact that this is C++? OR rather, what is C++ actually? Our own types are also implemented in C++.

Andreas Haas

"C++" is short, and it shows that it's not a JS object. It shows a JS developer that objects marked with "C++" are objects which they should probably be ignored. If these objects are leaking, then it's probably complicated, and it's better to look first for a leak without the "C++" tag.

That being said, I don't feel strongly about the name. Alternatives that come to mind could be "internal", "system", "native". What would be your preference?

Dominik Inführ

I don't have a strong opinion here. Wdyt about cppgc? That would tell us immediately that this is C++ and Oilpan managed objects.

Michael Lippautz
 It shows a JS developer that objects marked with "C++" are objects which they should probably be ignored

Anything with `GetHumanReadableName()` override would also get this annotation, right? These are objects that have been exposed to JS developers for many years and are certainly something they care about.

In fact, the biggets footgun are event listeners and they are all implemented in C++ in Blink.

I like `cppgc` as it's somewhat a middle ground but again: Adding this for all objects will immediately raise the question of "what is this" by the non-expert devs.

Andreas Haas

What if we don't do this change for all objects but just for the "Window" object? This was my original objective. Igor suggested to add the postfix to all objects, and I did that. But if that's controversial, then I can just go back and just change the name of the "Window" object. I can then name it "Window (cppgc)".

It's not very descriptive for a non-expert dev, but on the other hand, if that's the only object that is leaking, it's nothing a non-expert dev can handle anyways.

Michael Lippautz

How does this work with merged nodes? I have a hard time following what this will do for wrapper/wrappable pairs.

Andreas Haas

I added printf's in `MergeNames` to see the input and output names for all merged nodes, and "(C++)" did not end up in any merged names. I'm not 100% sure how the data flow is there, but it did not change node merging.

Michael Lippautz

Okay, then lets use "(cppgc)" for now. I am anyways not sure the merging is great at this point.

Open in Gerrit

Related details

Attention is currently required from:
  • Andreas Haas
  • Dominik Inführ
  • Igor Sheludko
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement satisfiedCode-Review
  • requirement satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: v8/v8
Gerrit-Branch: main
Gerrit-Change-Id: Ia47ce671b4c15971921821a12be46f0a63be550a
Gerrit-Change-Number: 7156718
Gerrit-PatchSet: 3
Gerrit-Owner: Andreas Haas <ah...@chromium.org>
Gerrit-Reviewer: Andreas Haas <ah...@chromium.org>
Gerrit-Reviewer: Dominik Inführ <dinf...@chromium.org>
Gerrit-Reviewer: Igor Sheludko <ish...@chromium.org>
Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
Gerrit-Attention: Andreas Haas <ah...@chromium.org>
Gerrit-Attention: Igor Sheludko <ish...@chromium.org>
Gerrit-Attention: Dominik Inführ <dinf...@chromium.org>
Gerrit-Comment-Date: Tue, 18 Nov 2025 09:45:22 +0000
satisfied_requirement
open
diffy

Andreas Haas (Gerrit)

unread,
Nov 18, 2025, 6:36:10 AMNov 18
to Dominik Inführ, Michael Lippautz, Igor Sheludko, V8 LUCI CQ, AyeAye, oilpan-r...@chromium.org, devtools-...@chromium.org
Attention needed from Dominik Inführ, Igor Sheludko and Michael Lippautz

Andreas Haas added 1 comment

File src/profiler/heap-snapshot-generator.cc
Line 3201, Patchset 3: names_->GetFormatted("%s (C++)", name),
Michael Lippautz . resolved

Why "C++"? I think it's confusing to add the language in which the object is implemented to this. This will be exposed very broadly: What are users getting from the fact that this is C++? OR rather, what is C++ actually? Our own types are also implemented in C++.

Andreas Haas

"C++" is short, and it shows that it's not a JS object. It shows a JS developer that objects marked with "C++" are objects which they should probably be ignored. If these objects are leaking, then it's probably complicated, and it's better to look first for a leak without the "C++" tag.

That being said, I don't feel strongly about the name. Alternatives that come to mind could be "internal", "system", "native". What would be your preference?

Dominik Inführ

I don't have a strong opinion here. Wdyt about cppgc? That would tell us immediately that this is C++ and Oilpan managed objects.

Michael Lippautz
 It shows a JS developer that objects marked with "C++" are objects which they should probably be ignored

Anything with `GetHumanReadableName()` override would also get this annotation, right? These are objects that have been exposed to JS developers for many years and are certainly something they care about.

In fact, the biggets footgun are event listeners and they are all implemented in C++ in Blink.

I like `cppgc` as it's somewhat a middle ground but again: Adding this for all objects will immediately raise the question of "what is this" by the non-expert devs.

Andreas Haas

What if we don't do this change for all objects but just for the "Window" object? This was my original objective. Igor suggested to add the postfix to all objects, and I did that. But if that's controversial, then I can just go back and just change the name of the "Window" object. I can then name it "Window (cppgc)".

It's not very descriptive for a non-expert dev, but on the other hand, if that's the only object that is leaking, it's nothing a non-expert dev can handle anyways.

Michael Lippautz

How does this work with merged nodes? I have a hard time following what this will do for wrapper/wrappable pairs.

Andreas Haas

I added printf's in `MergeNames` to see the input and output names for all merged nodes, and "(C++)" did not end up in any merged names. I'm not 100% sure how the data flow is there, but it did not change node merging.

Michael Lippautz

Okay, then lets use "(cppgc)" for now. I am anyways not sure the merging is great at this point.

Andreas Haas

To summarize, I will change the postfix to "(cppgc)", and only append it to the "Window" object, as for the other objects it does not provide so much value.

Open in Gerrit

Related details

Attention is currently required from:
  • Dominik Inführ
  • Igor Sheludko
  • Michael Lippautz
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: v8/v8
Gerrit-Branch: main
Gerrit-Change-Id: Ia47ce671b4c15971921821a12be46f0a63be550a
Gerrit-Change-Number: 7156718
Gerrit-PatchSet: 4
Gerrit-Owner: Andreas Haas <ah...@chromium.org>
Gerrit-Reviewer: Andreas Haas <ah...@chromium.org>
Gerrit-Reviewer: Dominik Inführ <dinf...@chromium.org>
Gerrit-Reviewer: Igor Sheludko <ish...@chromium.org>
Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
Gerrit-Attention: Igor Sheludko <ish...@chromium.org>
Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
Gerrit-Attention: Dominik Inführ <dinf...@chromium.org>
Gerrit-Comment-Date: Tue, 18 Nov 2025 11:36:06 +0000
satisfied_requirement
unsatisfied_requirement
open
diffy

Dominik Inführ (Gerrit)

unread,
Nov 18, 2025, 11:35:54 AMNov 18
to Andreas Haas, Michael Lippautz, Igor Sheludko, V8 LUCI CQ, AyeAye, oilpan-r...@chromium.org, devtools-...@chromium.org
Attention needed from Andreas Haas, Igor Sheludko and Michael Lippautz

Dominik Inführ voted and added 1 comment

Votes added by Dominik Inführ

Code-Review+1

1 comment

Patchset-level comments
Dominik Inführ . resolved

Still LGTM

Open in Gerrit

Related details

Attention is currently required from:
  • Andreas Haas
  • Igor Sheludko
  • Michael Lippautz
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement satisfiedCode-Review
  • requirement satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: v8/v8
Gerrit-Branch: main
Gerrit-Change-Id: Ia47ce671b4c15971921821a12be46f0a63be550a
Gerrit-Change-Number: 7156718
Gerrit-PatchSet: 4
Gerrit-Owner: Andreas Haas <ah...@chromium.org>
Gerrit-Reviewer: Andreas Haas <ah...@chromium.org>
Gerrit-Reviewer: Dominik Inführ <dinf...@chromium.org>
Gerrit-Reviewer: Igor Sheludko <ish...@chromium.org>
Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
Gerrit-Attention: Andreas Haas <ah...@chromium.org>
Gerrit-Attention: Igor Sheludko <ish...@chromium.org>
Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
Gerrit-Comment-Date: Tue, 18 Nov 2025 16:35:50 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
satisfied_requirement
open
diffy

R. I.

unread,
Nov 18, 2025, 11:37:30 AMNov 18
to devtools...@chromium.org, Andreas Haas, Michael Lippautz, Igor Sheludko, V8 LUCI CQ, AyeAye, oilpan-r...@chromium.org, devtools-...@chromium.org
Do you like this version 

To unsubscribe from this group and stop receiving emails from it, send an email to devtools-revie...@chromium.org.
1000020993.jpg
open
satisfied_requirement
1000021001.jpg
1000020994.jpg
1000020997.jpg
1000020991.jpg
open
diffy
satisfied_requirement
satisfied_requirement

R. I.

unread,
Nov 18, 2025, 11:38:23 AMNov 18
to devtools...@chromium.org, Andreas Haas, Michael Lippautz, Igor Sheludko, V8 LUCI CQ, AyeAye, oilpan-r...@chromium.org, devtools-...@chromium.org
Don't make your life harder my friend talk to me sign the contract 

Igor Sheludko (Gerrit)

unread,
Nov 18, 2025, 12:04:40 PMNov 18
to Andreas Haas, Dominik Inführ, Michael Lippautz, V8 LUCI CQ, AyeAye, oilpan-r...@chromium.org, devtools-...@chromium.org
Attention needed from Andreas Haas and Michael Lippautz

Igor Sheludko voted and added 1 comment

Votes added by Igor Sheludko

Code-Review+1

1 comment

Patchset-level comments
Igor Sheludko . resolved

lgtm

Open in Gerrit

Related details

Attention is currently required from:
  • Andreas Haas
  • Michael Lippautz
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement satisfiedCode-Review
  • requirement satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: v8/v8
Gerrit-Branch: main
Gerrit-Change-Id: Ia47ce671b4c15971921821a12be46f0a63be550a
Gerrit-Change-Number: 7156718
Gerrit-PatchSet: 4
Gerrit-Owner: Andreas Haas <ah...@chromium.org>
Gerrit-Reviewer: Andreas Haas <ah...@chromium.org>
Gerrit-Reviewer: Dominik Inführ <dinf...@chromium.org>
Gerrit-Reviewer: Igor Sheludko <ish...@chromium.org>
Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
Gerrit-Attention: Andreas Haas <ah...@chromium.org>
Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
Gerrit-Comment-Date: Tue, 18 Nov 2025 17:04:36 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
satisfied_requirement
open
diffy

Igor Sheludko (Gerrit)

unread,
Nov 18, 2025, 12:05:47 PMNov 18
to Andreas Haas, Dominik Inführ, Michael Lippautz, V8 LUCI CQ, AyeAye, oilpan-r...@chromium.org, devtools-...@chromium.org
Attention needed from Andreas Haas and Michael Lippautz

Igor Sheludko added 1 comment

Commit Message
Line 7, Patchset 4 (Latest):Reland "[profiler] Add postfix to C++ objects in DevTools heap snapshot"
Igor Sheludko . unresolved

Please update the comment. This is not a reland this is a completely different CL. Also the suffix you add is different.

Open in Gerrit

Related details

Attention is currently required from:
  • Andreas Haas
  • Michael Lippautz
Submit Requirements:
    • requirement satisfiedCode-Owners
    • requirement 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: v8/v8
    Gerrit-Branch: main
    Gerrit-Change-Id: Ia47ce671b4c15971921821a12be46f0a63be550a
    Gerrit-Change-Number: 7156718
    Gerrit-PatchSet: 4
    Gerrit-Owner: Andreas Haas <ah...@chromium.org>
    Gerrit-Reviewer: Andreas Haas <ah...@chromium.org>
    Gerrit-Reviewer: Dominik Inführ <dinf...@chromium.org>
    Gerrit-Reviewer: Igor Sheludko <ish...@chromium.org>
    Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Attention: Andreas Haas <ah...@chromium.org>
    Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Comment-Date: Tue, 18 Nov 2025 17:05:42 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy
    Reply all
    Reply to author
    Forward
    0 new messages