webcompat / web-bugs

A place to report bugs on websites.
https://webcompat.com
Mozilla Public License 2.0
747 stars 67 forks source link

englishtest.duolingo.com - The Firefox browser is not supported #56109

Closed webcompat-bot closed 5 months ago

webcompat-bot commented 4 years ago

URL: https://englishtest.duolingo.com/quick

Browser / Version: Firefox 81.0 Operating System: Windows 10 Tested Another Browser: Yes Chrome

Problem type: Site is not usable Description: Browser unsupported Steps to Reproduce: They require a Chromium browser, Firefox is blocked.

View the screenshot Screenshot
Browser Configuration
  • None

From webcompat.com with ❤️

cipriansv commented 4 years ago

Thanks for the report.

I was indeed able to reproduce the issue. The Firefox browser is not supported.

Tested with: Browser / Version: Firefox Nightly 81.0a1 (2020-08-02), Chrome 84.0.4147.111 Operating System: macOS 10.15.6

This is the web page displayed in Firefox Nightly after deciding to take a practice test:

image

And this is the web page displayed in Chrome:

image

Moving the issue to needsdiagnosis.

karlcow commented 4 years ago
    E = function (e) {
      v('_unsupportedBrowser', (function () {
        window.location.href = e ? '/' : '/browsers'
      }), (function () {
        window.location.href = '/'
      }), {
        showMobile: e
      }),
      e && r.f.defer((function () {
        u.$('.supported-browsers-container').html((new s.a).render().el)
      }))

called by

        var a = Ie.a.isMobile();
        if (o.f.contains(this.SUPPORTED_BROWSER_ROUTES, n) && !Ie.a.isSupportedBrowser()) return w.g(a),
        !1;
        if (o.f.contains(this.DESKTOP_ONLY_ROUTES, n) && a) return w.g(a),
        !1;
        var c = De.a.getUtmParams();

and

s = {
  isMobile: (i = function () {
    try {
      return !!window.navigator.appVersion.match(
        /(Mobile|Android|iPad|iPhone|iPod)/
      );
    } catch (e) {
      return !1;
    }
  }),
  isSupportedBrowser: function () {
    return (
      !i() &&
      (function () {
        try {
          return (
            a.b() &&
            o.a.canRecord() &&
            !!Object(r.a)("body")[0].requestFullscreen &&
            !!document.exitFullscreen &&
            !!window.URL &&
            !!window.AudioContext &&
            !!window.requestAnimationFrame &&
            !!window.cancelAnimationFrame &&
            !!window.MutationObserver &&
            !!window.Node &&
            !!new Audio().canPlayType("audio/mp3") &&
            !r.f.isUndefined(document.createElement("video").srcObject) &&
            !window.navigator.userAgent.match(
              /(Firefox\/48\.0|SE 2\.X MetaSr 1\.0)/
            ) &&
            !window.navigator.userAgent.match(/Firefox/)
          );
        } catch (e) {
          return !1;
        }
      })()
    );
  },
  getClientInfo: function () {
    return {
      extension_version: duo.extensionVersion,
      language: navigator.language,
      platform: navigator.platform,
      screen_height: screen.height,
      screen_width: screen.width,
      user_agent: navigator.userAgent,
      pixel_ratio: window.devicePixelRatio,
    };
  },
};

Well the last line of the tests… pretty much says everything:

            !window.navigator.userAgent.match(/Firefox/)

Everything else is true.

Let's move to needscontact.

karlcow commented 4 years ago

Maybe a sitepatch if we can doublecheck that this is working with a chrome UA.

ksy36 commented 4 years ago

Apparently only Chrome and Opera are supported https://englishtest.duolingo.com/browsers. I've tried spoofing as Chrome and after requesting permissions to use camera and microphone, I get this message:

Screen Shot 2020-08-11 at 4 19 16 PM
ksy36 commented 4 years ago

Looks like @duolingo is on github. Hi @aanavas and @hidekishima, we're wondering what could be a reason for not supporting Firefox here. Would you be able to pass this along to the relevant person or team?

andrekhorie commented 4 years ago

Hi all, thanks for reaching out! My name is André and I'm the engineering lead for the Duolingo English Test. I'll first give a bit of background on our product to explain the decision, and then talk briefly about what the issue was.

The Duolingo English Test is a high stakes language certification test widely used in use cases like university admissions. We have a mission of bringing an affordable test to test takers around the world -- for many of our competitors, the test taker has to pay USD 200-300 for the test alone (which is over one month of minimum wage in many countries), aside from airfare to travel to a test center, hotel, etc. As a result, many people in communities with very low income take our test.

As an online high stakes test, we need to certify that people are not cheating on the exam. One of the ways we do this is by recording the video and audio of the entire hour-long session, so that we can proctor the test with artificial intelligence and human proctoring.

Because we need to upload large video files for people who may not have broadband internet connection, we needed to be able to restrict the video file size. At the time of our decision to drop support for Firefox circa 2018, Firefox was generating overly large files. You'll have to forgive us for not remembering the exact context of the issue (it was quite a while ago, and there have been personnel changes since), but it may have been due to how Firefox was following user media constraints.

To note: We haven't revisited the 2018 decision, but our engineering team is working on things that will likely render this Github issue obsolete in coming months.

ksy36 commented 4 years ago

Thanks for the detailed response @andrekhorie 👍

iMonZ commented 2 years ago

Hi all, thanks for reaching out! My name is André and I'm the engineering lead for the Duolingo English Test. I'll first give a bit of background on our product to explain the decision, and then talk briefly about what the issue was.

The Duolingo English Test is a high stakes language certification test widely used in use cases like university admissions. We have a mission of bringing an affordable test to test takers around the world -- for many of our competitors, the test taker has to pay USD 200-300 for the test alone (which is over one month of minimum wage in many countries), aside from airfare to travel to a test center, hotel, etc. As a result, many people in communities with very low income take our test.

As an online high stakes test, we need to certify that people are not cheating on the exam. One of the ways we do this is by recording the video and audio of the entire hour-long session, so that we can proctor the test with artificial intelligence and human proctoring.

Because we need to upload large video files for people who may not have broadband internet connection, we needed to be able to restrict the video file size. At the time of our decision to drop support for Firefox circa 2018, Firefox was generating overly large files. You'll have to forgive us for not remembering the exact context of the issue (it was quite a while ago, and there have been personnel changes since), but it may have been due to how Firefox was following user media constraints.

To note: We haven't revisited the 2018 decision, but our engineering team is working on things that will likely render this Github issue obsolete in coming months.

Any update on this issue?

andrekhorie commented 2 years ago

Any update on this issue?

Thanks for bringing this up! The latest update is:

iMonZ commented 2 years ago

Any update on this issue?

Thanks for bringing this up! The latest update is:

  • We've moved our certified exam (the one that you pay to get a score that can be used for use cases like university admissions) to a native application.
  • Our research team has potential features in their roadmap that may require us to keep video/audio streams in the practice test (the one that you can use to train yourself for the certified exam). I believe last time one of our engineers checked, Firefox wasn't dealing with the video stream as gracefully as Chrome (but I don't quite remember the exact details of what they were seeing). This is why we haven't fully removed the block to Firefox there.

That’s strange. There was no application on the website only an unsupported message and ads

andrekhorie commented 2 years ago

The link for downloading the application installer is only shown to users after purchase.

iMonZ commented 2 years ago

The link for downloading the application installer is only shown to users after purchase.

That’s actually pretty silly. How can I test the tool out befor buying? What are the requirements for the specifications. There is zero information about that. So I should stick my hand into a black hole

andrekhorie commented 2 years ago

How can I test the tool out befor buying? What are the requirements for the specifications. There is zero information about that. So I should stick my hand into a black hole

I think there's a misunderstanding here that a user is not paying for the tool, they'd be paying for the service of obtaining a certified score. We have FAQ pages on things like requirements, and we do refund users for the full amount in case they run into technical issues.

That’s actually pretty silly.

Your questions are legitimate and I appreciate them, but I would really appreciate if you'd keep a level of professionalism here. Other people in this thread have been very respectful to each other so far, so let's keep it that way if we want to have productive conversations.

iMonZ commented 2 years ago

How can I test the tool out befor buying? What are the requirements for the specifications. There is zero information about that. So I should stick my hand into a black hole

I think there's a misunderstanding here that a user is not paying for the tool, they'd be paying for the service of obtaining a certified score. We have FAQ pages on things like requirements, and we do refund users for the full amount in case they run into technical issues.

That’s actually pretty silly.

Your questions are legitimate and I appreciate them, but I would really appreciate if you'd keep a level of professionalism here. Other people in this thread have been very respectful to each other so far, so let's keep it that way if we want to have productive conversations.

Why can’t you install the app right away with testing. And why aren’t you removing the browser function at all if it doesn’t work reliably? This seems pretty strange and doesn’t show very good development.

andrekhorie commented 2 years ago

Why can’t you install the app right away with testing.

We don't actually block people from installing, but we only show the link later. This has to do with product flow: we've A/B tested that showing the link beforehand can be very confusing, and decreases conversion funnels.

why aren’t you removing the browser function at all if it doesn’t work reliably?

Because we still have the practice exam for the browser, which is very useful for users who want to take a peek on what the certified exam looks like without having to go through the trouble of installing a ton of things.

Your questions are legitimate and I appreciate them, but I would really appreciate if you'd keep a level of professionalism here. Other people in this thread have been very respectful to each other so far, so let's keep it that way if we want to have productive conversations.

This seems pretty strange and doesn’t show very good development

I'll be unsubscribing from this thread, btw. I'm sorry for the other folks who did a great job so far, and I wish this project the best going forward!

FYI @iMonZ you might want to consider reading this (and maybe other materials on effective communication).

karlcow commented 2 years ago

@iMonZ All people participating on webcompat doing it on a mutual help. @andrekhorie is not responsible of the business strategies. Everyone is trying to do their best. Please be mindful of everyone's time.

ksy36 commented 5 months ago

Moved to bugzilla as https://bugzilla.mozilla.org/show_bug.cgi?id=1902497.