296 comments

[ 3.6 ms ] story [ 267 ms ] thread
Ooooh wow. This might be enough to get me to use Firefox to develop with. This could be huge for its market share, a big part of the reason chrome was able to become so popular was because of how good its devtools were (compared to the competition at the time).

Firefox definitely managed to catch up but not before lots of devs switched to chrome and stopped checking for compatibility with Firefox.

There are still a lot of QoL features that Firefox DevTools misses. For example autocomplete for CSS classes, a tab for handling Service Workers, commands to perform actions (like disabling JavaScript), etc.

I find myself switching between browsers just to take advantage of the different features each one provides which is slighly annoying. I would sincerely love some kind of unified DevTools.

Yeah, and vice versa as well, of course - for example, I don't think the Chrome DevTools tell you why certain CSS declarations do not apply.

That said, the Firefox DevTools have been progressing really fast since the rewrite to React was completed, so I'm hopeful that it'll practically be the unified DevTools soon.

One reason that I use Firefox DevTools mostly is because in the inspector it shows you what events are attached to a DOM element. It's really helpful for debugging legacy applications. Sure, Chrome has something similar but it's a bit more hidden.
Firefox sure has CSS auto-complete (at least in the inspector).
Do you really think the web developpers that use advanced dev tools can make a real difference in their market share? (real question)
It happens because applications will stop working on chrome if developers never test on it. The recommendation when a user hits a bug will be to check it in Firefox and slowly Firefox will become the reliable/advanced/working option.

It’s happened with IE, Chrome before and will swing back away from Chrome eventually.

IE was stagnant and shit, Chrome isn't.

I may not like the Chrome monoculture happening at the moment but that doesn't mean Chrome is the same dumpster fire that was IE. And Google are hardly going to let Chrome stagnate when Chrome is the perfect vehicle to local users into Google's non-free ecosystem (I say "non-free" because you pay with your privacy)

You don't just pay with your privacy. It's not a one-way street. Google's knowledge about you feeds back to you, as they attempt to manipulate you in the way that best increases the money they receive from their advertisers.

But if we want people to stop being locked into Chrome, the best way is to cease to support it. If stuff works in Chrome, that'll be because Chrome supports web standards properly, and not because there's some proprietary random Google standard-they-just-came-up-with that it relies on. (I'm looking at you, <portal>.)

Don't contribute code to Chromium; instead, contribute it to a popular fork (like ungoogled-chromium), or a different browser altogether. Until Chromium is a less-centralised project, you're pretty much just giving a competitive edge to Chrome, and hence Google's near-monopoly on the web, without Google having to put in the resources to do it themselves. You're working for Google for nothing.

Not necessary but they are the ones which develop websites. I use Firefox daily for my job and that ensures that whatever I build will have a 100% Firefox compatibility.
They might, indirectly. If web developers use chrome as their main browser, they test their sites on chrome more, and in the end websites just work better in chrome. And this is what can make a difference in their market share.
Developers in general are very influential.

Not only among our family and friends, but also because our choices create a lock-in effect due to the nature of our work.

When you use Chrome day in and out, your work is going to be optimized for Chrome and will work best on Chrome. This led to a Chrome-optimized web and while Google isn't necessarily to blame, we're back to the days of "works best in IExplorer 6".

Companies and products that attract developers will eventually attract regular people as well. You could say that this is a chicken and egg problem, developers following the users, but with few exceptions (like the iPhone) in my experience thus far it's usually the developers that come first.

---

It's worth mentioning that Chrome isn't popular only because of its technical excellence, but also because of Google's incessant marketing and bundling. But if we remember Microsoft and their declining browser market share, marketing and shoving your products down people's throats isn't enough. The product, especially if it's a platform, has to not suck and to be used by developers as well.

So yes, if other browsers like Firefox want to stay relevant and grow, a major requirement is to provide excellent developer tools.

Kudos to Mozilla for understanding that.

Developers and computer geeks have been overestimating their influence for over a decade. If geeks were influential, the “year of the Linux desktop” would have been years ago, no one would be on Facebook, and people wouldn’t buy into Apple’s wall garden and people would care about “freedom”. Definitely no one would have bought the iPod since it “had less space than the Nomad and no wireless”. (https://slashdot.org/story/01/10/23/1816257/apple-releases-i...)

The consumerization of technology happened a long time ago.

> Developers and computer geeks have been overestimating their influence for over a decade. I

It's a lot easier to get people to switch browsers than OSs.

One is a click or two. The other feels like you are breaking this expensive machine.

When someone buys a computer that works after turning it on switching oses seems risky.

You can't talk about Chrome's market share without mentioning that it was (maybe still is? I don't know) prominently advertised on the google.com homepage.

Everyone who went to search Google saw the ad. It said something like "Try a faster browser"

The fact that Chrome was advertised on the most popular page in the world, and especially that it was the only ad on that page, definitely made a difference in adoption.

The quality of the dev tools has nothing to do with it.

Source? I don't remember such an ad.

Speaking as a dev, the dev tools had a ton to do with it.

> Source? I don't remember such an ad.

I too remember seeing this ad every time on Google's search page, but it's hard to search for articles mentioning it now, because any search on keywords "google chrome ads" return completely unrelated results.

There are these old questions:

* https://support.google.com/chrome/forum/AAAAP1KN0B0FrX8mjNQu...

* https://support.google.com/websearch/forum/AAAAgtjJeM41xpRdM...

* https://support.google.com/chrome/forum/AAAAP1KN0B08liXq3dy9...

* https://www.quora.com/Why-am-I-being-shown-ads-for-Google-Ch...

Also this news piece: https://www.techspot.com/news/79940-how-youtube-employees-ki... While the article is about Google advertising three different browser in that particular banner, you can see on the screenshot there is another ad, that is just for Google Chrome. That's the ad that was shown all the time on Google Search and Youtube.

Thanks! I guess the Chrome ads on Google/Youtube show the influence devs can have after all =)
All geeks don't hate FB and Apple. Your vantage point may be too far. Chrome's dev tools did have a lot to do with its rise in use among devs.
Over a decade? Try 3, and that is in the conservative side.
Dell once sold a “Developer Edition” laptop, so there is definitely a sizable market and developers do have some influence.

https://www.dell.com/en-us/work/shop/dell-laptops-and-notebo...

Damn, that's kind of a nice laptop. Pretty tempting actually, though I'd probably install Windows on it personally.

I was curious what specs made it "developer"-mode, and it looks like it's just a really big battery, very bright screen with good viewing angles, and easy to open with one hand (and a stable screen when you're moving around with it). Seems like it's specifically aimed at devs that work remote jobs and might be working outside from time to time?

Still, neat idea.

They still sell a Linux variant of the XPS series, which works mostly fine. It's not a patch on the X1 Carbon, but it's functional.
Not sure what you mean, but as an anecdote I quit using desktop Linux years ago and whenever I go to developer conferences, the majority are on MacOS and I think I see more people on Windows 10 than on Linux.

That people wouldn't buy into Apple stuff is a big assumption, because we did do just that, for better or worse. Speaking of which, I see many more successful commercial desktop apps for MacOS than for Windows or Linux combined, even if Windows still has a much bigger market share. And this happened since before Apple's App Store for MacOS became a thing.

I was also one of Facebook's early adopters, many of my programmer friends were too. Being from Romania, let me tell you, the early adopters here were all software developers ;-)

There might be some bias in there.

" see many more successful commercial desktop apps for MacOS than for Windows or Linux combined"

Office profits by itself would crush all MacOS application sales.

Maybe it is easier for the single developer to create something profitable on MacOS but that's because the bigger players have marketshare over windows in the profitable niches.

Office has always been available for the Mac. How many indy developers and small shops outside of games really have been successful making software?
You can trivially pick out the macs visually how are you picking out who is running Linux?
> If geeks were influential, the “year of the Linux desktop” I don't see how that's relevant, if I set up or recommend Firefox on my parents computer with ad block they're going to trust me and use it over chrome/safari/edge. If I set up Linux instead of windows they're going to be extremely confused, annoyed and won't let me touch their computer again..

Geeks are extremely influential to their non technical friends but why would you ever impose Linux on them? I don't see how it would benefit them and you'd have to deal with the endless fallout and questions that arise.

I think you're overestimating how unpopular those things are with devs/geeks. As a current (comp sci) college student, I can say that while less popular than in the general public - Windows, Facebook, and Apple's ecosystem are still used by a large number of my peers.
> This led to a Chrome-optimized web and while Google isn't necessarily to blame--

Uh that seems to imply that Google has not been striving to accomplish exactly that. Because they surely haven't been working to prevent a browser engine mono culture. Which is kind of your only option, if your browser engine holds an absolute majority of usage and you don't want to be "to blame" for the browser engine mono culture.

Seriously it puzzles me, how is this not Google's doing.

I mean it's understandable they would do it. They're doing it. Who else would be doing it, the informed preference of millions of users? That would be a first ...

I don't understand your point.

When you build a product, the purpose is to get customers / users, as many as possible. And when you win a majority market share, then that will make your product a de facto standard.

Google could have introduced a lot of proprietary, non-standard extensions to Chrome (not Chromium, but Chrome itself, aka the proprietary version), screwing everybody else in the process. Think Microsoft's ActiveX or XAML.

And while there are some glaring exceptions — like Chrome being responsible for the standardization of DRM, which is now keeping smaller open source Chromium forks out of the market, Google has been playing nice with web standards organizations, being major contributors, alongside Mozilla. And sure, they are in a position to impose pretty much anything they want, but they are fairly conservative in picking their battles, PNaCL versus WebAssembly comes to mind.

Google might be guilty of anti-competitive practices, but in my opinion it is the software developers themselves that are to blame for a Chrome-optimized web. This is because they (we?) continue to use Chrome for optimizing and testing web interfaces, while neglecting Firefox and Safari.

Why "Download Firefox Nightly for macOS"?

Is it not supported on Linux and Windows? Why?

https://developer.mozilla.org/en-US/docs/Mozilla/Projects/We...

> Currently only macOS is supported.

As for why - no idea.

It's probably because its cheaper, and most web developers are using macOS anyway
Have been working in web development for years, also with many coworkers. I don't know anybody with macOS except design people...
That’s interesting, since nearly all of the developers I know working full stack are using a mac. Maybe it’s a regional thing.
Seen any web conference where a crapload of people (including many/most of the speakers) didn't have a MacBook?

So, while it might be far less in the general market share, and even web dev share, it's more in the "kind of developer that goes to conferences/presets/etc" share...

Of all developers I know, only 2 prefer macOS (in general). Most people are either on Windows or their favourite flavour of Linux.

These are not just web developers though, they're full stack developers; perhaps pure frontend developers are more prone to use Apple products?

Go to a Rails conference. Or a Node conference. Heck, even a Java conference. Half the people there have MacBooks, and usually more than half of the speakers.

At least far more than Apple's general market share.

Selection bias. People who go to tech conferences make up a tiny share of all the people working in the industry. Plus they're far more likely to look towards other people going to those conferences for "trends" than to the majority who don't, thus reinforcing that bias.

Even most designers I know personally don't use macOS. But if I was going by what I see at JS conferences, you'd think Apple has a 99% marketshare (although things have improved in recent years with "full stack" bringing in Linux folks and Microsoft's investment in dev tools making Windows more appealing).

This is similar to how everyone at these conferences seems to have one of the latest iPhones yet (depending on where you live) the majority of smartphone users uses Androids and those who are using iPhones generally hold onto them for years before upgrading.

Also FWIW as a long time JS dev, it seemed to me like Rails actually was one of the major contributors to the macbook monoculture because Rails (in the early days) was popular with startups who also often focused on iOS apps first, which means they had no other choice than to use macOS for development. As iOS became less of a focus than web dev, the macbooks stayed and only now seem to be slowly replaced as Microsoft is making a heavy push into web dev relations and the opinion of Apple's quality gets tarnished by dev-unfriendly decisions and hardware problems.

>Selection bias. People who go to tech conferences make up a tiny share of all the people working in the industry.

Yes, but they're also more influential in the respective communities, and more probable as presenters to be writing stuff others use (e.g. this Firefox dev tool).

So they'll use what they personally use to develop.

>Also FWIW as a long time JS dev, it seemed to me like Rails actually was one of the major contributors to the macbook monoculture because Rails (in the early days) was popular with startups who also often focused on iOS apps first, which means they had no other choice than to use macOS for development.

I don't think that's the case - Rails confs/devs was mostly Macs before iOS apps where a thing (which happened 4-5 years after RoR was released).

Interesting. It definitely didn't seem the case for web dev outside of Rails though. In the mid-2000s it felt to me like the default was Linux (because servers were running Linux) and beginners started on Windows (because that's what they already had at home). But then again web dev mostly meant LAMP (or WAMP for development, via XAMPP).

But this may be a regional thing (so selection bias again). When I was freelancing as a Python web dev, the few places that used Python usually used Plone/Zope (barely anyone used Django or Flask) and there were even fewer places using Ruby except startups. The popularity of Plone/Zope seems to be very much a German thing, just like SuSE Linux and Typo3/Drupal (instead of Wordpress). We've even had a very large Firefox marketshare until fairly recently (because of privacy concerns over Google Chrome).

That said, in European JS conferences over the past five years I'm definitely seeing more and more non-macbooks each year.

As the other commenter noted, RoR precedes iOS third-party development by 5 years. And Macs were already popular among web crowd in the early 2000s. I too got interested in getting a Mac after seeing countless screenshots in CSS books.
Because it's experimental and you have to start somewhere.
I think they are printing out the OS based on your user agent.

EDIT: sibling comment cleared things up, so mine is irrelevant

Presumably the implementation is platform dependent and they wish to start with where they believe the most relevant developer mindshare is. I'd guess it's still somewhat tricky for them to playback different replays across platforms.
My prejudices about Apple missionaries are no coincidence.
“Almost all implementation work so far has been on macOS. Windows port work is underway, but is not yet working. The difficulties are in figuring out the set of system library APIs to intercept, in getting the memory management and dirty memory parts of the rewind infrastructure to work, and in handling the different graphics and IPC pathways on different platforms.“

From https://developer.mozilla.org/en-US/docs/Mozilla/Projects/We...

It makes sense to start with OS X. Lots of front-end work is done on that platform. If you are targeting IOS or Safari, you pretty much need to be on OS X for testing.
(comment deleted)
More than Linux? Maybe that's a US thing.
Only macOS is supported right now. Web Replay's architecture should allow it to work on any operating system: the OS features needed are not specific to macOS or to POSIX systems. Still, porting it to other POSIX systems (Linux, Android) will be easier than Windows, due to the overlap with macOS. There is, however, a partial Windows port from an older version of the architecture that can replay a simple page but not rewind, which should make writing a complete Windows port easier.

From: https://developer.mozilla.org/en-US/docs/Mozilla/Projects/We...

Especially as macOS users are the most likely to complain about Firefox's performance. Well, maybe that IS why
This blew me away a bit. Is MacOS this popular in the Web frontend crowd?

I always felt that the price/quality ratio was way off with MacOS, compared to a good regular laptop. By good I mean top 10% ranked by price/quality. Even if it wasn't, Apple's general hostility towards consumers is infuriating. Right-to-repair is a banal example.

> Is MacOS this popular in the Web frontend crowd?

Yes, and seemingly in the web backend crowd too (Ruby, PHP, Python but not as much AFAICT).

If you go to a web conference and don't pull out a Mac, you do get comments and/or questions (depending if you're running Windows or Linux).

At Python conferences I've seen fewer Macs and more of the good old ThinkPads running Linux. My feeling is that community has a more "Computer sciencey" taste in laptops, because they're not all web programmers.

> My feeling is that community has a more "Computer sciencey" taste in laptops, because they're not all web programmers.

Or maybe just because they _can_ be bothered to spend a few days setting up their laptop just right and actively maintain it.

I'm a fairly advanced user but I can't be bothered to do so on a laptop and would rather have a Mac to carry around and GNU/Linux on my desktop.

Yes it is indeed very popular. All of my friends in IT switched to MacOS over the last few years, and I see more and more devs using Apple devices in web agencies. Because it looks good, it looks more pro.
Last seven years, all the companies I worked at had the majority/all devs using Macs. That's not only frontend, but backend (Java/Scala/PHP) and Android devs. And this was not in the US.
It's popular indeed.

It gives you a well rounded OS with a Unix terminal. I think MacOS is more consistent than Windows or Linux with a better attention to details (though I haven't used Linux for almost a decade so things might have changed a bit) which make it more pleasant to use.

Also, the previous generation of Macbook Pros was just really good, sturdy hardware. Hopefully the new update will fix the flaws of the new design.

Lastly, a lot of people get laptops from their company, and companies don't mind a one time extra cost of a few hundred dollars.

I'm currently writing this from a Dell laptop, and I have to say, while the hardware has caught up with the Macbooks in terms of build quality, I still miss MacOS.

I think it is popular but it is an expensive laptop.

I have started using a Chromebook with 8G of memory and like it much more ... but I am probably in the minority. :(

While I agree, a lot of people (including me) don't have a choice; I simply need mac os x for ios apps. I tried everything, like having a remote mac desktop etc; it works ok, but it's really not for long bouts of work. Everything else I can do on a chromebook (or whatever laptop/hardware).
We're talking about the primary tool used by highly paid professionals. A few thousand dollars just isn't that much, especially when your employer is paying for it.

Once you're price-insensitive, the quality looks good for macs, keyboard issues notwithstanding.

Firefox Replay supports MacOS while we're validating the feature. When it comes time to plan for releasing replay we'll work on cross-platform support.

Unfortunately, Replay hooks into low-level OS system calls to do the recording, which makes it non-trivial to support other platforms.

Yes, and for backend and mobile too since you can build for android and iOS.
I like Mac OS, and get really frustrated when doing development on Windows machines. All the toolsets that are available on Linux are also available on Mac, which is a huge convenience when switching environments (e.g. from a mac terminal session to a linux one). Mac OS gui is pretty slick (e.g. its file-rename is pretty slick), and for their laptops, their trackpad is best in class, still; but I get pretty irritated at (1) the cost of Mac products (2) the constant OS churn which makes my old applications no longer work and which inevitably slow older machines to a crawl. What has prevented me, among other things, from just going fully Linux, is the ability to install certain common consumer products with minimal hassle.
This looks great, it's good to see that Firefox is pushing new dev features, instead of playing catch-up to Chrome.

Does Replay work on the Firefox Dev build?

Seems to be a MacOS only feature.
The biggest benefit for me (I think) would be if the product/design people I work with could find issues and send their recordings to me. Don't think I'll be able to convince them to switch to FF though.
I use Chrome, Safari, and the Firefox Nightly. Not sure why there’s so much dedication to one browser.
Because they all eat a lots of RAM...
This is a good comment, I use FF Dev and Chrome RN, the current project I'm working on is Chrome only. It's nice for context switching (docs, etc in FF, debugging & development in GC) but I was not able to do this (1y ago) on my 2013 MB Pro, it was simply to slow.
you can right click on a tab in firefox, and switch that tab to this or that context ;)
I have a 2013 Mac Book Pro with 16 GB of RAM. They all run fine at the same time.

I also have Xcode and several other apps open.

Don’t skimp on RAM. My next computer will have 32GB of RAM. It’ll extend the usefulness by years.

That is one benefit of going all in on one of the immutable state management libraries. You can maintain past states and on a bug report attach the whole history to be able to play through it.
https://birdeatsbug.com is great for that kind of thing
Important part:

$0; Essential features; Up to 3 users

$50 / month; All features; Unlimited reports; Up to 10 users

...

Hot take: If you’ve got a team of more than 3, and you can’t afford $50 a month for a tool, you’re doing something wrong.
It's not like you can pay infinite tools at $50 a month. And if you don't care at all it's unlikely you're there to stay
True (to be fair, I did say it was a hot take :) ). But assuming this is a salaried team at a cost of $150k per employee, a $50 per month expense amounts to 0.4% of salary.

You're right though, it can add up quickly. Do that 20 times and you're at nearly 10% overhead. It's also a big assumption that the team is salaried. It might be a team of founders, or an open source project.

Ultimately you just need to decide which SaaS solutions are most important to your team.

I would say that it’s also about team output. By getting rid of a productivity tool, you will decrease expenses, but simultaneously productivity and therefore revenue will suffer.
Co-founder of Bird Eats Bug here. It's so great to hear!
As glassounds mentioned in the comment, Bird Eats Bug is actually covering that use case. Feel free to reach out to me directly if you have more questions: dan@birdeatsbug.com
Looks potentially really useful, but is it normal for them to create a whole site just for one new feature?
vivaldi put a ton of effort into presenting each update, fancy graphics etc, but yea creating a unique domain for a feature is pretty strange alright
If it is a killer feature, and that's a marketing move - why not. Looks like that Firefox been working hard lately to change trends in browsers' market share.
This didn't work for me.

1. I installed the nightly build as told.

2. Open nightly build

3. Went to the "Save Recording" option

4. The first two times, I got a [javascript error] saying I could not record.

5. The remaining couple of times - after I open a "New Recording Tab", whatever that is - I didn't see the javascript error but the website whose clickthru I wanted to record using this tool didn't even load in that new recording tab.

Just this morning I recorded a clickthru like caveman using Quicktime. Can't wait for FF to iron out the kinks in this feature.

If you’re on Windows, try the built-in Steps Recorder (formerly known as Problem Steps Recorder)
Hmm, join us in http://devtools-html.slack.com/ and we'd be happy to help you debug it.

If the tab crashed, you can get the report in about:crashes

What do I do if I don't have mozilla or chromium email?
Is this an official thing from mozilla? If so it is extremely disappointing that they promote slack.
If you have an @mozilla.com or @chromium.org email address, you can create a Slack account. If not it seems like you might be out of luck.
So in its scope this somewhat similar to Cypress.io?

https://www.cypress.io/

I don't use Cypress anymore as it didn't work for me but doesn't look like it. This is for debugging rather than testing.

Also the timeline in Cypress didn't actually work too well for us.

Is there any way to make this work in automation? This could really help with debugging failed e2e firefox tests.
We actually have something similar for this for tests at Testim (https://testim.io) but only for tests with screenshots and state.

Would people be interested in us open sourcing that part for regular debugging? I have considered it but I didn't think people would be interested in using this in a non-test case.

No Linux support :(
Not Linux support yet I hope :)
For those interested into how this works, look into Time-Travel Debugging and the WebReplay API
This is a pretty nice comment from the source that explains how it works: https://github.com/mozilla/gecko-dev/blob/11d9c7b7fa82fdfb8a...

``` // Recording and replaying works by controlling non-determinism in the browser:

// non-deterministic behaviors are initially recorded, then later replayed

// exactly to force the browser to behave deterministically. Two types of

// non-deterministic behaviors are captured: intra-thread and inter-thread.

// Intra-thread non-deterministic behaviors are non-deterministic even in the

// absence of actions by other threads, and inter-thread non-deterministic

// behaviors are those affected by interleaving execution with other threads.

```

What is non-determinism in the browser?
Inputs that are either random or subject to change (api responses, user prompts i.e.)
Based on the grandparent, it sounds like race-conditions and random number generation fit the bill.
My guess is that "optimisations" (shortcuts) in calculating the final layout, mean that the final layout is not entirely deterministic.

It probably varies slightly, due to the entangled nest of dependencies that is responsive HTML rendering...

I don't know but if I had to guess: order of responses coming in from the server, interleaved with timer events and user events.
Once source comes from the memory allocator, and the pointers it gives out.

If you have an ordered map of pointers (e.g. std::map<void*>), iterating over the map will not be deterministic because the pointers given by a (regular) allocator are not deterministic.

This may be true in c++ but I believe is not in JavaScript. The language defines iteration order over keys of an object to be the insertion order (except numeric keys which are in ascending order). Not sure if there's anywhere that iteration order is actually nondeterministic that's allowed by the spec.
Nondeterminism is every place where information can enter your program from the outside world.

It's random numbers, the system clock, data off the internet, and input events from the user.

What it sounds like is that Mozilla has come up with a debugging environment that bottles all that nondeterminism up into a neat little package so that it can replay a specific run of your program any time you want.

Sounds like Mozilla is applying the concepts they developed for their C/C++ debugger, rr (https://rr-project.org).
Exactly what I was thinking. I wonder when Chrome's going release their version!
Depends whether anybody writes it for them, or whether Google has to make it on their own.
That's exactly right

Brian Hackett collaborated early on with ROC. Here are the basic principles of Replay (https://developer.mozilla.org/en-US/docs/Mozilla/Projects/We...).

In a nutshell, replay records Firefox's OS system calls, so that that Firefox can read from the recording when replaying.

For what it's worth, the DMTCP [1] user-space checkpoint/restore system does that (and more). C/R is a way of doing coarse batch-based reversible debugging, typically of distributed HPC programs, and FReD [2] is a(n unfortunately dead) reversible debugger using DMTCP record/replay. 1. http://dmtcp.sourceforge.net/ 2. https://arxiv.org/abs/1212.5204
From a user perspective, we are trying to focus less on rewind and step back and more on adding logging retroactively.

The best way to think about this is when the user adds a logpoint, they'll immediately see the logs in the console.

We hope that making logging much better is a great way to help people better understand the recording.

adding log statements retroactively - that's awesome
This seems to mean that a recording done on x86_64 MacOS can't be played back on aarch64 Linux, which is a shame for something that apparently is for javascript debugging. Limitations like that are more understandable for rr, which is intended for use with native processes.

It also looks like a maintenance burden which will increase the difficulty of supporting an OS for Firefox. Stuff like that causes Firefox to drop support for an OS, and it makes developers hesitant to add support for an OS.

System calls can do all sorts of crazy stuff behind your back. Think of ioctl and fcntl. Just knowing what memory they modify is difficult. It's been lots of trouble for tools like strace and rr. Hopefully you won't encounter worse, like vfork and clone.

I think WebKit has a similar feature, though it seems to work at a higher level than the one Firefox has (disclaimer: I haven’t used it, so I could be totally wrong). From what it looks like, Firefox hooks things at a much lower level and currently relies on some very Mac-specific features like Mach exception handlers (I’m actually curious as to how it works: is there a file or two I can glance at to skim the implementation of these?) Why perform the interception at this level? How do you plan to implement this on platforms that don’t have equivalent task APIs, e.g. Linux?
is this like Postman ?
No it is not. It is a browser feature that allows rewinding to a previous state of a webpage. There is much more to that than recording and replaying HTTP requests.
Looks interesting but too bad it only supports overpriced macs making it useless
While Microsoft is making great effort towards opening, it is sad to see Firefox develop a feature working on Mac OS only. This is terrible because you might argue that this is the same as a feature working on Windows only, but Windows can run on different hardware manufacturer. This is like a double closing. I am on Linux and I will uninstall Firefox as a repercussion hoping it will have an impact. Too bad for the last hope for a chrome alternative.
Don’t you think that’s a bit of an overreaction? Maybe it cannot work on anything but OSX?
Yes it is an overreaction. Whenever I see something working on Mac OS only I can't help myself but think that something went wrong in IT since 2000.
> Firefox develop a feature working on Mac OS only.

Looks to me like this is an experimental feature in Nightly. If it's highly system-dependent I can't blame them for testing the feedback as early as possible, before other systems are supported.

Question for Mozilla people here, if anyone sees it - is there a plan to bring this feature across all systems in time for regular Firefox release?

Last I heard, WebReplay was not on an official roadmap (in the sense that we do not yet have a target date for shipping it in release). That said, I'm pretty sure that the macOS-only restriction is just because that's what the primary developer is using, and it's a higher priority to get the system-independent parts working first. If/when WebReplay is ready to ship, I can't imagine a world where support isn't eventually added for Windows/Linux (although it could be a phased rollout, like WebRender).
The feature needs OS-specific work, so one platform had to be first, and for whatever reason MacOS was chosen. It's more useful to have it working reasonably well on one platform, to get feedback on the feature, than to have it in a bad state on all platforms.

So, no need to over-react. If Mozilla decides it's worth shipping, they'll port it to other plaforms.

I would be worried about this if the plan was for it to only support MacOS on mainline Firefox. This is Nightly, two release cycles ahead of regular Firefox, and support will be coming to other platforms: "porting it to other POSIX systems (Linux, Android) will be easier than Windows, due to the overlap with macOS" (https://developer.mozilla.org/en-US/docs/Mozilla/Projects/We...)
This comment doesn't even make sense, as with a little digging you could've found this[0] information yourself:

"Windows port work is underway, but is not yet working. The difficulties are in figuring out the set of system library APIs to intercept, in getting the memory management and dirty memory parts of the rewind infrastructure to work, and in handling the different graphics and IPC pathways on different platforms."

In fact, their documentation makes a specific call-out to TTT (Time-Travel Debugging) on Windows; so, I suspect that this is the API that they would like to use but are unable to do so at present (presumably because many of the features are still lacking in the API, which Microsoft could - and most probably would - enable).

[0] - https://developer.mozilla.org/en-US/docs/Mozilla/Projects/We...

What a ridiculous over reaction.

* this is still open source. Fully open source.

* this is currently only available on MacOS

All that looks to have happened is the developers of this single feature that is in the nightly build are using Macs. It is wholly reasonable for them to only support one platform at this point. If it is a good feature they, or other devs attracted by this preview will port it.

How is this different from recording in Chrome Web Dev tools?

To be clear, I use both Chrome and Firefox for development but just to the surface level, so I'm probably missing the point here.

I'm not too familiar with "recording in the Chrome devtools", but this allows you to actually step back as well as forward in the debugger, e.g. for inspecting the value a variable had when code executed before.
This looks pretty good. Are there any other tools like this for different platforms? I'd be especially interested in something like this for the .NET ecosystem.
I'm not familiar with .NET, but I think both the Elm devtools and Redux devtools can do something similar, although limited to their own features.
They should've put this note at the very top of the page: "Mac OS only for now!".

What is the point of promoting this to everyone at this stage?

Why not? A huge portion of developers uses Macs and windows support is coming at some point. Better to get an actual feedback from the developers.
How about linux users?
You’ve got to accept the fact they want to collect feedback from other users first and not you.
From some users first, even if that doesn't include you
No, specifically him. I’ve heard talk. I dunno what he did but he should apologize already.
Extremely featureful debuggers such as this one tend to require a great deal of code that is hardware-specific, in addition to being OS-specific. I assume MacOS was targeted first because it's the platform with the greatest degree of hardware uniformity. I fully expect Linux support to materialize someday, but with the caveat that I expect it will only (officially) work with the most popular hardware.
That's right. The only way to have a performant recording is to capture the browser's OS system calls in the recording. This unfortunately makes the feature quite OS specific.

https://searchfox.org/mozilla-central/source/toolkit/recordr...

Replay is currently in the user-research validation phase. We care about cross platform support and will prioritize it when we are ready to commit to the feature.

People on HN don't seem to like it when some other companies start their product from one platform.
Nor do they like it when they do support all platforms from day one via an Electron app...
People on HN don't like anything.
Speaking of which, I'm a little shocked to see a Mozilla thread that doesn't yet mention Pocket or the rebranding or DoH. That must mean we are in a good mood?
No, just too busy talking about Linux on desktop!
We're busy prepping to argue about UBI at Thanksgiving dinner.
Oh man. Now I really want to tell the wife to turn the car around.
Other people on HN like some things.
When that platform is Mac, certainly. For some mysterious reason you don't see complaints about Linux-only utilities :)
you can virtualize linux, you cannot virtualize macos.

no, downloading sketchy images or hacking your virtualization software does not count.

> you cannot virtualize macos.

You can, and it’s licensed to.

Since Lion:

> (iii) to install, use and run up to two (2) additional copies or instances of the Apple Software within virtual operating system environments on each Mac Computer you own or control that is already running the Apple Software.

No hassle support page on VMware site:

https://kb.vmware.com/s/article/1000131

EDIT: Amusingly on topic with gist of thread above, anger about a dev tool launched for MacOS, this fact with citations from license and support page from VMware garnered instant down votes.

Well if you can only virtualize it on a computer that's already running macos I don't know how that's supposed to help.
You can virtualize on a PC. Whether you may or not, depends whether you believe you own software.

And how it helps when you do it on MacOS on Mac hardware is letting you do all the things you virtualize an OS for, from a fine GUI on a decent kernel.

> all the things you virtualize an OS for

One of the main things I "virtualize an OS for" is to use software that requires Platform A on a system that runs Platform B. Running "legit" (authorized) virtualized MacOS does not help me do that; I am only allowed to run Platform A on Platform A.

I wish so much I had the ability to downvote
I think we'd just like to have it labelled "for Mac Only right now"
One would expect an organization dedicated to freedom to prioritize Linux support.
Mozilla has implemented DRM support in Firefox. I think Mozilla is more concerned with reducing dependence on nonfree software than supporting free software.

Just to clarify, I don't fault Mozilla for having that attitude, but that doesn't mean I prefer it. I would prefer that they prioritize FOSS platforms like Linux and \*BSD, as well as getting Firefox on platforms like Plasma Mobile, PostmarketOS, and other GNU/Linux-based mobile operating systems. Developer adoption is a necessary (but probably not sufficient) precondition for general adoption, which is why developing for these platforms is important even though they are new/unpopular.

I can see some form of replay in firefox dev edition on windows
This project is advertised on its own domain (not a mozilla.org subdomain) and there's no header/footer/link to mozilla.org.

This makes me think that it's not a feature on the roadmap of firefox sponsored by Mozilla, but an experimentation/side project.

The fact that it's in Firefox Nightly seems to blow that hypothesis out of the water
Is there some technical reason it's only for os x? I'm not really upset they targeted Macs first but I am a bit curious why they felt a need to.
Small user base to test?
Actually probably Mozilla’s largest user base
Why 'probably'? According to the stats I could find [1], Firefox has around 5% of Mac users, and around 9% of Windows users. Windows is Firefox's biggest platform, both in absolute terms and as a fraction of that platform's users.

On Linux, Firefox has a bigger percentage (>30%), but (desktop) Linux is much less popular than macOS so in absolute terms they have the fewest users there.

[1]: https://netmarketshare.com/

The statistic that matters for this tool is the distribution of developers, not the overall user base.
Mozilla’s Firefox Hardware Report has the latest desktop OS share across all Firefox channels:

  51% Windows 10
  27% Windows 7
   6% Windows 8
   6% macOS
  11% Other (Linux, BSDs, etc)
https://data.firefox.com/dashboard/hardware

I think the Firefox Nightly, Developer Edition, and Beta channels have a slightly higher share of macOS and Linux users, but not much. There are a lot of Windows users out there; you just don't see them at JS conferences. :)

The plan is to do user testing on mac and if it is validated roll it out.

Replay requires a ton of difficult platform-level investment to get right and we're still actively finding bugs in the real world.

After it is validated, it will be easier to add the appropriate platform level bindings in other OSs.

I'm really disappointed that Linux gets less attention from FOSS-supportive organizations like Mozilla. Desktop Linux adoption is a catch-22: people don't use it because it doesn't have as much software; however, it has less software because it's less popular.
Yep. It's noteworthy that over 10% of Mozilla's users are on Linux. [1] And presumably that only includes users who submit the hardware report. That's a huge portion for any cross-platform application. It's genuinely rather surprising that they don't give it more attention simply because it's a large portion of their user base, and because Linux users are more likely to submit bug reports and patches.

[1] https://news.ycombinator.com/item?id=21660399

I think there are good ideological reasons to support Linux, BSD, and other FOSS operating systems, not despite, but because of their unpopularity [0].

Edit: to clarify, I refer to operating systems that have a considerable amount of potential and existing development, not systems with like 2 users .

[0]: https://news.ycombinator.com/item?id=21660819

Firefox is a native app that is ported between OSes. It doesn't run on a VM.
I don’t want to go all “you darn kids” so I won’t. But the pervasiveness of web technology I think has made the majority of us forget why it’s pervasive. Cross platform can be really fucking hard, especially if you don’t respect the challenges and end up down a blind alley.

One of my favorite books starting out was the Stevens book about Unix. It only covers the differences in system call availability and behavior across Unix OSes. It doesn’t even touch graphics. It’s a big fat book just covering file, network, processes, and memory operations. No Mac, no Microsoft, just Unix.

https://en.m.wikipedia.org/wiki/Advanced_Programming_in_the_...

They mention it here[0]:

"Almost all implementation work so far has been on macOS. Windows port work is underway, but is not yet working. The difficulties are in figuring out the set of system library APIs to intercept, in getting the memory management and dirty memory parts of the rewind infrastructure to work, and in handling the different graphics and IPC pathways on different platforms."

[0]: https://developer.mozilla.org/en-US/docs/Mozilla/Projects/We...

Team member here. Firefox Replay is currently in user research phase while we validate it.

Cross platform support will absolutely be a priority when Replay is on the official roadmap.

Thanks for the feedback, firefox-replay.com is also a work in progress. We did not plan an official release today.

We'll be sure to make the Mac OS limitation more clear.

Here is some more context on the mac specific functionality (https://searchfox.org/mozilla-central/source/toolkit/recordr...).

Thanks for the clarification and for building this great-sounding tool. I'm really looking forward to trying this out on Windows!
> Firefox Replay is currently in user research phase while we validate it

A question about how you develop / roll this out. Do you keep the code private, or do you commit it to the open source repo as you're working with a small amount high touch users?

I guess the question is do you want a full working product when you open source it? Do you tie your PR / forum posts with publicly shipping the source code? Or is all development out in the open?

What benefits it provides than record and playback using a screen recorder?
Based on the linked MDN page (from the current top-rated comment) it sounds like the main point of this is to have a rewind-able debugger.
I am not primarily a web developer, but I guess I don't really see it.

I suppose 'rewind' would mostly be useful for Javascript applications? But in Javascript you can already debug pretty well. It's been a while, but I suppose Javascript debuggers can drop frames, like debugging other languages, so you already have a kind of rewind?

Does anyone have a good example use case for this?

I'm not quite sure what "drop frames" means in this context, but a use case would be stepping through the debugger, realising that the problem might be in a piece of code that has already executed, and wanting to inspect the value of a variable at that point in time.

Or even more mundane: accidentally hitting "Step over" twice in a row.

In most debuggers you can drop back up the stack to the code that called the function you are currently in, and thus debug through the function call again.

Example: https://stackoverflow.com/questions/2367816/when-using-the-j...

"Using the "Drop Frame" functionality you can "fall back" to a previous stack frame, in a sense going back in time."

That Stack Overflow answer is poorly worded though, looking at an outer stack frame is really nothing like going back in time. Going back in time in the Firefox Replay sense means reversing execution of the program, e.g. to find the values of variables that have been mutated or gone out of scope.
But that's what drop frame does - it goes back to the state before your current function call, including resetting variables. It does not revert global state (like static variables) but it is essentially like reverting execution 95% of the times I use it.
It doesn’t really ”go back”, it just shows a different stack frame, which is part of the current state of the program.
It sounds super handy for the hard to catch bugs that happen let's say 5-10% of the time and the bug might be originating from a wrong event or still hanging event listener.

If your app is something that takes time to react on events to unroll, then this could save you lots of time. I made a music player and just by the nature of timed events it took quite a long time to catch edge cases I did not foresee in the prototyping phase.

As a former gnu/linux user, I see no point to have it on a desktop. Gnu is happy to live under c:/MSYS2, and ‘linux’ part was never good at desktop-home hardware anyway. These 1.77% are barely justified as an option, imo.
After struggling with GPU drivers, again, the last couple of days, I could not agree more!
I'm assuming these were the closed source proprietary GPU drivers.
I assume this was nvidia. AMD and Intel drivers are finally in a good state but nvidia is as bad as ever.
> As a former gnu/linux user, I see no point to have it on a desktop.

Except, of course, software freedom.

Which Mozilla doesn't care that much about.
True, Linux on desktop sucks out of the box. But Windows and Mac suck and it’s not possible to make them good. Personally, I just switched back to Linux after 10 years on Mac. It’s a rough start but now it’s better than Mac and I can continue building the environment I want.
I don't know what you're talking about. I've used Debian, then Ubuntu for decades. I'm lucky I don't need the few commercial apps that hold people back, so I get the advantages of everything just working, with a good package system that whole time. These days so much is available in the browser or distributed systems, it's even easier.

As for 1.77% (excluding ChromeOS and Android based desktop apps, of course), I'm going to guess those people are more significant in terms of software development and user advocacy, on their own and in networks, than the bulk of users. Certainly constantly compromising and taking the enclosed garden path has its drawbacks for the larger community.

I’m talking about numerous issues that I had with linux kernel (and alikes) on desktops and workstations for decades.

My story is freebsd 4.x-7.0, then debian (codenames I forgot), then OSX 10.5-10.9, then unbuntu/mint since ~ 2014-2016 maybe (when gpu and os updates broke it again). I also supervised an entire office of debian/ubuntu + printers & scanners for few years. I’m not what you would call a regular linux hater, and it has it’s own unquestioned throne at the server side.

But struggling with the drivers, laptop battery health, suspend issues, lack of business software, configuration, etc etc etc is too much for a regular user who wants things to be done. I was trying to create a scalable solution of win->linux transition for small offices at our company, and it failed. I was converting simple (non-gaming) home users to linux, and it failed most of the times.

I’m not even going into partition and breaking changes in DE teams here, which are de-facto your walled garden version of corp, inc.

>constantly compromising and taking the enclosed garden path has its drawbacks for the larger community

This I am not doing though. I’m using all the software you’re using, including bash, ls, soffice, gcc, etc. I’m all gnu, all unixway, but just not linux kernel & DE and that only on a desktop.

>those people are more significant in terms of software development and user advocacy

But I am one of them, except probably 20x of average experience and real advocacy attempts.

I've had more problems with my brand new (2 month old) macbook pro, than with my 5 year old home linux laptop.
I'll throw my experience in as well. I recent memory within the past year, I count upwards of 5-6 different people coming to me with problems on their preinstalled, officially supported Windows laptops, where one day something just outright stopped working because of a background update or random registry change.

One couldn't launch any games because one day out of the blue Windows installed a second graphics driver alongside their first one for no discernible reason. One out of the box couldn't connect any external monitors or get any signal from its HDMI port. One had its audio stop working, and I never found out what the problem was -- for all I know, it still doesn't work. Just the other day I was updating a laptop at work and discovered that every 3 minutes the mouse drivers would just stop working for 1 minute. When I upgraded a Surface Pro 3 to Windows 10, I ended up with 2 OneDrive folders and half of my documents permanently deleted. Then I had to download a 3rd-party firmware driver that was only rated for Windows 8 and wasn't linked anywhere from Microsoft's site to do touchscreen calibration again on the Surface device that Microsoft built.

Which, OK, I'm not going to pretend I haven't seen weird stuff happen on Linux. But these are officially supported devices that only have one job -- to work with Windows. And people run into these problems, go on to 4 year old abandoned Microsoft forums that tell them to start messing with their registries or randomly installing drivers, and then turn around and tell me that they can't use Linux because AskUbuntu isn't "real" support.

All of this is anecdote of course, but at the end of the day I make decisions based on which platforms by my experience cause me the most trouble. Linux causes me less trouble than Windows.

Linux these days, if you just want a working desktop experience, requires no configuration. You pop in an ubuntu usb drive and install, done. It will often run better than the version of windows that the machine actually shipped with. Myself, personally, I stopped running anything but linux more than a decade ago. All I remember from windows is how often it broke in ways that were completely unfixable.
Until you need to use an external device - camera, microphone, speakers, printer, scanner... most of the game mice keyboards...
You can get every of those devices with Linux support with a bit of research before buying. It's not the fault of Linux if the manufacturer of your hardware doesn't care about the platform.
Firefox and Chromium crash constantly on a fresh install of Ubuntu 18 on my Thinkpad T420. Only excuse I can think of is that it's an old machine.

I want to switch but every time I kick the tires I'm baffled at how quickly it blows up.

It really sounds like a hardware problem. Linux excels on older hardware.
> These 1.77% are barely justified as an option, imo.

It's actually 25.6% for developers (Firefox Replay is a developer tool after all) according to the StackOverflow survey: https://insights.stackoverflow.com/survey/2019#technology-_-...

And it is probably even higher among developers who also use Firefox. Anecdotally most Linux users use Firefox, while for developers on Mac it is mostly Chrome.
Just for perspective: 1% of 1 billion is 10 millions. That's a lot of people and then some.
I'm not going to get into a flame war over marketshare, because I couldn't care less -- from my perspective, there has never been a better time to use Linux on the desktop, and its never been in better shape than it is today.

That doesn't mean everything is perfect, or even good. I'll complain about HDPI scaling, touchscreen support, and security all day. There's some real stuff to improve.

But, I also take that criticism with a bit of perspective, and the truth is that Desktop Linux overall is really good, and it makes me more productive, and it makes my life better, and the overall direction that the desktop is moving is positive. There are things that Linux does better than any other modern OS, and I find that using it as a daily drive is un-complicatedly, un-idoiologically, purely-practically nice.

It wasn't nice in the past. When I was growing up, using Linux required pretty substantial sacrifices. I don't have the same reservations recommending something Ubuntu or Manjaro now that I used to have.

Even on the nontechnical side, if I'm going to provide computer support for someone, I usually stick them on Linux, because I have more control to simplify their environment and it's easier for me to quickly solve their problems. It's really good, I appreciate all the hard work that's gone into getting it here, and I'm optimistic about its future.

I've been using Linux on the desktop for 20 years now (Debian mainly) and I think things have never been as good as they are now. Its not important (to me) that there are only ~2% desktop users, just that FOSS continues to evolve at the same pace as it has...
Developers primary os

https://insights.stackoverflow.com/survey/2019#technology-_-...

Windows 47.5%

MacOS 26.8%

Linux-based 25.6%

BSD 0.1%

2% of yahoos and nobodies run Linux on the desktop 1 in 4 developers do.

Linux like Mac has never had and will never have perfect support for all hardware. Much like you can buy a Mac from the store you can buy a well supported system that comes with Linux.

Unlike Mac you can install it on a lot of systems and go.

Regarding Mac OS: looks like, on Windows FF Developer Edition I can access it's UI from creating a boolean in about:config named devtools.recordreplay.enabled

A new option in settings will be added to enable a Toolbox Button named "Enable WebReplay", but pressing that button will replace the entire tab content with an about:blank

If this works well, it could eventually be a very big boon for Firefox in the business world. Q&A can now send reproducible bug demos to development. Technical clients can do the same. I wouldn't be surprised if someone built tooling to map these recordings into automated tests either: expect the given recorded workflow to not throw errors.

I can't quite remember when I had a bug where a tool like this would've been useful, but I'm sure I would've been (and will be) very thankful for it.

Oh yeah, wow. Having bug reports come with a replayable & inspectable recording of the user's session would be an absolute game changer. We approximate this now with telemetry tools that allow you to see what the user was doing (sort of), but this would be 100x better.
I wonder how often the bugs will be so deep that something like LogRocket won't be enough.
Thanks for the feedback!

Our #1 use-case at the moment is bug reports with a recording attached. We think that will really help when it comes to understanding the specifics of a bug when STRs are often not clear.

I would love to give Firefox a shot, but there's one thing I've had issues with, when working with projects using things like webpack, when there's an error, Chrome links me back to the original file and line, I never seem to be able to do this in Firefox. Makes it so much harder to debug things. Am I doing something wrong, or is there a way to fix this?
Not sure how long ago you tried, but in one of the recent Firefox versions, they greatly improved the source map support - so it might just be that you should give it another try.
I've tried it with the latest versions (as of now), but it doesn't seem to match up with how good Chrome is at it. I've tried both normal Firefox and the developer version.

Why is this something Firefox seems to be struggling with? All the Blink based browsers seem to be much better in this regard.

PureVPN are offering a generous discount on their already competitive 5 year plan, with subscription working out to 65p per month on a 5 year, so £38.70 in total.