summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Gustav Sennton <gsennton@google.com> 2015-11-13 17:08:39 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2015-11-13 17:08:39 +0000
commit371df36b5c24bb7d6b6dbdb6b8aaf8b45ec208b1 (patch)
tree7445a76adf9b4c56085526ce54127506c1aed771
parentb6181565e5a96f9922c2c0ca7dd78a894a6ba224 (diff)
parent3098cf2ea2d119a5630aa66e617f1f31de38cf17 (diff)
Merge "Trigger WebView relro creation when new provider package installed."
-rw-r--r--services/core/java/com/android/server/webkit/WebViewUpdateService.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/webkit/WebViewUpdateService.java b/services/core/java/com/android/server/webkit/WebViewUpdateService.java
index ac79b36f7005..97713fc2407a 100644
--- a/services/core/java/com/android/server/webkit/WebViewUpdateService.java
+++ b/services/core/java/com/android/server/webkit/WebViewUpdateService.java
@@ -54,6 +54,15 @@ public class WebViewUpdateService extends SystemService {
@Override
public void onReceive(Context context, Intent intent) {
+ // When a package is replaced we will receive two intents, one representing the
+ // removal of the old package and one representing the addition of the new
+ // package. We here ignore the intent representing the removed package to make
+ // sure we don't change WebView provider twice.
+ if (intent.getAction().equals(Intent.ACTION_PACKAGE_REMOVED)
+ && intent.getExtras().getBoolean(Intent.EXTRA_REPLACING)) {
+ return;
+ }
+
for (String packageName : WebViewFactory.getWebViewPackageNames()) {
String webviewPackage = "package:" + packageName;
@@ -73,7 +82,8 @@ public class WebViewUpdateService extends SystemService {
}
};
IntentFilter filter = new IntentFilter();
- filter.addAction(Intent.ACTION_PACKAGE_REPLACED);
+ filter.addAction(Intent.ACTION_PACKAGE_ADDED);
+ filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
filter.addDataScheme("package");
getContext().registerReceiver(mWebViewUpdatedReceiver, filter);