summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/Tab.java
diff options
context:
space:
mode:
authorTao Bai <michaelbai@google.com>2014-05-14 18:08:21 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-05-14 18:08:21 +0000
commit440030f0992eec8da2b717566ad4895d9621041c (patch)
tree6f211186400b35757a2d3f2665982257207915bc /src/com/android/browser/Tab.java
parentf6b6a1c69074801f8f4429cb22bc389e63f27de9 (diff)
parente1b6b3b2f9c0dbf201234162101023770835df9e (diff)
downloadpackages_apps_Browser-440030f0992eec8da2b717566ad4895d9621041c.tar.gz
packages_apps_Browser-440030f0992eec8da2b717566ad4895d9621041c.tar.bz2
packages_apps_Browser-440030f0992eec8da2b717566ad4895d9621041c.zip
Merge "Use general permission API."
Diffstat (limited to 'src/com/android/browser/Tab.java')
-rw-r--r--src/com/android/browser/Tab.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index ed20e6708..668786c54 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -50,7 +50,9 @@ import android.webkit.BrowserDownloadListener;
import android.webkit.ClientCertRequest;
import android.webkit.ConsoleMessage;
import android.webkit.GeolocationPermissions;
+import android.webkit.GeolocationPermissions.Callback;
import android.webkit.HttpAuthHandler;
+import android.webkit.PermissionRequest;
import android.webkit.SslErrorHandler;
import android.webkit.URLUtil;
import android.webkit.ValueCallback;
@@ -135,6 +137,8 @@ class Tab implements PictureListener {
// The Geolocation permissions prompt
private GeolocationPermissionsPrompt mGeolocationPermissionsPrompt;
+ // The permissions prompt
+ private PermissionsPrompt mPermissionsPrompt;
// Main WebView wrapper
private View mContainer;
// Main WebView
@@ -912,6 +916,19 @@ class Tab implements PictureListener {
}
}
+ @Override
+ public void onPermissionRequest(PermissionRequest request) {
+ if (!mInForeground) return;
+ getPermissionsPrompt().show(request);
+ }
+
+ @Override
+ public void onPermissionRequestCanceled(PermissionRequest request) {
+ if (mInForeground && mPermissionsPrompt != null) {
+ mPermissionsPrompt.hide();
+ }
+ }
+
/* Adds a JavaScript error message to the system log and if the JS
* console is enabled in the about:debug options, to that console
* also.
@@ -1232,6 +1249,10 @@ class Tab implements PictureListener {
mGeolocationPermissionsPrompt.hide();
}
+ if (mPermissionsPrompt != null) {
+ mPermissionsPrompt.hide();
+ }
+
mWebViewController.onSetWebView(this, w);
if (mMainView != null) {
@@ -1539,6 +1560,18 @@ class Tab implements PictureListener {
}
/**
+ * @return The permissions prompt for this tab.
+ */
+ PermissionsPrompt getPermissionsPrompt() {
+ if (mPermissionsPrompt == null) {
+ ViewStub stub = (ViewStub) mContainer
+ .findViewById(R.id.permissions_prompt);
+ mPermissionsPrompt = (PermissionsPrompt) stub.inflate();
+ }
+ return mPermissionsPrompt;
+ }
+
+ /**
* @return The application id string
*/
String getAppId() {