Merge "Dump the entire state of WebViewUpdateService on demand."
This commit is contained in:
committed by
Android (Google) Code Review
commit
ebd8b62cfe
@@ -36,6 +36,7 @@ import android.webkit.WebViewProviderResponse;
|
||||
import com.android.server.SystemService;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
@@ -259,5 +260,18 @@ public class WebViewUpdateService extends SystemService {
|
||||
Binder.restoreCallingIdentity(callingId);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
|
||||
if (getContext().checkCallingOrSelfPermission(android.Manifest.permission.DUMP)
|
||||
!= PackageManager.PERMISSION_GRANTED) {
|
||||
|
||||
pw.println("Permission Denial: can't dump webviewupdate service from pid="
|
||||
+ Binder.getCallingPid() + ", uid=" + Binder.getCallingUid());
|
||||
return;
|
||||
}
|
||||
|
||||
WebViewUpdateService.this.mImpl.dumpState(pw);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@ import android.webkit.WebViewFactory;
|
||||
import android.webkit.WebViewProviderInfo;
|
||||
import android.webkit.WebViewProviderResponse;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@@ -673,6 +674,27 @@ public class WebViewUpdateServiceImpl {
|
||||
mMinimumVersionCode = minimumVersionCode;
|
||||
return mMinimumVersionCode;
|
||||
}
|
||||
|
||||
public void dumpState(PrintWriter pw) {
|
||||
synchronized (mLock) {
|
||||
if (mCurrentWebViewPackage == null) {
|
||||
pw.println(" Current WebView package is null");
|
||||
} else {
|
||||
pw.println(String.format(" Current WebView package (name, version): (%s, %s)",
|
||||
mCurrentWebViewPackage.packageName,
|
||||
mCurrentWebViewPackage.versionName));
|
||||
}
|
||||
pw.println(String.format(" Minimum WebView version code: %d",
|
||||
mMinimumVersionCode));
|
||||
pw.println(String.format(" Number of relros started: %d",
|
||||
mNumRelroCreationsStarted));
|
||||
pw.println(String.format(" Number of relros finished: %d",
|
||||
mNumRelroCreationsFinished));
|
||||
pw.println(String.format(" WebView package dirty: %b", mWebViewPackageDirty));
|
||||
pw.println(String.format(" Any WebView package installed: %b",
|
||||
mAnyWebViewInstalled));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean providerHasValidSignature(WebViewProviderInfo provider,
|
||||
@@ -741,4 +763,14 @@ public class WebViewUpdateServiceImpl {
|
||||
mSystemInterface.setMultiProcessEnabledFromContext(mContext);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Dump the state of this Service.
|
||||
*/
|
||||
void dumpState(PrintWriter pw) {
|
||||
pw.println("Current WebView Update Service state");
|
||||
pw.println(String.format(" Fallback logic enabled: %b",
|
||||
mSystemInterface.isFallbackLogicEnabled()));
|
||||
mWebViewUpdater.dumpState(pw);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user