Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1920)

Unified Diff: components/installedapp/android/java/src/org/chromium/device/installedapp/InstalledAppProviderImpl.java

Issue 1586563009: IsNativeAppInstalled Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/installedapp/android/java/src/org/chromium/device/installedapp/InstalledAppProviderImpl.java
diff --git a/components/installedapp/android/java/src/org/chromium/device/installedapp/InstalledAppProviderImpl.java b/components/installedapp/android/java/src/org/chromium/device/installedapp/InstalledAppProviderImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..9c26c08434ea8b352f15f1d71783053317671743
--- /dev/null
+++ b/components/installedapp/android/java/src/org/chromium/device/installedapp/InstalledAppProviderImpl.java
@@ -0,0 +1,73 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.components.installedapp;
+
+import android.content.Context;
+import android.content.pm.PackageManager;
+
+import org.chromium.mojom.components.InstalledAppProvider;
+import org.chromium.mojo.system.MojoException;
+
+import java.util.Map;
+import android.util.Log;
+import java.util.Arrays;
+import java.util.HashSet;
+
+/**
+ * This is the implementation of the C++ counterpart InstalledAppProvider.
+ */
+public class InstalledAppProviderImpl implements InstalledAppProvider {
+ private Context mContext;
+
+ public InstalledAppProviderImpl(Context context) {
+ // Log.w("TAG", "Installed app provider made!.");
+ mContext = context;
+ }
+
+ @Override
+ public void isAppInstalled(
+ String asset1, String asset2, String origin, IsAppInstalledResponse callback) {
+ // PackageManager pm = mContext.getPackageManager();
+ // callback.call(AssociationVerifier.verifyCertFingerprints(asset1, asset2, pm) &&
+ // AssociationVerifier.isOriginAssociatedWithPackage(asset1, origin, pm));
+ }
+
+ @Override
+ public void isNativeAppInstalled(Map<String, String[]> verification, String origin,
+ IsNativeAppInstalledResponse callback) {
+ // TODO: fill in.
+ String[] packageName = verification.get("packageName");
+ String[] key = verification.get("signingKey");
+ if (packageName == null || packageName.length == 0 || key == null || key.length == 0) {
+ callback.call(false);
+ return;
+ }
+
+ callback.call(isPackageVerified(packageName[0], key, origin));
+ }
+
+ @Override
+ public void close() {}
+
+ @Override
+ public void onConnectionError(MojoException e) {}
+
+ private boolean isPackageVerified(String packageName, String[] signingKeys, String origin) {
+ // HashSet<String> keySet = new HashSet<String>(Arrays.asList(signingKeys));
+ String signingKey = signingKeys[0];
+ if (packageName.length() == 0 || signingKey.length() == 0 || origin.length() == 0) {
+ Log.w("TAG", "Oh no.");
+ return false;
+ }
+
+ Log.w("TAG", "Oh no2.");
+ Log.w("TAG", packageName + signingKey + origin);
+
+ PackageManager pm = mContext.getPackageManager();
+ return AssociationVerifier.verifyCertFingerprints(
+ packageName, Arrays.asList(signingKeys), pm)
+ && AssociationVerifier.isOriginAssociatedWithPackage(packageName, origin, pm);
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698