1a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// Copyright 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)package org.chromium.android_webview; 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import org.chromium.base.CalledByNative; 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import org.chromium.base.JNINamespace; 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)@JNINamespace("android_webview") 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)public class AwHttpAuthHandler { 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) private long mNativeAwHttpAuthHandler; 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private final boolean mFirstAttempt; 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void proceed(String username, String password) { 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (mNativeAwHttpAuthHandler != 0) { 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) nativeProceed(mNativeAwHttpAuthHandler, username, password); 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) mNativeAwHttpAuthHandler = 0; 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void cancel() { 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (mNativeAwHttpAuthHandler != 0) { 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) nativeCancel(mNativeAwHttpAuthHandler); 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) mNativeAwHttpAuthHandler = 0; 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public boolean isFirstAttempt() { 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return mFirstAttempt; 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @CalledByNative 35a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) public static AwHttpAuthHandler create(long nativeAwAuthHandler, boolean firstAttempt) { 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return new AwHttpAuthHandler(nativeAwAuthHandler, firstAttempt); 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 39a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) private AwHttpAuthHandler(long nativeAwHttpAuthHandler, boolean firstAttempt) { 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mNativeAwHttpAuthHandler = nativeAwHttpAuthHandler; 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) mFirstAttempt = firstAttempt; 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) @CalledByNative 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void handlerDestroyed() { 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) mNativeAwHttpAuthHandler = 0; 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 49a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) private native void nativeProceed(long nativeAwHttpAuthHandler, 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) String username, String password); 51a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) private native void nativeCancel(long nativeAwHttpAuthHandler); 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 53