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 17namespace content { 18class WebContents; 19}; 20 21namespace net { 22class AuthChallengeInfo; 23}; 24 25namespace 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. 30class 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 50bool RegisterAwHttpAuthHandler(JNIEnv* env); 51 52} // namespace android_webview 53 54#endif // ANDROID_WEBVIEW_NATIVE_AW_HTTP_AUTH_HANDLER_H_ 55