Index: android_webview/native/aw_contents.cc |
diff --git a/android_webview/native/aw_contents.cc b/android_webview/native/aw_contents.cc |
index c9d38d6cfdd5c3b73accf7b8bc7ba86592b2dd29..66139eff13e975c340f1c728dcb009075899d059 100644 |
--- a/android_webview/native/aw_contents.cc |
+++ b/android_webview/native/aw_contents.cc |
@@ -24,6 +24,8 @@ |
#include "android_webview/native/aw_picture.h" |
#include "android_webview/native/aw_web_contents_delegate.h" |
#include "android_webview/native/java_browser_view_renderer_helper.h" |
+#include "android_webview/native/permission/aw_permission_request.h" |
+#include "android_webview/native/permission/permission_request_handler.h" |
#include "android_webview/native/state_serializer.h" |
#include "android_webview/public/browser/draw_gl.h" |
#include "base/android/jni_android.h" |
@@ -169,6 +171,8 @@ AwContents::AwContents(scoped_ptr<WebContents> web_contents) |
render_view_host_ext_.reset( |
new AwRenderViewHostExt(this, web_contents_.get())); |
+ permission_request_handler_.reset(new PermissionRequestHandler(this)); |
+ |
AwAutofillManagerDelegate* autofill_manager_delegate = |
AwAutofillManagerDelegate::FromWebContents(web_contents_.get()); |
if (autofill_manager_delegate) |
@@ -519,6 +523,27 @@ void AwContents::HideGeolocationPrompt(const GURL& origin) { |
} |
} |
+void AwContents::OnPermissionRequest(AwPermissionRequest* request) { |
+ JNIEnv* env = AttachCurrentThread(); |
+ ScopedJavaLocalRef<jobject> j_request = request->GetJavaObject(); |
+ if (j_request.is_null()) |
+ return; |
+ |
+ ScopedJavaLocalRef<jobject> j_ref = java_ref_.get(env); |
+ Java_AwContents_onPermissionRequest(env, j_ref.obj(), j_request.obj()); |
+} |
+ |
+void AwContents::OnPermissionRequestCanceled(AwPermissionRequest* request) { |
+ JNIEnv* env = AttachCurrentThread(); |
+ ScopedJavaLocalRef<jobject> j_request = request->GetJavaObject(); |
+ if (j_request.is_null()) |
+ return; |
+ |
+ ScopedJavaLocalRef<jobject> j_ref = java_ref_.get(env); |
+ Java_AwContents_onPermissionRequestCanceled( |
+ env, j_ref.obj(), j_request.obj()); |
+} |
+ |
void AwContents::FindAllAsync(JNIEnv* env, jobject obj, jstring search_string) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
GetFindHelper()->FindAllAsync(ConvertJavaStringToUTF16(env, search_string)); |