Live data from Hacker News

Firefox 76

mozilla.org

231–240 of 274 posts

Re: Firefox 76

#231
post #225

Earlier quoted context omitted.

I would call that quite native, because you can see what they do when they can't actually use the platform APIs. In my mind, blitting pixels onto a screen is non-native; using a NSView/NSCell or similar "generic" view and drawing into that wouldn't really cut it either, but using an actual button cell is basically as native as you get. Like, that platform API exists for exactly the thing Safari and Firefox are using…

I guess you can use the word "native" to mean whatever you want, but I assure that (as a former Mozilla developer) if you claim "Firefox uses native controls" (because internally it calls into platform APIs for some rendering sometimes), people are going to get mad at you.

Yup, I know both you a Patrick work(ed) on this stuff, hence why I will from this point on stop claiming things about Firefox as I have not done more than glance at the file you linked. However, as someone who is fairly familiar with WebKit and even worked on it for a short period, and as someone who happens to be a person who gets mad at others at claiming that they are designing “native” UIs: I think calling what Safari does as “native” is a better description than saying it is not. (To give you an idea of where I tend to draw the line: Flutter is not native. Qt is not native. React Native uses native controls, as does wxWidgets.) I think of you asked a random software engineer how they thought web controls were implemented they’d guess that they were drawn and implemented from scratch in the browser, and some browsers (like Chrome) actually do this. What Safari does isn’t drawing a rectangle on a screen using Quartz: it’s actually pulling the class that defines the UI of a button from Cocoa and putting it on the screen, making sure it stays consistent with the DOM. There are actual AppKit engineers working on this and they call these native controls. Safari sometimes needs to disable or patch around bugs in them. It’s basically as close as you could possibly get while still being able to use one of these in a webpage.

Edit: as I mentioned in another comment, what I’ve really been trying to say isn’t that they’re as native as the web will let them be, and that happens to allow them to use a fair bit of platform-specific code if they would like. I think the things you are trying to bring up are just a consequence of the web not being a native platform.

Re: Firefox 76

#232
post #176

Earlier quoted context omitted.

It doesn't exactly need to be Chrome-specific; every browser/JS engine will have slightly different performance on different workloads, so Google just has to lean heavily on things that are golden-path for Chrome. They could even do this accidentally/nonmaliciously just by mostly testing on Chrome and not testing performance on other browsers.

> They could even do this accidentally/nonmaliciously Designing a development process that naturally achieves a malicious outcome is just as bad as actively making malicious decisions: https://www.zdnet.com/article/former-mozilla-exec-google-has...

Wouldn't it rather be "Maintaining and not fixing" rather than "Designing"?

Google is perfectly allowed to make mistakes or forget something. The criticism is that this is a repeated behavior, as if they decided that it is never going to be a priority.

Re: Firefox 76

#233

Earlier quoted context omitted.

I want to figure out who to talk to on both Firefox and Chrome sides to beg that they adopt a scheme like YYYY.MM.minor for their version numbering. I believe that would be superior for basically everyone —web developers, users, &c. (In the case of Firefox, it works especially well since they’re releasing approximately monthly now. I could imagine people on Chrome puzzling over why some month numbers got skipped—not…

What’s the advantage behind a more complex scheme? It doesn’t seem to add anything. The current system just notes the specific release in a series of releases.

Semantics. The main thing that users ever want on seeing a version number is to know when it corresponds to. That’s a bothersome lookup at present.

Re: Firefox 76

#234

Earlier quoted context omitted.

I would call that quite native, because you can see what they do when they can't actually use the platform APIs. In my mind, blitting pixels onto a screen is non-native; using a NSView/NSCell or similar "generic" view and drawing into that wouldn't really cut it either, but using an actual button cell is basically as native as you get. Like, that platform API exists for exactly the thing Safari and Firefox are using…

The drawing code is not what people typically mean by "native". What they mean is the behavior. No browser relies on the built-in behavior of e.g. an NSButton. The source code of "native" Mac apps looks nothing like RenderThemeMac.cpp.

On macOS the situation is interesting because there is a sort of an “in-between” later that doesn’t really seem to exist on other platforms, which is cells. Usually you either have a control or you have a drawing primitive and you get nothing in between, but on macOS you have a class that encapsulates the drawing portion of a control and you can hook up your own event system on top of it. Safari has it a little bit more complicated than this because it needs to handle basically every possible abuse of NSButtonCell before it falls back to something completely custom; Mac apps typically don’t style their buttons in a dozen different ways. Safari can’t actually use NSButton because such a class obviously can’t be hooked up to the DOM: it wouldn’t be worth it. But if Safari actually included a full reimplementation of NSButton, it would be significantly more complicated than what we see here. It is still relying on a lot of NSButtonCell functionality, which as you mention is just drawing but includes behaviors like highlights and sizing and animation which people who actually do try to reimplement have historically done poorly. (Actually, to be completely honest, Safari actually does break a couple of things as it tries to disable built-in behaviors. But this is coming at it from the opposite direction from usual.) I know it isn’t sending NSEvents around but it “feels native” and works with the web: it looks, acts, and even updates like a button but makes an event in the web page, which is I think the best anyone can do. (FWIW, iTunes does its own thing too, and it’s native as well. It’s just bad native.) At some point, when they’re using a significant portion of the platform’s native control and are working hard to hook it up to something which isn’t what it usually is connected to, to the point where people who generally have complaints about “non-native UIs” (hello) sit back and say “actually this is not too terrible” I think you have to give it to them.

Edit: I thought more about it and I think I was misunderstanding where this conversation was going. I do care very much about native controls being more than looking native. The thing is that in the web really the only thing exposed is how the control looks because all the platform behaviors have to be stripped out: for example, on one OS a native control with the word “OK” inside of it may be implicitly activatable via the pressing enter on the keyboard, but such an interaction is undesirable on the web because a button should have the lowest common denominator of behaviors. There really is no room for much more than the actual UI of a control to show platform conventions and so when I call things native in this context I mean that they are native as they can be used in a webpage. Plus more complex interactions, which is often where such “native” frameworks go wrong, are just not a thing on the web so I am using ignoring them while you are not.

Re: Firefox 76

#235
post #135

Earlier quoted context omitted.

Releases are almost always date-based, but once in a while a release is delayed. I guess that's a bit easier if the release number is not a date.

There's also the fact that Firefox is now on a 4 weeks release cycle, which means there will be months with two releases. (and that's ignoring chemspill releases)

Then if not year.month they can use year.counter where counter goes from 1 to 14 = ceil(366/28)

Re: Firefox 76

#236
post #143
post #107

Earlier quoted context omitted.

In real life, developers use https://caniuse.com which tells you exactly what features are supported in what version and when that was released .

yea. you support features / ages / percentages, not version numbers. whether there are 2 or 20 doesn't really matter.

A moment where version numbers are relevant is when you collect telemetry from your users and when you reccomend supported browsers.

I think it is in part a difference between websites oriented to the public and websites oriented to companies, where browser versions can be more complex than a self-updating browser.

Re: Firefox 76

#237
post #157

I love Firefox and use it as my primary browser for years but few things which annoy me: - Sending tabs between devices does not work. It sometimes arrives 12 hours!!! later - Google Cloud Console has some UI issues on Firefox - Twitter input field behaves extremely strangely when you enter an emoji and try to edit text afterwards - I don’t understand why some html elements have a different appearance and default css…

Sending tabs works fine for me

which systems do you use? I generally see more delay from android to linux than from linux to android for example.

Re: Firefox 76

#238

i just want to say, Firefox is seriously fast now, while Chrome continues to get slower [1]. my 10M datapoint uPlot benchmark runs in half the time, for both pure js (fake data gen) and canvas workloads (chart rendering). check out the console in [2]. however, i'm still waiting for the performance assessment in devtools to improve so i can get an easy summary as i can in Chrome. also, better default form input stylin…

Concerning form input styling, many of the responses that have been made before this time are broadly technically incorrect or insufficient (roca’s comments are excellent, as a developer in this very space), and no one’s mentioned that work is actively happening in this space.

On Windows, Firefox currently uses Windows APIs to draw the form controls, scrollbars, &c. where possible, and imitates the style in the places that there is no native API for it.

https://bugzilla.mozilla.org/show_bug.cgi?id=1381938 introduced a new style, available behind the widget.disable-native-theme-for-content pref. I’ve been using it for the last three months and reporting various bugs and problems. https://bugzilla.mozilla.org/show_bug.cgi?id=1615105 is tracking the remaining work before it can be turned on by default.

My opinion: the new control styles are… fine, I guess; but they could do with some not-flatness (especially for buttons), and increases in size and padding are seriously problematic on many existing sites.

Re: Firefox 76

#239
post #3

Anybody using Firefox password manager that can comment on it? Is it considered safe enough? Are the passwords stored remotely if you have multi-device profiles? Edit: I asked because I see that some of the updats are related.

I have a huge problem with how Firefox handles asking for a master password (if you want your password to be encrypted on disk).

Sometimes a small pop-up windows opens and ask you to fill your password. No other indication of which tab, which site, of even which Firefox profile opened it. It is not always the active tab. Also after unlocking it remains unlocked indefinitely.

Lockwise itself works nicely, it is just a reskinned version of the usual password manager.

Before you commit, you might want to know that there is no export feature.

Re: Firefox 76

#240

Earlier quoted context omitted.

It seems that it's faster on every website I use except Gmail, Google Voice, and Youtube. I wonder whether Google is using some sort of Chrome-specific javascript to make those sites run faster in their own browser?

I'm not sure if this is still the case, but Youtube used to use WebComponents v0 which has to be emulated in JS in non-Webkit browsers, since only Google ever implemented v0, while everyone else agreed it required a bit more work, and other engines run v1 instead, which is not compatible.

The main YouTube site seems to still be lousy in Firefox. Buttons that should open dropdowns (e.g. the top right corner user icon and notifications icon) don’t. If I want to actually see notifications, I need to tack ?disable_polymer=1 onto the URL and experience the ancient site!

YouTube Studio doesn’t suffer from these problems.

Post reply on HN