Live data from Hacker News

Fixing a bug in Google Chrome as a first-time contributor

cprimozic.net

131–140 of 170 posts

Re: Fixing a bug in Google Chrome as a first-time contributor

#131
post #79

>Because of this huge codebase size, I wasn't able to get VS Code's C++ extension to work very well with the project. Features like go-to definition (which I usually rely on heavily when navigating codebases) and find references didn't work well or at all, and one of my CPU cores would stay stuck at 100% permanently while the project was open. Chromium Code Search [1] tool is very helpful with that and I believe ther…

BTW there also exists the same code search tool for Android (AOSP): https://cs.android.com

I use it all the time as an Android app developer. Its introduction was a big deal, because before that, it was common among Android developers to pull AOSP sources (all the many gigabytes of them) to one's local machine and just grep around.

Re: Fixing a bug in Google Chrome as a first-time contributor

#132

Earlier quoted context omitted.

When I joined my current team, I was surprised when I realized all of my co-workers were using the end of strings to verify their identity, when I was looking at the beginning of them. It was confusing: I'd be reading off random characters, and they'd be reading them aloud at the same time, and we'd all be saying different things.

I've run into this with GUID/UUID strings. Some apps truncate them while appending an ellipses to the end, so that the last bits of characters are not even visible by default. It's a mixed bag to be sure

I feel like if you have to display UUIDs in your app’s UI, you’ve already lost. Copy to clipboard should hopefully be enough.

Re: Fixing a bug in Google Chrome as a first-time contributor

#133

Earlier quoted context omitted.

I can make a clean build of Firefox in less than 15 minutes on my MacBook Air M2, C++, Rust, and all. If you’re working on a frontend feature that only needs to modify Firefox’s frontend JS code, you can use “artifact builds” (prebuilt object files) so you don’t need to recompile the native code.

> less than 15 minutes ... Rust, and all Wow, your rust experience is way different from mine (not just FF, I mean invocations of rustc are where time goes to die). I also readily admit that I struggled constantly with trying to get sccache to behave sanely, so I'm open to that being part of the difference, too

FWIW, local sccache has never been a speedup for me. I've never tried to configure remote sccache.

Re: Fixing a bug in Google Chrome as a first-time contributor

#134
post #59

Earlier quoted context omitted.

My solution for a few "bugs considered features" in huge open-source software like Firefox was to just patch the binary. Much easier than figuring out how to build it, and with only the change I wanted.

Do you have experience in disassembling binaries? How do you find the relevant part of the executable, and what tools are you using for this?

Yes, several decades of experience. Mainly Windbg now but I used to use SoftICE a lot. Look for error (or otherwise) messages/codes and use breakpoints to guide your exploration. Of course, the source code is also available, but sometimes it's even more difficult to follow than the binary if what you're looking for is obfuscated in several layers of compiled-out indirections.

Re: Fixing a bug in Google Chrome as a first-time contributor

#135
post #116

Earlier quoted context omitted.

>So how much does it cost to maintain a Chromium fork? >It obviously depends on the number of customizations your browser has, and on how quickly you want to incorporate security fixes from upstream. Chromium is one of the world's most complex pieces of software, and you need very capable engineers and powerful hardware to match this. It is going to be expensive. And not just once, but also on an ongoing basis. This…

I dunno, I've maintained a personal fork since around Chrome 100 or so. I am only targeting builds on Linux, I don't care about branding, and my patches are limited to about 300 lines total. The initial fork and figuring out the build process took probably 20 hours. After that, I've only had to spend on average around one hour per release of "engineering time" to keep my patches current. The build takes about an hour…

Why are you running your own fork, if I may ask.

Re: Fixing a bug in Google Chrome as a first-time contributor

#136
post #113

Earlier quoted context omitted.

> I've found no other mention of this on the internet Here's one! (different character, but same issue it seems?) https://www.reddit.com/r/linuxquestions/comments/1cbarz5/ele... > and I'd love to to hunt this down and fix it but have no clue where to start. I guess the first step would be to consistently reproduce the bug... I am not familiar with Chromium at all, and I also don't run Linux on the desktop as I'm gues…

Thank you so much for all these pointers!

There's wayland versions of those in the ozone dir.

Re: Fixing a bug in Google Chrome as a first-time contributor

#137
post #116

Earlier quoted context omitted.

I dunno, I've maintained a personal fork since around Chrome 100 or so. I am only targeting builds on Linux, I don't care about branding, and my patches are limited to about 300 lines total. The initial fork and figuring out the build process took probably 20 hours. After that, I've only had to spend on average around one hour per release of "engineering time" to keep my patches current. The build takes about an hour…

Why are you running your own fork, if I may ask.

When you sit down at the dinner table, do you have your own fork or share one with the guests?

Exact same logic applies.

Re: Fixing a bug in Google Chrome as a first-time contributor

#138

Earlier quoted context omitted.

I've run into this with GUID/UUID strings. Some apps truncate them while appending an ellipses to the end, so that the last bits of characters are not even visible by default. It's a mixed bag to be sure

I feel like if you have to display UUIDs in your app’s UI, you’ve already lost. Copy to clipboard should hopefully be enough.

It doesn't matter when/where the IDs are or how they are to be used. Ever been on a call trying to get someone to look at a specific commit? There are plenty of cases where using some sort of ID is necessary. I think you've chosen the very wrong part of the comment to focus on, like the actual point.

Re: Fixing a bug in Google Chrome as a first-time contributor

#139
post #116

Earlier quoted context omitted.

>So how much does it cost to maintain a Chromium fork? >It obviously depends on the number of customizations your browser has, and on how quickly you want to incorporate security fixes from upstream. Chromium is one of the world's most complex pieces of software, and you need very capable engineers and powerful hardware to match this. It is going to be expensive. And not just once, but also on an ongoing basis. This…

I dunno, I've maintained a personal fork since around Chrome 100 or so. I am only targeting builds on Linux, I don't care about branding, and my patches are limited to about 300 lines total. The initial fork and figuring out the build process took probably 20 hours. After that, I've only had to spend on average around one hour per release of "engineering time" to keep my patches current. The build takes about an hour…

What kind of changes have you made with your patches? Did you make them yourself? I wanted to locate the code responsible for chromium's manifest v2 support so I could patch it back in once it's removed but I just couldn't get very far.

Re: Fixing a bug in Google Chrome as a first-time contributor

#140

Not that I really see away around it, given the size and feature set of Chrome, but those build requirements are just crazy. It kinda throws the open source and "everyone can contribute" model out the window, if you can't afford a pretty insane workstation then you're going to have a bad time. I doubt that Firefox is better, I seem to remember that building Firefox and the VIA C3 processor years back as around half a…

Cpp compile times are shame as hell This shit shouldnt need this many resources for debug builds

45 minute build for 32 million lines of code seems pretty reasonable, to me. What are some projects of equal complexity with lower build time in other languages?
Post reply on HN