diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-09-01 11:08:40 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-10-01 12:16:21 +0000 |
commit | 03c549e0392f92c02536d3f86d5e1d8dfa3435ac (patch) | |
tree | fe49d170a929b34ba82cd10db1a0bd8e3760fa4b /chromium/components/installedapp | |
parent | 5d013f5804a0d91fcf6c626b2d6fb6eca5c845b0 (diff) | |
download | qtwebengine-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_METADATA | 3 | ||||
-rw-r--r-- | chromium/components/installedapp/OWNERS | 2 | ||||
-rw-r--r-- | chromium/components/installedapp/README.md | 4 | ||||
-rw-r--r-- | chromium/components/installedapp/android/BUILD.gn | 82 | ||||
-rw-r--r-- | chromium/components/installedapp/android/DEPS | 11 | ||||
-rw-r--r-- | chromium/components/installedapp/android/installed_app_verifier.cc | 59 |
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 |