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.test; 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7a3f7b4e666c476898878fa745f637129375cd889Ben Murdochimport android.graphics.Picture; 883109aa23599e63402ee03cd93f67d3ff874e241Hui Shuimport android.net.http.SslError; 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import android.webkit.ConsoleMessage; 1083109aa23599e63402ee03cd93f67d3ff874e241Hui Shuimport android.webkit.ValueCallback; 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)import org.chromium.base.ThreadUtils; 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import org.chromium.content.browser.test.util.CallbackHelper; 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)import org.chromium.content.browser.test.util.TestCallbackHelperContainer.OnEvaluateJavaScriptResultHelper; 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import org.chromium.content.browser.test.util.TestCallbackHelperContainer.OnPageFinishedHelper; 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)import org.chromium.content.browser.test.util.TestCallbackHelperContainer.OnPageStartedHelper; 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import org.chromium.content.browser.test.util.TestCallbackHelperContainer.OnReceivedErrorHelper; 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 19010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** 20010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * AwContentsClient subclass used for testing. 21010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) */ 22010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)public class TestAwContentsClient extends NullContentsClient { 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private String mUpdatedTitle; 2483109aa23599e63402ee03cd93f67d3ff874e241Hui Shu private boolean mAllowSslError; 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private final OnPageStartedHelper mOnPageStartedHelper; 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private final OnPageFinishedHelper mOnPageFinishedHelper; 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private final OnReceivedErrorHelper mOnReceivedErrorHelper; 2883109aa23599e63402ee03cd93f67d3ff874e241Hui Shu private final CallbackHelper mOnReceivedSslErrorHelper; 29a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch private final OnDownloadStartHelper mOnDownloadStartHelper; 30a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch private final OnReceivedLoginRequestHelper mOnReceivedLoginRequestHelper; 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private final OnEvaluateJavaScriptResultHelper mOnEvaluateJavaScriptResultHelper; 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private final AddMessageToConsoleHelper mAddMessageToConsoleHelper; 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private final OnScaleChangedHelper mOnScaleChangedHelper; 34a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch private final PictureListenerHelper mPictureListenerHelper; 355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) private final ShouldOverrideUrlLoadingHelper mShouldOverrideUrlLoadingHelper; 366e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) private final DoUpdateVisitedHistoryHelper mDoUpdateVisitedHistoryHelper; 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public TestAwContentsClient() { 391e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) super(ThreadUtils.getUiThreadLooper()); 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mOnPageStartedHelper = new OnPageStartedHelper(); 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mOnPageFinishedHelper = new OnPageFinishedHelper(); 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mOnReceivedErrorHelper = new OnReceivedErrorHelper(); 4383109aa23599e63402ee03cd93f67d3ff874e241Hui Shu mOnReceivedSslErrorHelper = new CallbackHelper(); 44a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch mOnDownloadStartHelper = new OnDownloadStartHelper(); 45a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch mOnReceivedLoginRequestHelper = new OnReceivedLoginRequestHelper(); 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mOnEvaluateJavaScriptResultHelper = new OnEvaluateJavaScriptResultHelper(); 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mAddMessageToConsoleHelper = new AddMessageToConsoleHelper(); 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) mOnScaleChangedHelper = new OnScaleChangedHelper(); 49a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch mPictureListenerHelper = new PictureListenerHelper(); 505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) mShouldOverrideUrlLoadingHelper = new ShouldOverrideUrlLoadingHelper(); 516e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) mDoUpdateVisitedHistoryHelper = new DoUpdateVisitedHistoryHelper(); 5283109aa23599e63402ee03cd93f67d3ff874e241Hui Shu mAllowSslError = true; 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public OnPageStartedHelper getOnPageStartedHelper() { 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return mOnPageStartedHelper; 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public OnPageFinishedHelper getOnPageFinishedHelper() { 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return mOnPageFinishedHelper; 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public OnReceivedErrorHelper getOnReceivedErrorHelper() { 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return mOnReceivedErrorHelper; 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6783109aa23599e63402ee03cd93f67d3ff874e241Hui Shu public CallbackHelper getOnReceivedSslErrorHelper() { 6883109aa23599e63402ee03cd93f67d3ff874e241Hui Shu return mOnReceivedSslErrorHelper; 6983109aa23599e63402ee03cd93f67d3ff874e241Hui Shu } 7083109aa23599e63402ee03cd93f67d3ff874e241Hui Shu 71a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public OnDownloadStartHelper getOnDownloadStartHelper() { 72a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch return mOnDownloadStartHelper; 73a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch } 74a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 75a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public OnReceivedLoginRequestHelper getOnReceivedLoginRequestHelper() { 76a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch return mOnReceivedLoginRequestHelper; 77a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch } 78a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public OnEvaluateJavaScriptResultHelper getOnEvaluateJavaScriptResultHelper() { 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return mOnEvaluateJavaScriptResultHelper; 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) public ShouldOverrideUrlLoadingHelper getShouldOverrideUrlLoadingHelper() { 845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return mShouldOverrideUrlLoadingHelper; 855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public AddMessageToConsoleHelper getAddMessageToConsoleHelper() { 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return mAddMessageToConsoleHelper; 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 916e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) public DoUpdateVisitedHistoryHelper getDoUpdateVisitedHistoryHelper() { 926e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) return mDoUpdateVisitedHistoryHelper; 936e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) } 946e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 95010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) /** 96010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * Callback helper for onScaleChangedScaled. 97010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) */ 982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public static class OnScaleChangedHelper extends CallbackHelper { 992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private float mPreviousScale; 1002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private float mCurrentScale; 1012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public void notifyCalled(float oldScale, float newScale) { 1022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) mPreviousScale = oldScale; 1032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) mCurrentScale = newScale; 1042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) super.notifyCalled(); 1052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 106a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 107a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public float getOldScale() { 108a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch return mPreviousScale; 109a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch } 110a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 111a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public float getNewScale() { 112a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch return mCurrentScale; 113a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch } 114a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 1152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public float getLastScaleRatio() { 1162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assert getCallCount() > 0; 1172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return mCurrentScale / mPreviousScale; 1182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 1192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 1202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public OnScaleChangedHelper getOnScaleChangedHelper() { 1222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return mOnScaleChangedHelper; 1232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 1242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 125a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch public PictureListenerHelper getPictureListenerHelper() { 126a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch return mPictureListenerHelper; 127a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch } 128a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch 1292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) @Override 130c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) public void onReceivedTitle(String title) { 1312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) mUpdatedTitle = title; 1322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 1332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public String getUpdatedTitle() { 1352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return mUpdatedTitle; 1362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 1372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @Override 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void onPageStarted(String url) { 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mOnPageStartedHelper.notifyCalled(url); 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @Override 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void onPageFinished(String url) { 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mOnPageFinishedHelper.notifyCalled(url); 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @Override 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void onReceivedError(int errorCode, String description, String failingUrl) { 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mOnReceivedErrorHelper.notifyCalled(errorCode, description, failingUrl); 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15383109aa23599e63402ee03cd93f67d3ff874e241Hui Shu @Override 15483109aa23599e63402ee03cd93f67d3ff874e241Hui Shu public void onReceivedSslError(ValueCallback<Boolean> callback, SslError error) { 15583109aa23599e63402ee03cd93f67d3ff874e241Hui Shu callback.onReceiveValue(mAllowSslError); 15683109aa23599e63402ee03cd93f67d3ff874e241Hui Shu mOnReceivedSslErrorHelper.notifyCalled(); 15783109aa23599e63402ee03cd93f67d3ff874e241Hui Shu } 15883109aa23599e63402ee03cd93f67d3ff874e241Hui Shu 15983109aa23599e63402ee03cd93f67d3ff874e241Hui Shu public void setAllowSslError(boolean allow) { 16083109aa23599e63402ee03cd93f67d3ff874e241Hui Shu mAllowSslError = allow; 16183109aa23599e63402ee03cd93f67d3ff874e241Hui Shu } 16283109aa23599e63402ee03cd93f67d3ff874e241Hui Shu 163a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch /** 164a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch * CallbackHelper for OnDownloadStart. 165a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch */ 166a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public static class OnDownloadStartHelper extends CallbackHelper { 167a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch private String mUrl; 168a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch private String mUserAgent; 169a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch private String mContentDisposition; 170a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch private String mMimeType; 171a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch long mContentLength; 172a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 173a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public String getUrl() { 174a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch assert getCallCount() > 0; 175a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch return mUrl; 176a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch } 177a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 178a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public String getUserAgent() { 179a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch assert getCallCount() > 0; 180a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch return mUserAgent; 181a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch } 182a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 183a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public String getContentDisposition() { 184a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch assert getCallCount() > 0; 185a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch return mContentDisposition; 186a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch } 187a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 188a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public String getMimeType() { 189a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch assert getCallCount() > 0; 190a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch return mMimeType; 191a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch } 192a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 193a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public long getContentLength() { 194a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch assert getCallCount() > 0; 195a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch return mContentLength; 196a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch } 197a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 198a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public void notifyCalled(String url, String userAgent, String contentDisposition, 199a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch String mimeType, long contentLength) { 200a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch mUrl = url; 201a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch mUserAgent = userAgent; 202a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch mContentDisposition = contentDisposition; 203a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch mMimeType = mimeType; 204a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch mContentLength = contentLength; 205a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch notifyCalled(); 206a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch } 207a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch } 208a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 209a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch @Override 210a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public void onDownloadStart(String url, 211a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch String userAgent, 212a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch String contentDisposition, 213a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch String mimeType, 214a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch long contentLength) { 215a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch getOnDownloadStartHelper().notifyCalled(url, userAgent, contentDisposition, mimeType, 216a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch contentLength); 217a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch } 218a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 219a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch /** 220a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch * CallbackHelper for OnReceivedLoginRequest. 221a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch */ 222a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public static class OnReceivedLoginRequestHelper extends CallbackHelper { 223a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch private String mRealm; 224a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch private String mAccount; 225a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch private String mArgs; 226a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 227a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public String getRealm() { 228a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch assert getCallCount() > 0; 229a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch return mRealm; 230a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch } 231a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 232a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public String getAccount() { 233a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch assert getCallCount() > 0; 234a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch return mAccount; 235a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch } 236a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 237a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public String getArgs() { 238a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch assert getCallCount() > 0; 239a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch return mArgs; 240a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch } 241a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 242a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public void notifyCalled(String realm, String account, String args) { 243a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch mRealm = realm; 244a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch mAccount = account; 245a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch mArgs = args; 246a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch notifyCalled(); 247a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch } 248a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch } 249a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 250a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch @Override 251a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch public void onReceivedLoginRequest(String realm, String account, String args) { 252a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch getOnReceivedLoginRequestHelper().notifyCalled(realm, account, args); 253a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch } 254a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @Override 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public boolean onConsoleMessage(ConsoleMessage consoleMessage) { 2572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) mAddMessageToConsoleHelper.notifyCalled(consoleMessage.messageLevel().ordinal(), 2582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) consoleMessage.message(), consoleMessage.lineNumber(), consoleMessage.sourceId()); 2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return false; 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 262010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) /** 26383109aa23599e63402ee03cd93f67d3ff874e241Hui Shu * Callback helper for AddMessageToConsole. 264010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) */ 2652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public static class AddMessageToConsoleHelper extends CallbackHelper { 2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private int mLevel; 2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private String mMessage; 2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private int mLineNumber; 2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private String mSourceId; 2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public int getLevel() { 2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assert getCallCount() > 0; 2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return mLevel; 2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public String getMessage() { 2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assert getCallCount() > 0; 2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return mMessage; 2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public int getLineNumber() { 2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assert getCallCount() > 0; 2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return mLineNumber; 2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public String getSourceId() { 2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assert getCallCount() > 0; 2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return mSourceId; 2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void notifyCalled(int level, String message, int lineNumer, String sourceId) { 2922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) mLevel = level; 2932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) mMessage = message; 2942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) mLineNumber = lineNumer; 2952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) mSourceId = sourceId; 2962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) notifyCalled(); 2972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 2982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 2992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) @Override 3012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public void onScaleChangedScaled(float oldScale, float newScale) { 3022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) mOnScaleChangedHelper.notifyCalled(oldScale, newScale); 3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 304a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch 305010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) /** 30683109aa23599e63402ee03cd93f67d3ff874e241Hui Shu * Callback helper for PictureListener. 307010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) */ 308a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch public static class PictureListenerHelper extends CallbackHelper { 309a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch // Generally null, depending on |invalidationOnly| in enableOnNewPicture() 310a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch private Picture mPicture; 311a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch 312a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch public Picture getPicture() { 313a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch assert getCallCount() > 0; 314a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch return mPicture; 315a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch } 316a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch 317a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch void notifyCalled(Picture picture) { 318a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch mPicture = picture; 319a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch notifyCalled(); 320a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch } 321a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch } 322a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch 323a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch @Override 324a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch public void onNewPicture(Picture picture) { 325a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch mPictureListenerHelper.notifyCalled(picture); 326a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch } 3275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 328010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) /** 32983109aa23599e63402ee03cd93f67d3ff874e241Hui Shu * Callback helper for ShouldOverrideUrlLoading. 330010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) */ 3315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) public static class ShouldOverrideUrlLoadingHelper extends CallbackHelper { 3325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) private String mShouldOverrideUrlLoadingUrl; 3335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) private String mPreviousShouldOverrideUrlLoadingUrl; 3345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) private boolean mShouldOverrideUrlLoadingReturnValue = false; 3355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void setShouldOverrideUrlLoadingUrl(String url) { 3365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) mShouldOverrideUrlLoadingUrl = url; 3375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 3385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void setPreviousShouldOverrideUrlLoadingUrl(String url) { 3395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) mPreviousShouldOverrideUrlLoadingUrl = url; 3405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 3415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void setShouldOverrideUrlLoadingReturnValue(boolean value) { 3425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) mShouldOverrideUrlLoadingReturnValue = value; 3435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 3445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) public String getShouldOverrideUrlLoadingUrl() { 3455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) assert getCallCount() > 0; 3465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return mShouldOverrideUrlLoadingUrl; 3475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 3485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) public String getPreviousShouldOverrideUrlLoadingUrl() { 3495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) assert getCallCount() > 1; 3505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return mPreviousShouldOverrideUrlLoadingUrl; 3515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 3525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) public boolean getShouldOverrideUrlLoadingReturnValue() { 3535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return mShouldOverrideUrlLoadingReturnValue; 3545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 3555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) public void notifyCalled(String url) { 3565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) mPreviousShouldOverrideUrlLoadingUrl = mShouldOverrideUrlLoadingUrl; 3575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) mShouldOverrideUrlLoadingUrl = url; 3585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) notifyCalled(); 3595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 3605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 3615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 3625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) @Override 3635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) public boolean shouldOverrideUrlLoading(String url) { 3645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) super.shouldOverrideUrlLoading(url); 3655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) boolean returnValue = 3665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) mShouldOverrideUrlLoadingHelper.getShouldOverrideUrlLoadingReturnValue(); 3675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) mShouldOverrideUrlLoadingHelper.notifyCalled(url); 3685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return returnValue; 3695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 3706e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 3716e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 3726e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) /** 3736e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) * Callback helper for doUpdateVisitedHistory. 3746e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) */ 3756e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) public static class DoUpdateVisitedHistoryHelper extends CallbackHelper { 3766e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) String mUrl; 3776e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) boolean mIsReload; 3786e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 3796e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) public String getUrl() { 3806e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) assert getCallCount() > 0; 3816e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) return mUrl; 3826e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) } 3836e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 3846e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) public boolean getIsReload() { 3856e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) assert getCallCount() > 0; 3866e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) return mIsReload; 3876e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) } 3886e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 3896e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) public void notifyCalled(String url, boolean isReload) { 3906e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) mUrl = url; 3916e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) mIsReload = isReload; 3926e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) notifyCalled(); 3936e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) } 3946e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) } 3956e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 3966e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) @Override 3976e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) public void doUpdateVisitedHistory(String url, boolean isReload) { 3986e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) getDoUpdateVisitedHistoryHelper().notifyCalled(url, isReload); 3996e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) } 4005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 401