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_BROWSER_AW_HTTP_AUTH_HANDLER_BASE_H_ 6 #define ANDROID_WEBVIEW_BROWSER_AW_HTTP_AUTH_HANDLER_BASE_H_ 7 8 namespace content { 9 class WebContents; 10 }; 11 12 namespace net { 13 class AuthChallengeInfo; 14 }; 15 16 namespace android_webview { 17 18 class AwLoginDelegate; 19 20 // browser/ layer interface for AwHttpAuthHandler (which is implemented in the 21 // native/ layer as a native version of the Java class of the same name). This 22 // allows the browser/ layer to be unaware of JNI/Java shenanigans. 23 class AwHttpAuthHandlerBase { 24 public: 25 static AwHttpAuthHandlerBase* Create(AwLoginDelegate* login_delegate, 26 net::AuthChallengeInfo* auth_info, 27 bool first_auth_attempt); 28 virtual ~AwHttpAuthHandlerBase(); 29 30 // Provides an 'escape-hatch' out to Java for the browser/ layer 31 // AwLoginDelegate. 32 virtual bool HandleOnUIThread(content::WebContents*) = 0; 33 }; 34 35 } // namespace android_webview 36 37 #endif // ANDROID_WEBVIEW_BROWSER_AW_HTTP_AUTH_HANDLER_BASE_H_ 38