summaryrefslogtreecommitdiff
path: root/chromium/components/installedapp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2021-09-01 11:08:40 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2021-10-01 12:16:21 +0000
commit03c549e0392f92c02536d3f86d5e1d8dfa3435ac (patch)
treefe49d170a929b34ba82cd10db1a0bd8e3760fa4b /chromium/components/installedapp
parent5d013f5804a0d91fcf6c626b2d6fb6eca5c845b0 (diff)
downloadqtwebengine-chromium-03c549e0392f92c02536d3f86d5e1d8dfa3435ac.tar.gz
BASELINE: Update Chromium to 91.0.4472.160
Change-Id: I0def1f08a2412aeed79a9ab95dd50eb5c3f65f31 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/components/installedapp')
-rw-r--r--chromium/components/installedapp/DIR_METADATA3
-rw-r--r--chromium/components/installedapp/OWNERS2
-rw-r--r--chromium/components/installedapp/README.md4
-rw-r--r--chromium/components/installedapp/android/BUILD.gn82
-rw-r--r--chromium/components/installedapp/android/DEPS11
-rw-r--r--chromium/components/installedapp/android/installed_app_verifier.cc59
6 files changed, 161 insertions, 0 deletions
diff --git a/chromium/components/installedapp/DIR_METADATA b/chromium/components/installedapp/DIR_METADATA
new file mode 100644
index 00000000000..e4c89347f16
--- /dev/null
+++ b/chromium/components/installedapp/DIR_METADATA
@@ -0,0 +1,3 @@
+monorail {
+ component: "Platform>Apps>AppLauncher>Install"
+}
diff --git a/chromium/components/installedapp/OWNERS b/chromium/components/installedapp/OWNERS
new file mode 100644
index 00000000000..1100a9215eb
--- /dev/null
+++ b/chromium/components/installedapp/OWNERS
@@ -0,0 +1,2 @@
+peconn@chromium.org
+rayankans@chromium.org
diff --git a/chromium/components/installedapp/README.md b/chromium/components/installedapp/README.md
new file mode 100644
index 00000000000..f8495747df1
--- /dev/null
+++ b/chromium/components/installedapp/README.md
@@ -0,0 +1,4 @@
+# Installed app
+
+This component contains implementation code for the
+[GetInstalledRelatedApps](https://web.dev/get-installed-related-apps/) API.
diff --git a/chromium/components/installedapp/android/BUILD.gn b/chromium/components/installedapp/android/BUILD.gn
new file mode 100644
index 00000000000..25277d53e05
--- /dev/null
+++ b/chromium/components/installedapp/android/BUILD.gn
@@ -0,0 +1,82 @@
+# Copyright 2021 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.
+
+import("//build/config/android/rules.gni")
+
+source_set("android") {
+ sources = [ "installed_app_verifier.cc" ]
+ deps = [
+ "//base",
+ "//components/digital_asset_links",
+ "//components/embedder_support/android:browser_context",
+ "//content/public/browser",
+ ]
+ public_deps = [ ":jni_headers" ]
+}
+
+android_library("java") {
+ sources = [
+ "java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java",
+ "java/src/org/chromium/components/installedapp/PackageHash.java",
+ "java/src/org/chromium/components/installedapp/PackageManagerDelegate.java",
+ ]
+
+ annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
+
+ deps = [
+ "//base:base_java",
+ "//components/embedder_support/android:browser_context_java",
+ "//components/webapk/android/libs/client:java",
+ "//content/public/android:content_java",
+ "//mojo/public/java:system_java",
+ "//third_party/androidx:androidx_annotation_annotation_java",
+ "//third_party/blink/public/mojom:android_mojo_bindings_java",
+ "//url:gurl_java",
+ "//url/mojom:url_mojom_gurl_java",
+ ]
+}
+
+generate_jni("jni_headers") {
+ sources = [
+ "java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java",
+ "java/src/org/chromium/components/installedapp/PackageHash.java",
+ ]
+}
+
+android_library("javatests") {
+ testonly = true
+
+ sources = [ "java/src/org/chromium/components/installedapp/InstalledAppProviderTest.java" ]
+ deps = [
+ ":java",
+ "//base:base_java",
+ "//base:base_java_test_support",
+ "//components/embedder_support/android:browser_context_java",
+ "//content/public/android:content_java",
+ "//content/public/test/android:content_java_test_support",
+ "//third_party/androidx:androidx_test_runner_java",
+ "//third_party/blink/public/mojom:android_mojo_bindings_java",
+ "//third_party/junit",
+ "//third_party/mockito:mockito_java",
+ "//url:gurl_java",
+ "//url/mojom:url_mojom_gurl_java",
+ ]
+}
+
+java_library("junit") {
+ # Skip platform checks since Robolectric depends on requires_android targets.
+ bypass_platform_checks = true
+ testonly = true
+ sources =
+ [ "java/src/org/chromium/components/installedapp/PackageHashTest.java" ]
+ deps = [
+ ":java",
+ "//base:base_java",
+ "//base:base_java_test_support",
+ "//base:base_junit_test_support",
+ "//base/test:test_support_java",
+ "//components/embedder_support/android:browser_context_java",
+ "//third_party/junit",
+ ]
+}
diff --git a/chromium/components/installedapp/android/DEPS b/chromium/components/installedapp/android/DEPS
new file mode 100644
index 00000000000..894166b7594
--- /dev/null
+++ b/chromium/components/installedapp/android/DEPS
@@ -0,0 +1,11 @@
+include_rules = [
+ "+base",
+ "+components/digital_asset_links",
+ "+components/embedder_support/android/browser_context",
+ "+components/embedder_support/android/java/src/org/chromium/components/embedder_support/browser_context/BrowserContextHandle.java",
+ "+components/webapk/android/libs/client",
+ "+content/public/android/java/src/org/chromium/content_public",
+ "+content/public/browser",
+ "+content/public/test/android",
+ "+mojo/public/java/system",
+]
diff --git a/chromium/components/installedapp/android/installed_app_verifier.cc b/chromium/components/installedapp/android/installed_app_verifier.cc
new file mode 100644
index 00000000000..61e466f3770
--- /dev/null
+++ b/chromium/components/installedapp/android/installed_app_verifier.cc
@@ -0,0 +1,59 @@
+// Copyright 2020 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.
+
+#include <memory>
+#include <string>
+
+#include "base/android/callback_android.h"
+#include "base/android/jni_android.h"
+#include "base/android/jni_string.h"
+#include "components/digital_asset_links/digital_asset_links_handler.h"
+#include "components/embedder_support/android/browser_context/browser_context_handle.h"
+#include "components/installedapp/android/jni_headers/InstalledAppProviderImpl_jni.h"
+#include "content/public/browser/browser_context.h"
+#include "content/public/browser/storage_partition.h"
+
+namespace {
+
+void DidGetResult(
+ std::unique_ptr<digital_asset_links::DigitalAssetLinksHandler> handler,
+ base::OnceCallback<void(bool)> callback,
+ digital_asset_links::RelationshipCheckResult result) {
+ std::move(callback).Run(
+ result == digital_asset_links::RelationshipCheckResult::kSuccess);
+}
+
+} // namespace
+
+namespace installedapp {
+
+void JNI_InstalledAppProviderImpl_CheckDigitalAssetLinksRelationshipForWebApk(
+ JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& jhandle,
+ const base::android::JavaParamRef<jstring>& jwebDomain,
+ const base::android::JavaParamRef<jstring>& jmanifestUrl,
+ const base::android::JavaParamRef<jobject>& jcallback) {
+ content::BrowserContext* browser_context =
+ browser_context::BrowserContextFromJavaHandle(jhandle);
+
+ std::string web_domain = ConvertJavaStringToUTF8(env, jwebDomain);
+ std::string manifest_url = ConvertJavaStringToUTF8(env, jmanifestUrl);
+ auto callback =
+ base::BindOnce(&base::android::RunBooleanCallbackAndroid,
+ base::android::ScopedJavaGlobalRef<jobject>(jcallback));
+
+ auto handler =
+ std::make_unique<digital_asset_links::DigitalAssetLinksHandler>(
+ content::BrowserContext::GetDefaultStoragePartition(browser_context)
+ ->GetURLLoaderFactoryForBrowserProcess());
+ auto* handler_ptr = handler.get();
+
+ // |handler| is owned by the callback, so it will be valid until the execution
+ // is over.
+ handler_ptr->CheckDigitalAssetLinkRelationshipForWebApk(
+ web_domain, manifest_url,
+ base::BindOnce(&DidGetResult, std::move(handler), std::move(callback)));
+}
+
+} // namespace installedapp