This currently has 1215 points, and the link is no longer valid. It now just shows an image of Firefox's devtools and the sentence "Replay is an early experiment. We'll let you know on @FirefoxDevTools when it's ready for input." That's not useful, interesting, or informative. The MDN docs seem like an appropriate replacement.
Firefox removed the content that tells you this. It's odd that they did that...
My guess is that all this attention was a premature launch, and they were hoping to make news with Firefox Replay later. (US Thanksgiving day isn't exactly ideal...)
I also get the same for all the other snapshots, maybe Mozilla applied for a takedown?
Edit: I found it on archive.is: http://archive.is/0ei35 Though it seems a bit broken.
// 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.
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.
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.
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.
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.
It probably varies slightly, due to the entangled nest of dependencies that is responsive HTML rendering...
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.
Firefox definitely managed to catch up but not before lots of devs switched to chrome and stopped checking for compatibility with Firefox.
It’s happened with IE, Chrome before and will swing back away from Chrome eventually.
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)
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 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.
The consumerization of technology happened a long time ago.
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.
Speaking as a dev, the dev tools had a ton to do with it.
There’s also a popover div ad in gmail:
Disclaimer: I am the creator of the video
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:
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.
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 ;-)
" 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.
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 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.
It's a lot easier to get people to switch browsers than OSs.
When someone buys a computer that works after turning it on switching oses seems risky.
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 ...
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.
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.
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.
What is the point of promoting this to everyone at this stage?
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...).
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?
Everything is in firefox and open source
Here are the bugs: https://bugzilla.mozilla.org/buglist.cgi?cmdtype=runnamed&na...
Here's the primary directory: https://searchfox.org/mozilla-central/source/toolkit/recordr...
The debugger API is implemented in JS here https://searchfox.org/mozilla-central/source/devtools/server...
no, downloading sketchy images or hacking your virtualization software does not count.
You can, and it’s licensed to.
> (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:
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.
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.
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.
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.
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.
"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."
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.
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.
51% Windows 10
27% Windows 7
6% Windows 8
11% Other (Linux, BSDs, etc)
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. :)
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.
Edit: to clarify, I refer to operating systems that have a considerable amount of potential and existing development, not systems with like 2 users .
This makes me think that it's not a feature on the roadmap of firefox sponsored by Mozilla, but an experimentation/side project.
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.
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.
Is it not supported on Linux and Windows? Why?
> Currently only macOS is supported.
As for why - no idea.
Total non-Macs: 73.1%
And and in this case web should be read as 'front-end'.
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...
These are not just web developers though, they're full stack developers; perhaps pure frontend developers are more prone to use Apple products?
At least far more than Apple's general market share.
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.
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).
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.
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.
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.
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.
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.
Once you're price-insensitive, the quality looks good for macs, keyboard issues notwithstanding.
Unfortunately, Replay hooks into low-level OS system calls to do the recording, which makes it non-trivial to support other platforms.
I have started using a Chromebook with 8G of memory and like it much more ... but I am probably in the minority. :(
EDIT: sibling comment cleared things up, so mine is irrelevant
Replay is in the user-research and validation phase and still quite experimental.
firefox-replay.com is a work in progress. We're still sorting out the best way to communicate record and replay debugging and the new use cases.
We'll share more on @firefoxDevTools when we have something to report.
"Replay is an early experiment. We'll let you know on @FirefoxDevTools when it's ready for input."
For anyone who missed what it was, it allows you to derterministically record and replay your browsing for debugging purposes, and you can export these recordings to others.
$0; Essential features; Up to 3 users
$50 / month; All features; Unlimited reports; Up to 10 users
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 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.
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
I'm pretty happy to see Firefox pushing its dev tools in this direction. They've done a really great job with layout and styling tools, but their JS dev tools have lagged behind Chrome's. So even if this particular effort doesn't pan out for some reason, it's still very encouraging.
They're not just carbon-copying Chrome, and they're not just sitting back and ignoring the dev tools; they're trying to push them forward in some interesting ways.
[Link to the editor](https://github.com/abdusamed91/realtime-codeeditor)
I implemented it in my real time code editor coursework project where I made use of [Ace Editor](https://ace.c9.io/)'s CRDT. The time machine slider does the job and looked remarkable when it ran.
1. I installed the nightly build as told.
2. Open nightly build
3. Went to the "Save Recording" option
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 the tab crashed, you can get the report in about:crashes
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 had built a poor mans version of this where I worked with puppeteer for automated tests. It'd basically record the full dim any time it changed, along with console logs, network request metadata, images and css and output it as a test recording. You could then view that and walk through it in an Electron app.
This'll blow it out of the water. I hope for e2e testing's sake that linux support comes soon.
Does Replay work on the Firefox Dev build?
Why is this something Firefox seems to be struggling with? All the Blink based browsers seem to be much better in this regard.
Does anyone have a good example use case for this?
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.
Or even more mundane: accidentally hitting "Step over" twice in a row.
"Using the "Drop Frame" functionality you can "fall back" to a previous stack frame, in a sense going back in time."
This video has a good intro: https://www.youtube.com/watch?v=ytNlefY8PIE
I’m going to give this a shot today!
Over time we will be adding more tools for developers. It will be interesting to see how Firefox will approach this compared to us.
Strange days indeed. Just giving some thanks where it's due.
Also the timeline in Cypress didn't actually work too well for us.
> An error occurred when connecting to firefox-replay.com. PR_CONNECT_RESET_ERROR
We detached this subthread from https://news.ycombinator.com/item?id=21657475 and marked it off-topic.
When Chrome does add this capability(strange they haven't added it to date given the prior art from years ago), I can see it being used by actual devs inside Google and thus being actually useful.
Contrast that with Firefox dev tools which seem to fall behind the priority list compared to new shiny flashy tech projects they concoct.
If people want to see many examples of what Chrome's webtool can do and FF can't, just take a look at this page "What's New In DevTools" for each Chrome release.
Releasing with Firefox 71.
We detached this subthread from https://news.ycombinator.com/item?id=21656533 and marked it off-topic.
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.
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 want to switch but every time I kick the tires I'm baffled at how quickly it blows up.
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.
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.
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-_-...
Except, of course, software freedom.
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.