[WebView] Remove dependency on FileUtils.

We implement our own version of deleteContents to
avoid depending on FileUtils, a hidden Android API.

BUG:18152150

Change-Id: I8607e36827bacc38a80a35f65c13f39f561551a0
diff --git a/chromium/java/com/android/webview/chromium/WebViewChromiumFactoryProvider.java b/chromium/java/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
index 31708d1..cbeead5 100644
--- a/chromium/java/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
+++ b/chromium/java/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
@@ -26,7 +26,6 @@
 import android.content.SharedPreferences;
 import android.net.Uri;
 import android.os.Build;
-import android.os.FileUtils;
 import android.os.Looper;
 import android.os.StrictMode;
 import android.os.SystemProperties;
@@ -135,7 +134,7 @@
             String dataDir = PathUtils.getDataDirectory(ActivityThread.currentApplication());
             Log.i(TAG, "WebView package downgraded from " + lastVersion + " to " + currentVersion +
                        "; deleting contents of " + dataDir);
-            FileUtils.deleteContents(new File(dataDir));
+            deleteContents(new File(dataDir));
         }
         if (lastVersion != currentVersion) {
             mWebViewPrefs.edit().putInt(VERSION_CODE_PREF, currentVersion).apply();
@@ -143,6 +142,20 @@
         // Now safe to use WebView data directory.
     }
 
+    private static void deleteContents(File dir) {
+        File[] files = dir.listFiles();
+        if (files != null) {
+            for (File file : files) {
+                if (file.isDirectory()) {
+                    deleteContents(file);
+                }
+                if (!file.delete()) {
+                    Log.w(TAG, "Failed to delete " + file);
+                }
+            }
+        }
+    }
+
     private void initPlatSupportLibrary() {
         DrawGLFunctor.setChromiumAwDrawGLFunction(AwContents.getAwDrawGLFunction());
         AwContents.setAwDrawSWFunctionTable(GraphicsUtils.getDrawSWFunctionTable());