1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef ANDROID_WEBVIEW_NATIVE_AW_HTTP_AUTH_HANDLER_H_ 6 #define ANDROID_WEBVIEW_NATIVE_AW_HTTP_AUTH_HANDLER_H_ 7 8 #include <jni.h> 9 #include <string> 10 11 #include "android_webview/browser/aw_login_delegate.h" 12 #include "android_webview/browser/aw_http_auth_handler_base.h" 13 #include "base/android/jni_android.h" 14 #include "base/android/scoped_java_ref.h" 15 #include "base/memory/ref_counted.h" 16 17 namespace content { 18 class WebContents; 19 }; 20 21 namespace net { 22 class AuthChallengeInfo; 23 }; 24 25 namespace android_webview { 26 27 // Native class for Java class of same name and owns an instance 28 // of that Java object. 29 // One instance of this class is created per underlying AwLoginDelegate. 30 class AwHttpAuthHandler : public AwHttpAuthHandlerBase { 31 public: 32 AwHttpAuthHandler(AwLoginDelegate* login_delegate, 33 net::AuthChallengeInfo* auth_info, 34 bool first_auth_attempt); 35 virtual ~AwHttpAuthHandler(); 36 37 // from AwHttpAuthHandler 38 virtual bool HandleOnUIThread(content::WebContents* web_contents) OVERRIDE; 39 40 void Proceed(JNIEnv* env, jobject obj, jstring username, jstring password); 41 void Cancel(JNIEnv* env, jobject obj); 42 43 private: 44 scoped_refptr<AwLoginDelegate> login_delegate_; 45 base::android::ScopedJavaGlobalRef<jobject> http_auth_handler_; 46 std::string host_; 47 std::string realm_; 48 }; 49 50 bool RegisterAwHttpAuthHandler(JNIEnv* env); 51 52 } // namespace android_webview 53 54 #endif // ANDROID_WEBVIEW_NATIVE_AW_HTTP_AUTH_HANDLER_H_ 55