Firefox permission: 'name' member of PermissionDescriptor 'camera' is not a valid value for enumeration...











up vote
0
down vote

favorite












I'm making a web app that needs to check whether user camera access permission has been granted or not using permission query.



I have tried the code:



navigator.permissions.query({name:'camera'}).then(function(result) {
console.log(result);
});


It ran fine on Google Chrome 70 but gave me an error on firefox:



TypeError: 'name' member of PermissionDescriptor 'camera' is not a valid value for enumeration PermissionName.



I have been searching for this issue but nothing helped.



Can anyone help me please ?



Thanks,










share|improve this question


























    up vote
    0
    down vote

    favorite












    I'm making a web app that needs to check whether user camera access permission has been granted or not using permission query.



    I have tried the code:



    navigator.permissions.query({name:'camera'}).then(function(result) {
    console.log(result);
    });


    It ran fine on Google Chrome 70 but gave me an error on firefox:



    TypeError: 'name' member of PermissionDescriptor 'camera' is not a valid value for enumeration PermissionName.



    I have been searching for this issue but nothing helped.



    Can anyone help me please ?



    Thanks,










    share|improve this question
























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      I'm making a web app that needs to check whether user camera access permission has been granted or not using permission query.



      I have tried the code:



      navigator.permissions.query({name:'camera'}).then(function(result) {
      console.log(result);
      });


      It ran fine on Google Chrome 70 but gave me an error on firefox:



      TypeError: 'name' member of PermissionDescriptor 'camera' is not a valid value for enumeration PermissionName.



      I have been searching for this issue but nothing helped.



      Can anyone help me please ?



      Thanks,










      share|improve this question













      I'm making a web app that needs to check whether user camera access permission has been granted or not using permission query.



      I have tried the code:



      navigator.permissions.query({name:'camera'}).then(function(result) {
      console.log(result);
      });


      It ran fine on Google Chrome 70 but gave me an error on firefox:



      TypeError: 'name' member of PermissionDescriptor 'camera' is not a valid value for enumeration PermissionName.



      I have been searching for this issue but nothing helped.



      Can anyone help me please ?



      Thanks,







      javascript firefox navigator






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 5 at 3:30









      Redplane

      85311224




      85311224
























          1 Answer
          1






          active

          oldest

          votes

















          up vote
          0
          down vote













          The Permissions API is marked as an experimental technology.



          The issue is that Firefox does have navigator.permissions and support the query method on it, too, however, it does not support all the permission names that are listed on MDN's Permissions API page.



          You can try this yourself: go to the console on Firefox and execute



          // geolocation is working fine
          navigator.permissions.query({ name: 'geolocation' }).then(console.log)

          // camera, microphone is not supported, throws
          navigator.permissions.query({ name: 'camera' })
          // TypeError: 'name' member of PermissionDescriptor 'camera' is not a valid value for enumeration PermissionName.
          navigator.permissions.query({ name: 'microphone' })
          // TypeError: 'name' member of PermissionDescriptor 'microphone' is not a valid value for enumeration PermissionName.


          There is an open discussion on Github in the mozilla/standards-positions about their position on the Permissions API. To be honest, as I see, they did not reach any conclusion yet.



          What you can do is you create a basic functionality that works on all browsers without the permissions information and on Chrome, you progressively enhance the user experience by using the Permissions.query for figuring out the permissions for camera and microphone.



          Alternatively, you can come up with some logic to handle this using MediaDevices.getUserMedia: for example, you can call getUserMedia and immediately stop the tracks, if the only thing you want is to ensure you app has permissions granted for microphone and camera. Be careful though, there are multiple problems with this:




          1. the camera light will be turned on for a second

          2. if your user denies permission, you will have a hard time asking for it again, so before you ask for permission, you should clarify to your users why you need these permissions






          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














             

            draft saved


            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53147944%2ffirefox-permission-name-member-of-permissiondescriptor-camera-is-not-a-vali%23new-answer', 'question_page');
            }
            );

            Post as a guest
































            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            0
            down vote













            The Permissions API is marked as an experimental technology.



            The issue is that Firefox does have navigator.permissions and support the query method on it, too, however, it does not support all the permission names that are listed on MDN's Permissions API page.



            You can try this yourself: go to the console on Firefox and execute



            // geolocation is working fine
            navigator.permissions.query({ name: 'geolocation' }).then(console.log)

            // camera, microphone is not supported, throws
            navigator.permissions.query({ name: 'camera' })
            // TypeError: 'name' member of PermissionDescriptor 'camera' is not a valid value for enumeration PermissionName.
            navigator.permissions.query({ name: 'microphone' })
            // TypeError: 'name' member of PermissionDescriptor 'microphone' is not a valid value for enumeration PermissionName.


            There is an open discussion on Github in the mozilla/standards-positions about their position on the Permissions API. To be honest, as I see, they did not reach any conclusion yet.



            What you can do is you create a basic functionality that works on all browsers without the permissions information and on Chrome, you progressively enhance the user experience by using the Permissions.query for figuring out the permissions for camera and microphone.



            Alternatively, you can come up with some logic to handle this using MediaDevices.getUserMedia: for example, you can call getUserMedia and immediately stop the tracks, if the only thing you want is to ensure you app has permissions granted for microphone and camera. Be careful though, there are multiple problems with this:




            1. the camera light will be turned on for a second

            2. if your user denies permission, you will have a hard time asking for it again, so before you ask for permission, you should clarify to your users why you need these permissions






            share|improve this answer



























              up vote
              0
              down vote













              The Permissions API is marked as an experimental technology.



              The issue is that Firefox does have navigator.permissions and support the query method on it, too, however, it does not support all the permission names that are listed on MDN's Permissions API page.



              You can try this yourself: go to the console on Firefox and execute



              // geolocation is working fine
              navigator.permissions.query({ name: 'geolocation' }).then(console.log)

              // camera, microphone is not supported, throws
              navigator.permissions.query({ name: 'camera' })
              // TypeError: 'name' member of PermissionDescriptor 'camera' is not a valid value for enumeration PermissionName.
              navigator.permissions.query({ name: 'microphone' })
              // TypeError: 'name' member of PermissionDescriptor 'microphone' is not a valid value for enumeration PermissionName.


              There is an open discussion on Github in the mozilla/standards-positions about their position on the Permissions API. To be honest, as I see, they did not reach any conclusion yet.



              What you can do is you create a basic functionality that works on all browsers without the permissions information and on Chrome, you progressively enhance the user experience by using the Permissions.query for figuring out the permissions for camera and microphone.



              Alternatively, you can come up with some logic to handle this using MediaDevices.getUserMedia: for example, you can call getUserMedia and immediately stop the tracks, if the only thing you want is to ensure you app has permissions granted for microphone and camera. Be careful though, there are multiple problems with this:




              1. the camera light will be turned on for a second

              2. if your user denies permission, you will have a hard time asking for it again, so before you ask for permission, you should clarify to your users why you need these permissions






              share|improve this answer

























                up vote
                0
                down vote










                up vote
                0
                down vote









                The Permissions API is marked as an experimental technology.



                The issue is that Firefox does have navigator.permissions and support the query method on it, too, however, it does not support all the permission names that are listed on MDN's Permissions API page.



                You can try this yourself: go to the console on Firefox and execute



                // geolocation is working fine
                navigator.permissions.query({ name: 'geolocation' }).then(console.log)

                // camera, microphone is not supported, throws
                navigator.permissions.query({ name: 'camera' })
                // TypeError: 'name' member of PermissionDescriptor 'camera' is not a valid value for enumeration PermissionName.
                navigator.permissions.query({ name: 'microphone' })
                // TypeError: 'name' member of PermissionDescriptor 'microphone' is not a valid value for enumeration PermissionName.


                There is an open discussion on Github in the mozilla/standards-positions about their position on the Permissions API. To be honest, as I see, they did not reach any conclusion yet.



                What you can do is you create a basic functionality that works on all browsers without the permissions information and on Chrome, you progressively enhance the user experience by using the Permissions.query for figuring out the permissions for camera and microphone.



                Alternatively, you can come up with some logic to handle this using MediaDevices.getUserMedia: for example, you can call getUserMedia and immediately stop the tracks, if the only thing you want is to ensure you app has permissions granted for microphone and camera. Be careful though, there are multiple problems with this:




                1. the camera light will be turned on for a second

                2. if your user denies permission, you will have a hard time asking for it again, so before you ask for permission, you should clarify to your users why you need these permissions






                share|improve this answer














                The Permissions API is marked as an experimental technology.



                The issue is that Firefox does have navigator.permissions and support the query method on it, too, however, it does not support all the permission names that are listed on MDN's Permissions API page.



                You can try this yourself: go to the console on Firefox and execute



                // geolocation is working fine
                navigator.permissions.query({ name: 'geolocation' }).then(console.log)

                // camera, microphone is not supported, throws
                navigator.permissions.query({ name: 'camera' })
                // TypeError: 'name' member of PermissionDescriptor 'camera' is not a valid value for enumeration PermissionName.
                navigator.permissions.query({ name: 'microphone' })
                // TypeError: 'name' member of PermissionDescriptor 'microphone' is not a valid value for enumeration PermissionName.


                There is an open discussion on Github in the mozilla/standards-positions about their position on the Permissions API. To be honest, as I see, they did not reach any conclusion yet.



                What you can do is you create a basic functionality that works on all browsers without the permissions information and on Chrome, you progressively enhance the user experience by using the Permissions.query for figuring out the permissions for camera and microphone.



                Alternatively, you can come up with some logic to handle this using MediaDevices.getUserMedia: for example, you can call getUserMedia and immediately stop the tracks, if the only thing you want is to ensure you app has permissions granted for microphone and camera. Be careful though, there are multiple problems with this:




                1. the camera light will be turned on for a second

                2. if your user denies permission, you will have a hard time asking for it again, so before you ask for permission, you should clarify to your users why you need these permissions







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Nov 5 at 14:07

























                answered Nov 5 at 14:00









                Vince Varga

                318212




                318212






























                     

                    draft saved


                    draft discarded



















































                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53147944%2ffirefox-permission-name-member-of-permissiondescriptor-camera-is-not-a-vali%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest




















































































                    這個網誌中的熱門文章

                    Tangent Lines Diagram Along Smooth Curve

                    Yusuf al-Mu'taman ibn Hud

                    Zucchini