Loading core/java/android/webkit/WebView.java +33 −32 Original line number Diff line number Diff line Loading @@ -991,10 +991,10 @@ public class WebView extends AbsoluteLayout } /* * The intent receiver that monitors for changes to relevant packages (e.g., * sGoogleApps) and notifies WebViewCore of their existence. * A variable to track if there is a receiver added for ACTION_PACKAGE_ADDED * or ACTION_PACKAGE_REMOVED. */ private static BroadcastReceiver sPackageInstallationReceiver = null; private static boolean sPackageInstallationReceiverAdded = false; /* * A set of Google packages we monitor for the Loading @@ -1007,26 +1007,7 @@ public class WebView extends AbsoluteLayout sGoogleApps.add("com.google.android.youtube"); } private void setupPackageListener(Context context) { /* * we must synchronize the instance check and the creation of the * receiver to ensure that only ONE receiver exists for all WebView * instances. */ synchronized (WebView.class) { // if the receiver already exists then we do not need to register it // again if (sPackageInstallationReceiver != null) { return; } IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED); filter.addAction(Intent.ACTION_PACKAGE_REMOVED); filter.addDataScheme("package"); sPackageInstallationReceiver = new BroadcastReceiver() { private static class PackageListener extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { final String action = intent.getAction(); Loading @@ -1037,11 +1018,11 @@ public class WebView extends AbsoluteLayout return; } if (sGoogleApps.contains(packageName) && mWebViewCore != null) { if (sGoogleApps.contains(packageName)) { if (Intent.ACTION_PACKAGE_ADDED.equals(action)) { mWebViewCore.sendMessage(EventHub.ADD_PACKAGE_NAME, packageName); WebViewCore.sendStaticMessage(EventHub.ADD_PACKAGE_NAME, packageName); } else { mWebViewCore.sendMessage(EventHub.REMOVE_PACKAGE_NAME, packageName); WebViewCore.sendStaticMessage(EventHub.REMOVE_PACKAGE_NAME, packageName); } } Loading @@ -1050,9 +1031,29 @@ public class WebView extends AbsoluteLayout pm.refreshPlugins(Intent.ACTION_PACKAGE_ADDED.equals(action)); } } }; } private void setupPackageListener(Context context) { /* * we must synchronize the instance check and the creation of the * receiver to ensure that only ONE receiver exists for all WebView * instances. */ synchronized (WebView.class) { context.getApplicationContext().registerReceiver(sPackageInstallationReceiver, filter); // if the receiver already exists then we do not need to register it // again if (sPackageInstallationReceiverAdded) { return; } IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED); filter.addAction(Intent.ACTION_PACKAGE_REMOVED); filter.addDataScheme("package"); BroadcastReceiver packageListener = new PackageListener(); context.getApplicationContext().registerReceiver(packageListener, filter); sPackageInstallationReceiverAdded = true; } // check if any of the monitored apps are already installed Loading core/java/android/webkit/WebViewCore.java +16 −18 Original line number Diff line number Diff line Loading @@ -668,6 +668,22 @@ final class WebViewCore { Process.setThreadPriority( Process.THREAD_PRIORITY_DEFAULT); break; case EventHub.ADD_PACKAGE_NAME: if (BrowserFrame.sJavaBridge == null) { throw new IllegalStateException( "No WebView has been created in this process!"); } BrowserFrame.sJavaBridge.addPackageName((String) msg.obj); break; case EventHub.REMOVE_PACKAGE_NAME: if (BrowserFrame.sJavaBridge == null) { throw new IllegalStateException( "No WebView has been created in this process!"); } BrowserFrame.sJavaBridge.removePackageName((String) msg.obj); break; } } }; Loading Loading @@ -1488,24 +1504,6 @@ final class WebViewCore { (Set<String>) msg.obj); break; case ADD_PACKAGE_NAME: if (BrowserFrame.sJavaBridge == null) { throw new IllegalStateException("No WebView " + "has been created in this process!"); } BrowserFrame.sJavaBridge.addPackageName( (String) msg.obj); break; case REMOVE_PACKAGE_NAME: if (BrowserFrame.sJavaBridge == null) { throw new IllegalStateException("No WebView " + "has been created in this process!"); } BrowserFrame.sJavaBridge.removePackageName( (String) msg.obj); break; case GET_TOUCH_HIGHLIGHT_RECTS: TouchHighlightData d = (TouchHighlightData) msg.obj; ArrayList<Rect> rects = nativeGetTouchHighlightRects Loading Loading
core/java/android/webkit/WebView.java +33 −32 Original line number Diff line number Diff line Loading @@ -991,10 +991,10 @@ public class WebView extends AbsoluteLayout } /* * The intent receiver that monitors for changes to relevant packages (e.g., * sGoogleApps) and notifies WebViewCore of their existence. * A variable to track if there is a receiver added for ACTION_PACKAGE_ADDED * or ACTION_PACKAGE_REMOVED. */ private static BroadcastReceiver sPackageInstallationReceiver = null; private static boolean sPackageInstallationReceiverAdded = false; /* * A set of Google packages we monitor for the Loading @@ -1007,26 +1007,7 @@ public class WebView extends AbsoluteLayout sGoogleApps.add("com.google.android.youtube"); } private void setupPackageListener(Context context) { /* * we must synchronize the instance check and the creation of the * receiver to ensure that only ONE receiver exists for all WebView * instances. */ synchronized (WebView.class) { // if the receiver already exists then we do not need to register it // again if (sPackageInstallationReceiver != null) { return; } IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED); filter.addAction(Intent.ACTION_PACKAGE_REMOVED); filter.addDataScheme("package"); sPackageInstallationReceiver = new BroadcastReceiver() { private static class PackageListener extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { final String action = intent.getAction(); Loading @@ -1037,11 +1018,11 @@ public class WebView extends AbsoluteLayout return; } if (sGoogleApps.contains(packageName) && mWebViewCore != null) { if (sGoogleApps.contains(packageName)) { if (Intent.ACTION_PACKAGE_ADDED.equals(action)) { mWebViewCore.sendMessage(EventHub.ADD_PACKAGE_NAME, packageName); WebViewCore.sendStaticMessage(EventHub.ADD_PACKAGE_NAME, packageName); } else { mWebViewCore.sendMessage(EventHub.REMOVE_PACKAGE_NAME, packageName); WebViewCore.sendStaticMessage(EventHub.REMOVE_PACKAGE_NAME, packageName); } } Loading @@ -1050,9 +1031,29 @@ public class WebView extends AbsoluteLayout pm.refreshPlugins(Intent.ACTION_PACKAGE_ADDED.equals(action)); } } }; } private void setupPackageListener(Context context) { /* * we must synchronize the instance check and the creation of the * receiver to ensure that only ONE receiver exists for all WebView * instances. */ synchronized (WebView.class) { context.getApplicationContext().registerReceiver(sPackageInstallationReceiver, filter); // if the receiver already exists then we do not need to register it // again if (sPackageInstallationReceiverAdded) { return; } IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED); filter.addAction(Intent.ACTION_PACKAGE_REMOVED); filter.addDataScheme("package"); BroadcastReceiver packageListener = new PackageListener(); context.getApplicationContext().registerReceiver(packageListener, filter); sPackageInstallationReceiverAdded = true; } // check if any of the monitored apps are already installed Loading
core/java/android/webkit/WebViewCore.java +16 −18 Original line number Diff line number Diff line Loading @@ -668,6 +668,22 @@ final class WebViewCore { Process.setThreadPriority( Process.THREAD_PRIORITY_DEFAULT); break; case EventHub.ADD_PACKAGE_NAME: if (BrowserFrame.sJavaBridge == null) { throw new IllegalStateException( "No WebView has been created in this process!"); } BrowserFrame.sJavaBridge.addPackageName((String) msg.obj); break; case EventHub.REMOVE_PACKAGE_NAME: if (BrowserFrame.sJavaBridge == null) { throw new IllegalStateException( "No WebView has been created in this process!"); } BrowserFrame.sJavaBridge.removePackageName((String) msg.obj); break; } } }; Loading Loading @@ -1488,24 +1504,6 @@ final class WebViewCore { (Set<String>) msg.obj); break; case ADD_PACKAGE_NAME: if (BrowserFrame.sJavaBridge == null) { throw new IllegalStateException("No WebView " + "has been created in this process!"); } BrowserFrame.sJavaBridge.addPackageName( (String) msg.obj); break; case REMOVE_PACKAGE_NAME: if (BrowserFrame.sJavaBridge == null) { throw new IllegalStateException("No WebView " + "has been created in this process!"); } BrowserFrame.sJavaBridge.removePackageName( (String) msg.obj); break; case GET_TOUCH_HIGHLIGHT_RECTS: TouchHighlightData d = (TouchHighlightData) msg.obj; ArrayList<Rect> rects = nativeGetTouchHighlightRects Loading