Drop browser support, deprecate PhantomJS

Hi all,

I would like to propose a revisit of the browser support topic. As we adopt new technologies, it is becoming more challenging to support older browsers. I would like to hear your opinions if it is still necessary nowadays.

Why I am opening this? I have dropped PhantomJS in my open PR and as @ohadlevy pointed out, it would basically mean we are dropping support for older browsers, because no CI would test it and developers are usually on new browsers.

Please vote and if you may, share insight to support your vote. Thanks!

  • Chrome and Firefox is enough
  • Evergreen browsers exclude IE (ie http://outdatedbrowser.com/en)
  • Evergreen browsers include IE11+
  • We need to support all browsers, we support today

0 voters

1 Like

How would the tests on PhantomJS now catch errors that occur only on Firefox or IE11?

It would not, it always boils down to developers being aware for what platform they are developing. And I believe PhantomJS has to go anyway as its development is down for too long.

But given PhantomJS is implementing old standards and no modern quarks are supported, it is very likely to discover extensive usage of unsupported client code (usage of modern quarks). It is by no means cross-browser testing, it is just “old browser” testing.
It is the best we have now though, so removing that is just making us less confident about promised compatibility. It makes sense to revisit that promise as part of the process and if we want to still keep it, let’s find other means of assuring it. :slight_smile:

Can we clarify what “old” and “new” browsers mean?

I also believe we should not decide this by popular opinion (take a vote) but find a proper consensus.

Just for the record, Red Hat Satellite 6.4 supports the following:

1.4. Supported Browsers

The following web browsers are fully supported:

  • Firefox versions 39 and later
  • Chrome versions 28 and later

The following web browsers are partially supported. The Satellite web UI interface functions correctly but certain design elements may not align as expected:

  • Firefox version 38
  • Chrome version 27
  • Internet Explorer versions 10 and 11
1 Like

Which version of Firefox is included in EL7? IMHO that’s a good lower Firefox version bound.

Also just for the record, from our latest manual

Using the most recent version of a major browser is highly recommended, as Foreman and the frameworks it uses offer limited support for older versions.

The recommended requirements are as follows for major browsers:

  • Google Chrome 54 or higher
  • Microsoft Edge
  • Microsoft Internet Explorer 10 or higher
  • Mozilla Firefox 49 or higher

For me a support for Firefox before Quantum (version 57) should still be functional, because this version has broken the Addon-API and perhaps I am not the only one switching over to forks like Basilisk.

From customers perspective: There are still some having Internet Explorer as default browser per company policy. Some would be happy to have an excuse for using a different browser, but some are not allowed to do so. I think it is a very small number, but if not really required I would not want to loose support for it.

I believe the aim is to say something like “no more than year old version”. Or just back us up with some outer tooling on the topic - like I am suggesting http://outdatedbrowser.com/en could be good lead for that.

I understand though, that we need to hear the minority here as even 2% of users with IE10 deserves to be heard and shall be thought about.

I believe we should define our support more dynamically as the situation is changing rapidly as saying >= 57 or IE >=10 is pretty easily outdated.

Today we had a discussion on the topic and pretty reasonable solution araised: Get a banner “Your browser is about to be obsolated and its support discontinued.” in a 1.22 and lets direct those users to some form where we will collect the voices for keeping support with version of desired browser and keep it there hanging for one or two versions.

Disclaimer: this was not my idea, but I do not recall who’s idea it was :slight_smile:

For that banner we do need to set a target. Given that 1.22 is already RC1 and we have yet to open the discussion this is a somewhat ambitious goal IMHO.

Another thing to consider is that a lot of Red Hat customers might have different requirements. These are not directly part of upstream discussions but rather represented by RH developers.

To answer my own question: it’s the Firefox ESR version which is currently Firefox 60.

I have came up with the banner for dropping browser support.
https://github.com/theforeman/foreman/pull/6776

Please come and comment on how to setup the obsolete versions (what to support) of browsers here or in the PR.

In the banner I’m referencing the https://forms.gle/VL8H5Cby2LWZMhn69 google form. Please help me get it better as well and if you got an idea, what account use for it (it is in my account now - not good), would be great as well.

Just to add some data, I had a look at the website analytics. Caveat emptor - website users are not the same as the users of Foreman itself. That said, I think they should be broadly comparable.

Here’s the breakdown for the traffic in the last 30 days:

Total: 14,500 Share %
Chrome 9,065 62.62%
Firefox 3,081 21.28%
Safari 1,162 8.03%
Internet Explorer 480 3.32%
Edge 228 1.57%
Opera 160 1.11%
'Mozilla 72 0.50%
Samsung Internet 65 0.45%
Safari (in-app) 58 0.40%
Android Webview 40 0.28%

I have no conclusions to draw, I just thought it might help inform the debate :slight_smile:

1 Like

Hey everyone,

just to add another voice in this direction:
While I absolutely agree that supporting old/outdated/highly unpopular browsers might be a high effort for the effect, most people using those with an application like Foreman are the ones that are bound by corporate policies/restrictions. There are still some companies out there where using IE/Edge in the version provided by the respective Windows is required by corporate policies. Also, a lot of companies take quite some time to rollout updates of any kind, including browsers. In companies with the policy is to use Firefox you usually have to work with ESR releases like @Dirk already mentioned, and you are not guaranteed that the Firefox you get is the latest ESR because that might not have been approved yet by testing/security/whoever.
I have no particular experience with companies using Apple or Chrome.

Based on my experience, I would recommend that at least the last to ESR releases of Firefox and IE/Edge versions of all non-eol windows versions should be considered “support-worthy”. I would guess that a similar policy might be the right path for Chrome and Safari, but due to my lack of experience with those (especially in coporate environments) I might be mistaken.

What I can definetly tell is that a cut to harsh (i.e. to recent) can be a hard K.O. for some bigger businesses. In such an environment, you often have no choice over the browser you use.

would you say that you always use the latest version of Foreman too? I mean older version will work with older browsers…

Supporting on latest code base browsers that are officially not supported by their vendors, is a task that gets harder as times goes by.

We try to, at least in dev/testing, but we also do our best to stay up to date in production (though, we failed at this for some time now and are currently working catching up).
To be honest, I was also not aware of the detailed support policy for Firefox ESR releases, I just looked that up and had to realize that the overlapping period between a new ESR and the EOL of the old one was shorter than I thought.

My whole point was in fact that the decision to drop support for certain versions or even browsers should not be done lightheartedly. Especially dropping support for whole browser families (like e.g. some options in the poll mentioned) is something that might cause a lot of trubble for some companies.

I completely understand that supporting unsupported browser versions is a task not worth upholding for an extended period of time, but at least all currently supported versions of major browsers (including the ones bundled with major OSes) should be the target to shoot for in my opinion.

I suspect that in those companies different departments with different policies are responsible for updating Foreman and the desktops.

This is exactly the case at our company, as I would suspect it is with most companies big/beurocratic enough to run into such a problem.

After some time, I believe there is no clear consensus, but I would say I feel something like:

Let’s support FF/Chrome only, but ensure it is not completely broken for older browsers.
I wouldn’t like to keep deprecated unsupported project (PhantomJS) around just for that reason.

I have found pretty complete list of VirtualBox VMs with IE browsers[1], but I got no idea how to leverage them to ensure everything is working, we could agree it being a reviewer’s responsibility to ask, if suspects the browser support impact and developer’s to test, but it is far from ideal.

Any ideas how to ensure we work on IE/Edge without PhantomJS?

[1] https://github.com/magnetikonline/linux-microsoft-ie-virtual-machines#rearming-images

If I look at the poll, I see it’s 50:50 for chrome+ff vs evergreen browsers (regardless of IE). I’d say the safest option is to keep the list, just bump versions. The informing banner could go further and suggest IE and Edge is deprecated, if we hear a lot of concerns, we can keep the support.

But looking at our coverage with integration tests, we can’t rely on results for IE even for just Foreman core. Maybe we can tell that menu, taxonomies selector and few pages work. If we start using chrome, it’s not a big difference and we’ll need to continue relying on users reporting issues in other browsers.

So I’d prefer if we get rid of PhantomJS regardless.