diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 336b21ff6..b7d7b820b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -17,6 +17,8 @@
+
+
diff --git a/app/src/main/java/acr/browser/lightning/view/LightningChromeClient.java b/app/src/main/java/acr/browser/lightning/view/LightningChromeClient.java
index d204c9444..c9dee32a4 100644
--- a/app/src/main/java/acr/browser/lightning/view/LightningChromeClient.java
+++ b/app/src/main/java/acr/browser/lightning/view/LightningChromeClient.java
@@ -30,6 +30,8 @@
import com.cliqz.browser.main.Messages;
import com.cliqz.nove.Bus;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Locale;
import javax.inject.Inject;
@@ -94,6 +96,19 @@ public void onReceivedIcon(WebView view, Bitmap icon) {
@Override
public void onPermissionRequest(PermissionRequest request) {
+ List permissions = new ArrayList<>();
+ for (String requestedPermission : request.getResources()) {
+ switch (requestedPermission) {
+ case "android.webkit.resource.VIDEO_CAPTURE":
+ permissions.add(Manifest.permission.CAMERA);
+ break;
+ case "android.webkit.resource.AUDIO_CAPTURE":
+ permissions.add(Manifest.permission.RECORD_AUDIO);
+ break;
+ default:
+ break;
+ }
+ }
activity.runOnUiThread(() -> PermissionsManager.getInstance()
.requestPermissionsIfNecessaryForResult(activity, new PermissionsResultAction() {
@Override
@@ -103,9 +118,10 @@ public void onGranted() {
@Override
public void onDenied(String permission) {
- // no-op
+ Timber.i("The permission was denied by the user");
+ request.deny();
}
- }, Manifest.permission.CAMERA));
+ }, permissions.toArray(new String[permissions.size()])));
}
@Override