Index: android_webview/native/aw_contents.cc |
diff --git a/android_webview/native/aw_contents.cc b/android_webview/native/aw_contents.cc |
index eb009e93f993a5e3e72206ab20d58de911af8f47..cf27be1bc54cbdae70d69c96eaa1bc64c9ca4e9f 100644 |
--- a/android_webview/native/aw_contents.cc |
+++ b/android_webview/native/aw_contents.cc |
@@ -24,6 +24,7 @@ |
#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/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" |
@@ -204,6 +205,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) |
@@ -577,6 +580,29 @@ void AwContents::HideGeolocationPrompt(const GURL& origin) { |
} |
} |
+void AwContents::OnPermissionRequest( |
+ scoped_refptr<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( |
+ scoped_refptr<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)); |