| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package com.android.webview.chromium; | 5 package com.android.webview.chromium; |
| 6 | 6 |
| 7 import android.content.Context; | 7 import android.content.Context; |
| 8 import android.content.res.Configuration; | 8 import android.content.res.Configuration; |
| 9 import android.graphics.Bitmap; | 9 import android.graphics.Bitmap; |
| 10 import android.graphics.Canvas; | 10 import android.graphics.Canvas; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 import android.view.MotionEvent; | 24 import android.view.MotionEvent; |
| 25 import android.view.View; | 25 import android.view.View; |
| 26 import android.view.ViewGroup; | 26 import android.view.ViewGroup; |
| 27 import android.view.accessibility.AccessibilityEvent; | 27 import android.view.accessibility.AccessibilityEvent; |
| 28 import android.view.accessibility.AccessibilityNodeInfo; | 28 import android.view.accessibility.AccessibilityNodeInfo; |
| 29 import android.view.accessibility.AccessibilityNodeProvider; | 29 import android.view.accessibility.AccessibilityNodeProvider; |
| 30 import android.view.inputmethod.EditorInfo; | 30 import android.view.inputmethod.EditorInfo; |
| 31 import android.view.inputmethod.InputConnection; | 31 import android.view.inputmethod.InputConnection; |
| 32 import android.webkit.DownloadListener; | 32 import android.webkit.DownloadListener; |
| 33 import android.webkit.FindActionModeCallback; | 33 import android.webkit.FindActionModeCallback; |
| 34 import android.webkit.JavascriptInterface; | |
| 35 import android.webkit.ValueCallback; | 34 import android.webkit.ValueCallback; |
| 36 import android.webkit.WebBackForwardList; | 35 import android.webkit.WebBackForwardList; |
| 37 import android.webkit.WebChromeClient; | 36 import android.webkit.WebChromeClient; |
| 38 import android.webkit.WebChromeClient.CustomViewCallback; | 37 import android.webkit.WebChromeClient.CustomViewCallback; |
| 39 import android.webkit.WebSettings; | 38 import android.webkit.WebSettings; |
| 40 import android.webkit.WebView; | 39 import android.webkit.WebView; |
| 41 import android.webkit.WebViewClient; | 40 import android.webkit.WebViewClient; |
| 42 import android.webkit.WebViewProvider; | 41 import android.webkit.WebViewProvider; |
| 43 import android.widget.TextView; | 42 import android.widget.TextView; |
| 44 | 43 |
| 45 import org.chromium.android_webview.AwContents; | 44 import org.chromium.android_webview.AwContents; |
| 46 import org.chromium.android_webview.AwContentsStatics; | 45 import org.chromium.android_webview.AwContentsStatics; |
| 47 import org.chromium.android_webview.AwPrintDocumentAdapter; | 46 import org.chromium.android_webview.AwPrintDocumentAdapter; |
| 48 import org.chromium.android_webview.AwSettings; | 47 import org.chromium.android_webview.AwSettings; |
| 49 import org.chromium.base.ThreadUtils; | 48 import org.chromium.base.ThreadUtils; |
| 50 import org.chromium.content.browser.SmartClipProvider; | 49 import org.chromium.content.browser.SmartClipProvider; |
| 51 | 50 |
| 52 import java.io.BufferedWriter; | 51 import java.io.BufferedWriter; |
| 53 import java.io.File; | 52 import java.io.File; |
| 54 import java.lang.annotation.Annotation; | |
| 55 import java.util.Map; | 53 import java.util.Map; |
| 56 import java.util.Queue; | 54 import java.util.Queue; |
| 57 import java.util.concurrent.Callable; | 55 import java.util.concurrent.Callable; |
| 58 import java.util.concurrent.ConcurrentLinkedQueue; | 56 import java.util.concurrent.ConcurrentLinkedQueue; |
| 59 import java.util.concurrent.FutureTask; | 57 import java.util.concurrent.FutureTask; |
| 60 import java.util.concurrent.TimeUnit; | 58 import java.util.concurrent.TimeUnit; |
| 61 | 59 |
| 62 /** | 60 /** |
| 63 * This class is the delegate to which WebViewProxy forwards all API calls. | 61 * This class is the delegate to which WebViewProxy forwards all API calls. |
| 64 * | 62 * |
| (...skipping 807 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 872 mFactory.startYourEngines(true); | 870 mFactory.startYourEngines(true); |
| 873 if (checkNeedsPost()) { | 871 if (checkNeedsPost()) { |
| 874 String ret = runOnUiThreadBlocking(new Callable<String>() { | 872 String ret = runOnUiThreadBlocking(new Callable<String>() { |
| 875 @Override | 873 @Override |
| 876 public String call() { | 874 public String call() { |
| 877 return getUrl(); | 875 return getUrl(); |
| 878 } | 876 } |
| 879 }); | 877 }); |
| 880 return ret; | 878 return ret; |
| 881 } | 879 } |
| 882 String url = mAwContents.getUrl(); | 880 return mAwContents.getUrl(); |
| 883 if (url == null || url.trim().isEmpty()) return null; | |
| 884 return url; | |
| 885 } | 881 } |
| 886 | 882 |
| 887 @Override | 883 @Override |
| 888 public String getOriginalUrl() { | 884 public String getOriginalUrl() { |
| 889 mFactory.startYourEngines(true); | 885 mFactory.startYourEngines(true); |
| 890 if (checkNeedsPost()) { | 886 if (checkNeedsPost()) { |
| 891 String ret = runOnUiThreadBlocking(new Callable<String>() { | 887 String ret = runOnUiThreadBlocking(new Callable<String>() { |
| 892 @Override | 888 @Override |
| 893 public String call() { | 889 public String call() { |
| 894 return getOriginalUrl(); | 890 return getOriginalUrl(); |
| 895 } | 891 } |
| 896 }); | 892 }); |
| 897 return ret; | 893 return ret; |
| 898 } | 894 } |
| 899 String url = mAwContents.getOriginalUrl(); | 895 return mAwContents.getOriginalUrl(); |
| 900 if (url == null || url.trim().isEmpty()) return null; | |
| 901 return url; | |
| 902 } | 896 } |
| 903 | 897 |
| 904 @Override | 898 @Override |
| 905 public String getTitle() { | 899 public String getTitle() { |
| 906 mFactory.startYourEngines(true); | 900 mFactory.startYourEngines(true); |
| 907 if (checkNeedsPost()) { | 901 if (checkNeedsPost()) { |
| 908 String ret = runOnUiThreadBlocking(new Callable<String>() { | 902 String ret = runOnUiThreadBlocking(new Callable<String>() { |
| 909 @Override | 903 @Override |
| 910 public String call() { | 904 public String call() { |
| 911 return getTitle(); | 905 return getTitle(); |
| (...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1292 public void addJavascriptInterface(final Object obj, final String interfaceN
ame) { | 1286 public void addJavascriptInterface(final Object obj, final String interfaceN
ame) { |
| 1293 if (checkNeedsPost()) { | 1287 if (checkNeedsPost()) { |
| 1294 mRunQueue.addTask(new Runnable() { | 1288 mRunQueue.addTask(new Runnable() { |
| 1295 @Override | 1289 @Override |
| 1296 public void run() { | 1290 public void run() { |
| 1297 addJavascriptInterface(obj, interfaceName); | 1291 addJavascriptInterface(obj, interfaceName); |
| 1298 } | 1292 } |
| 1299 }); | 1293 }); |
| 1300 return; | 1294 return; |
| 1301 } | 1295 } |
| 1302 Class<? extends Annotation> requiredAnnotation = null; | 1296 mAwContents.addJavascriptInterface(obj, interfaceName); |
| 1303 if (mAppTargetSdkVersion >= Build.VERSION_CODES.JELLY_BEAN_MR1) { | |
| 1304 requiredAnnotation = JavascriptInterface.class; | |
| 1305 } | |
| 1306 mAwContents.addPossiblyUnsafeJavascriptInterface(obj, interfaceName, req
uiredAnnotation); | |
| 1307 } | 1297 } |
| 1308 | 1298 |
| 1309 @Override | 1299 @Override |
| 1310 public void removeJavascriptInterface(final String interfaceName) { | 1300 public void removeJavascriptInterface(final String interfaceName) { |
| 1311 if (checkNeedsPost()) { | 1301 if (checkNeedsPost()) { |
| 1312 mRunQueue.addTask(new Runnable() { | 1302 mRunQueue.addTask(new Runnable() { |
| 1313 @Override | 1303 @Override |
| 1314 public void run() { | 1304 public void run() { |
| 1315 removeJavascriptInterface(interfaceName); | 1305 removeJavascriptInterface(interfaceName); |
| 1316 } | 1306 } |
| (...skipping 844 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2161 mAwContents.extractSmartClipData(x, y, width, height); | 2151 mAwContents.extractSmartClipData(x, y, width, height); |
| 2162 } | 2152 } |
| 2163 | 2153 |
| 2164 // Implements SmartClipProvider | 2154 // Implements SmartClipProvider |
| 2165 @Override | 2155 @Override |
| 2166 public void setSmartClipResultHandler(final Handler resultHandler) { | 2156 public void setSmartClipResultHandler(final Handler resultHandler) { |
| 2167 checkThread(); | 2157 checkThread(); |
| 2168 mAwContents.setSmartClipResultHandler(resultHandler); | 2158 mAwContents.setSmartClipResultHandler(resultHandler); |
| 2169 } | 2159 } |
| 2170 } | 2160 } |
| OLD | NEW |