Home | History | Annotate | Download | only in browser
      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