summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ziad Youssef <ziadyoussef@google.com> 2024-04-15 11:32:56 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-04-15 11:32:56 +0000
commit6c9627e6b8a82665b6824a10f823e81cea589b12 (patch)
tree495610f07541f9535d92067fa82acf9bac64b694
parentbdf3e457b4b50a5a168dc0c822b60a4aae34c687 (diff)
parentf8f9e9ab11e65322aaaeb7373efd77cf1d671928 (diff)
Merge "Better error handling for webkit classes" into main
-rw-r--r--core/java/android/webkit/WebViewFactory.java3
-rw-r--r--core/java/android/webkit/WebViewLibraryLoader.java3
-rw-r--r--services/core/java/com/android/server/webkit/SystemImpl.java2
-rw-r--r--services/core/java/com/android/server/webkit/WebViewUpdateServiceImpl.java7
-rw-r--r--services/core/java/com/android/server/webkit/WebViewUpdateServiceImpl2.java7
5 files changed, 16 insertions, 6 deletions
diff --git a/core/java/android/webkit/WebViewFactory.java b/core/java/android/webkit/WebViewFactory.java
index 8f1b72e90da1..10344792eee2 100644
--- a/core/java/android/webkit/WebViewFactory.java
+++ b/core/java/android/webkit/WebViewFactory.java
@@ -40,6 +40,7 @@ import android.text.TextUtils;
import android.util.AndroidRuntimeException;
import android.util.ArraySet;
import android.util.Log;
+import android.util.Slog;
import java.io.File;
import java.lang.reflect.Method;
@@ -609,7 +610,7 @@ public final class WebViewFactory {
startedRelroProcesses = WebViewLibraryLoader.prepareNativeLibraries(packageInfo);
} catch (Throwable t) {
// Log and discard errors at this stage as we must not crash the system server.
- Log.e(LOGTAG, "error preparing webview native library", t);
+ Slog.wtf(LOGTAG, "error preparing webview native library", t);
}
WebViewZygote.onWebViewProviderChanged(packageInfo);
diff --git a/core/java/android/webkit/WebViewLibraryLoader.java b/core/java/android/webkit/WebViewLibraryLoader.java
index a68a5778de82..1a8745c4e739 100644
--- a/core/java/android/webkit/WebViewLibraryLoader.java
+++ b/core/java/android/webkit/WebViewLibraryLoader.java
@@ -25,6 +25,7 @@ import android.content.pm.PackageInfo;
import android.os.Build;
import android.os.Process;
import android.util.Log;
+import android.util.Slog;
import com.android.internal.annotations.VisibleForTesting;
import com.android.server.LocalServices;
@@ -137,7 +138,7 @@ public class WebViewLibraryLoader {
if (!success) throw new Exception("Failed to start the relro file creator process");
} catch (Throwable t) {
// Log and discard errors as we must not crash the system server.
- Log.e(LOGTAG, "error starting relro file creator for abi " + abi, t);
+ Slog.wtf(LOGTAG, "error starting relro file creator for abi " + abi, t);
crashHandler.run();
}
}
diff --git a/services/core/java/com/android/server/webkit/SystemImpl.java b/services/core/java/com/android/server/webkit/SystemImpl.java
index 5e345965dc80..a821f54520df 100644
--- a/services/core/java/com/android/server/webkit/SystemImpl.java
+++ b/services/core/java/com/android/server/webkit/SystemImpl.java
@@ -35,6 +35,7 @@ import android.os.UserManager;
import android.provider.Settings;
import android.util.AndroidRuntimeException;
import android.util.Log;
+import android.util.Slog;
import android.webkit.UserPackage;
import android.webkit.WebViewFactory;
import android.webkit.WebViewProviderInfo;
@@ -201,6 +202,7 @@ public class SystemImpl implements SystemInterface {
ActivityManager.getService().killPackageDependents(packageName,
UserHandle.USER_ALL);
} catch (RemoteException e) {
+ Slog.wtf(TAG, "failed to call killPackageDependents for " + packageName, e);
}
}
diff --git a/services/core/java/com/android/server/webkit/WebViewUpdateServiceImpl.java b/services/core/java/com/android/server/webkit/WebViewUpdateServiceImpl.java
index 532ff984ae56..dcf20f97ef71 100644
--- a/services/core/java/com/android/server/webkit/WebViewUpdateServiceImpl.java
+++ b/services/core/java/com/android/server/webkit/WebViewUpdateServiceImpl.java
@@ -186,9 +186,12 @@ class WebViewUpdateServiceImpl implements WebViewUpdateServiceInterface {
}
onWebViewProviderChanged(mCurrentWebViewPackage);
}
+ } catch (WebViewPackageMissingException e) {
+ Slog.e(TAG, "Could not find valid WebView package to create relro with", e);
} catch (Throwable t) {
- // Log and discard errors at this stage as we must not crash the system server.
- Slog.e(TAG, "error preparing webview provider from system server", t);
+ // We don't know a case when this should happen but we log and discard errors at this
+ // stage as we must not crash the system server.
+ Slog.wtf(TAG, "error preparing webview provider from system server", t);
}
if (getCurrentWebViewPackage() == null) {
diff --git a/services/core/java/com/android/server/webkit/WebViewUpdateServiceImpl2.java b/services/core/java/com/android/server/webkit/WebViewUpdateServiceImpl2.java
index fb338ba245e1..993597eedd2c 100644
--- a/services/core/java/com/android/server/webkit/WebViewUpdateServiceImpl2.java
+++ b/services/core/java/com/android/server/webkit/WebViewUpdateServiceImpl2.java
@@ -247,9 +247,12 @@ class WebViewUpdateServiceImpl2 implements WebViewUpdateServiceInterface {
attemptRepair();
}
+ } catch (WebViewPackageMissingException e) {
+ Slog.e(TAG, "Could not find valid WebView package to create relro with", e);
} catch (Throwable t) {
- // Log and discard errors at this stage as we must not crash the system server.
- Slog.e(TAG, "error preparing webview provider from system server", t);
+ // We don't know a case when this should happen but we log and discard errors at this
+ // stage as we must not crash the system server.
+ Slog.wtf(TAG, "error preparing webview provider from system server", t);
}
}