From 2b992292fcbd15be0933dd64c0488a40b0c83d9d Mon Sep 17 00:00:00 2001 From: LaĆ­s Minchillo Date: Fri, 3 Aug 2018 17:00:25 +0100 Subject: Fix crash when calling set-webview-implementation with no argument Fix a crash caused by a NPE when calling set-webview-implementation without providing a package as a parameter Bug: b/112181942 Test: manually checked that calling set-webview-implementation no longer triggers a crash Change-Id: Iba7c6e143d2cc78074f34ed751533287fe952ff9 --- .../server/webkit/WebViewUpdateServiceShellCommand.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/webkit/WebViewUpdateServiceShellCommand.java b/services/core/java/com/android/server/webkit/WebViewUpdateServiceShellCommand.java index 39e28c74e0a5..3199ed47503e 100644 --- a/services/core/java/com/android/server/webkit/WebViewUpdateServiceShellCommand.java +++ b/services/core/java/com/android/server/webkit/WebViewUpdateServiceShellCommand.java @@ -66,6 +66,12 @@ class WebViewUpdateServiceShellCommand extends ShellCommand { private int setWebViewImplementation() throws RemoteException { final PrintWriter pw = getOutPrintWriter(); String shellChosenPackage = getNextArg(); + if (shellChosenPackage == null) { + pw.println("Failed to switch, no PACKAGE provided."); + pw.println(""); + helpSetWebViewImplementation(); + return 1; + } String newPackage = mInterface.changeProviderAndSetting(shellChosenPackage); if (shellChosenPackage.equals(newPackage)) { pw.println("Success"); @@ -85,6 +91,12 @@ class WebViewUpdateServiceShellCommand extends ShellCommand { return 0; } + public void helpSetWebViewImplementation() { + PrintWriter pw = getOutPrintWriter(); + pw.println(" set-webview-implementation PACKAGE"); + pw.println(" Set the WebView implementation to the specified package."); + } + @Override public void onHelp() { PrintWriter pw = getOutPrintWriter(); @@ -99,8 +111,7 @@ class WebViewUpdateServiceShellCommand extends ShellCommand { pw.println(" disable-redundant-packages"); pw.println(" Disallow installing and enabling fallback packages when a more-preferred"); pw.println(" package is available."); - pw.println(" set-webview-implementation PACKAGE"); - pw.println(" Set the WebView implementation to the specified package."); + helpSetWebViewImplementation(); pw.println(" enable-multiprocess"); pw.println(" Enable multi-process mode for WebView"); pw.println(" disable-multiprocess"); -- cgit v1.2.3-59-g8ed1b