Disable TabDragController tests that fail with a real compositor.
[chromium-blink-merge.git] / chrome / browser / ui / android / chrome_http_auth_handler.h
blobb5c52c7e8604fb97f7eab950b2b0214b2c102667
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.
5 #ifndef CHROME_BROWSER_UI_ANDROID_CHROME_HTTP_AUTH_HANDLER_H_
6 #define CHROME_BROWSER_UI_ANDROID_CHROME_HTTP_AUTH_HANDLER_H_
8 #include <jni.h>
10 #include "base/android/scoped_java_ref.h"
11 #include "base/strings/string16.h"
12 #include "chrome/browser/ui/login/login_prompt.h"
14 // This class facilitates communication between a native LoginHandler
15 // and a Java land ChromeHttpAuthHandler, which is passed to a
16 // ContentViewClient to allow it to respond to HTTP authentication requests
17 // by, e.g., showing the user a login dialog.
18 class ChromeHttpAuthHandler {
19 public:
20 ChromeHttpAuthHandler(const base::string16& explanation);
21 ~ChromeHttpAuthHandler();
23 // This must be called before using the object.
24 // Constructs a corresponding Java land ChromeHttpAuthHandler.
25 void Init();
27 // Registers an observer to receive callbacks when SetAuth() and CancelAuth()
28 // are called. |observer| may be NULL in which case the callbacks are skipped.
29 void SetObserver(LoginHandler* observer);
31 // Returns a reference to the Java land ChromeHttpAuthHandler. This
32 // reference must not be released, and remains valid until the native
33 // ChromeHttpAuthHandler is destructed.
34 jobject GetJavaObject();
36 // Forwards the autofill data to the Java land object.
37 void OnAutofillDataAvailable(
38 const base::string16& username,
39 const base::string16& password);
41 // --------------------------------------------------------------
42 // JNI Methods
43 // --------------------------------------------------------------
45 // Submits the username and password to the observer.
46 void SetAuth(JNIEnv* env, jobject, jstring username, jstring password);
48 // Cancels the authentication attempt of the observer.
49 void CancelAuth(JNIEnv* env, jobject);
51 // These functions return the strings needed to display a login form.
52 base::android::ScopedJavaLocalRef<jstring> GetMessageTitle(
53 JNIEnv* env, jobject);
54 base::android::ScopedJavaLocalRef<jstring> GetMessageBody(
55 JNIEnv* env, jobject);
56 base::android::ScopedJavaLocalRef<jstring> GetUsernameLabelText(
57 JNIEnv* env, jobject);
58 base::android::ScopedJavaLocalRef<jstring> GetPasswordLabelText(
59 JNIEnv* env, jobject);
60 base::android::ScopedJavaLocalRef<jstring> GetOkButtonText(
61 JNIEnv* env, jobject);
62 base::android::ScopedJavaLocalRef<jstring> GetCancelButtonText(
63 JNIEnv* env, jobject);
64 // Registers the ChromeHttpAuthHandler native methods.
65 static bool RegisterChromeHttpAuthHandler(JNIEnv* env);
66 private:
67 LoginHandler* observer_;
68 base::android::ScopedJavaGlobalRef<jobject> java_chrome_http_auth_handler_;
69 // e.g. "The server example.com:80 requires a username and password."
70 base::string16 explanation_;
72 DISALLOW_COPY_AND_ASSIGN(ChromeHttpAuthHandler);
75 #endif // CHROME_BROWSER_UI_ANDROID_CHROME_HTTP_AUTH_HANDLER_H_