diff options
| author | 2024-04-15 11:32:56 +0000 | |
|---|---|---|
| committer | 2024-04-15 11:32:56 +0000 | |
| commit | 6c9627e6b8a82665b6824a10f823e81cea589b12 (patch) | |
| tree | 495610f07541f9535d92067fa82acf9bac64b694 | |
| parent | bdf3e457b4b50a5a168dc0c822b60a4aae34c687 (diff) | |
| parent | f8f9e9ab11e65322aaaeb7373efd77cf1d671928 (diff) | |
Merge "Better error handling for webkit classes" into main
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); } } |