diff --git a/src/bp-core/js/webcam.js b/src/bp-core/js/webcam.js
index 16ff039c2..d3a75919b 100644
--- a/src/bp-core/js/webcam.js
+++ b/src/bp-core/js/webcam.js
@@ -86,7 +86,7 @@ window.bp = window.bp || {};
 			if ( video.mozSrcObject !== undefined ) {
 				video.mozSrcObject = stream;
 				video.play();
-			} else if ( navigator.mozGetUserMedia ) {
+			} else if ( navigator.mediaDevices.getUserMedia ) {
 				video.src = stream;
 				video.play();
 			} else if ( video.srcObject !== undefined ) {
@@ -172,7 +172,7 @@ window.bp = window.bp || {};
 		initialize: function() {
 			var params;
 
-			if ( navigator.getUserMedia || navigator.oGetUserMedia || navigator.mozGetUserMedia || navigator.webkitGetUserMedia || navigator.msGetUserMedia ) {
+			if ( navigator.getUserMedia || navigator.oGetUserMedia || navigator.mediaDevices.getUserMedia || navigator.webkitGetUserMedia || navigator.msGetUserMedia ) {
 
 				// We need to add some cropping stuff to use bp.Avatar.setAvatar()
 				params = _.extend( _.pick( BP_Uploader.settings.defaults.multipart_params.bp_params,
@@ -217,8 +217,10 @@ window.bp = window.bp || {};
 				navigator.getUserMedia( { video:true }, bp.WebCam.gotStream, bp.WebCam.noStream );
 			}  else if ( navigator.oGetUserMedia ) {
 				navigator.oGetUserMedia( { video:true }, bp.WebCam.gotStream, bp.WebCam.noStream );
-			} else if ( navigator.mozGetUserMedia ) {
-				navigator.mozGetUserMedia( { video:true }, bp.WebCam.gotStream, bp.WebCam.noStream );
+			} else if ( navigator.mediaDevices.getUserMedia ) {
+				navigator.mediaDevices.getUserMedia( { video:true } )
+				.then( bp.WebCam.gotStream )
+				.catch( bp.WebCam.noStream );
 			} else if ( navigator.webkitGetUserMedia ) {
 				navigator.webkitGetUserMedia( { video:true }, bp.WebCam.gotStream, bp.WebCam.noStream );
 			} else if (navigator.msGetUserMedia) {
