Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(198)

Side by Side Diff: android_webview/native/aw_http_auth_handler.cc

Issue 2863233002: [WebView] Move files from native to browser (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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 #include "android_webview/native/aw_http_auth_handler.h"
6
7 #include "android_webview/browser/aw_login_delegate.h"
8 #include "android_webview/native/aw_contents.h"
9 #include "base/android/jni_android.h"
10 #include "base/android/jni_string.h"
11 #include "content/public/browser/browser_thread.h"
12 #include "jni/AwHttpAuthHandler_jni.h"
13 #include "net/base/auth.h"
14 #include "content/public/browser/web_contents.h"
15
16 using base::android::ConvertJavaStringToUTF16;
17 using base::android::JavaParamRef;
18 using content::BrowserThread;
19
20 namespace android_webview {
21
22 AwHttpAuthHandler::AwHttpAuthHandler(AwLoginDelegate* login_delegate,
23 net::AuthChallengeInfo* auth_info,
24 bool first_auth_attempt)
25 : login_delegate_(login_delegate),
26 host_(auth_info->challenger.host()),
27 realm_(auth_info->realm) {
28 DCHECK_CURRENTLY_ON(BrowserThread::UI);
29 JNIEnv* env = base::android::AttachCurrentThread();
30 http_auth_handler_.Reset(
31 Java_AwHttpAuthHandler_create(
32 env, reinterpret_cast<intptr_t>(this), first_auth_attempt));
33 }
34
35 AwHttpAuthHandler:: ~AwHttpAuthHandler() {
36 DCHECK_CURRENTLY_ON(BrowserThread::UI);
37 Java_AwHttpAuthHandler_handlerDestroyed(base::android::AttachCurrentThread(),
38 http_auth_handler_);
39 }
40
41 void AwHttpAuthHandler::Proceed(JNIEnv* env,
42 const JavaParamRef<jobject>& obj,
43 const JavaParamRef<jstring>& user,
44 const JavaParamRef<jstring>& password) {
45 DCHECK_CURRENTLY_ON(BrowserThread::UI);
46 if (login_delegate_.get()) {
47 login_delegate_->Proceed(ConvertJavaStringToUTF16(env, user),
48 ConvertJavaStringToUTF16(env, password));
49 login_delegate_ = NULL;
50 }
51 }
52
53 void AwHttpAuthHandler::Cancel(JNIEnv* env, const JavaParamRef<jobject>& obj) {
54 DCHECK_CURRENTLY_ON(BrowserThread::UI);
55 if (login_delegate_.get()) {
56 login_delegate_->Cancel();
57 login_delegate_ = NULL;
58 }
59 }
60
61 bool AwHttpAuthHandler::HandleOnUIThread(content::WebContents* web_contents) {
62 DCHECK(web_contents);
63 DCHECK_CURRENTLY_ON(BrowserThread::UI);
64 AwContents* aw_contents = AwContents::FromWebContents(web_contents);
65
66 return aw_contents->OnReceivedHttpAuthRequest(http_auth_handler_, host_,
67 realm_);
68 }
69
70 // static
71 AwHttpAuthHandlerBase* AwHttpAuthHandlerBase::Create(
72 AwLoginDelegate* login_delegate,
73 net::AuthChallengeInfo* auth_info,
74 bool first_auth_attempt) {
75 return new AwHttpAuthHandler(login_delegate, auth_info, first_auth_attempt);
76 }
77
78 bool RegisterAwHttpAuthHandler(JNIEnv* env) {
79 return RegisterNativesImpl(env);
80 }
81
82 } // namespace android_webview
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698