From d1f06961a0371d48cd2db37c5f8affcde86b4b5f Mon Sep 17 00:00:00 2001 From: Saileek5594 Date: Wed, 31 Jul 2024 16:50:03 +0530 Subject: [PATCH] Edge browser support for Android Edge browser support for Android --- .../net/openid/appauth/browser/Browsers.java | 46 +++++++++++++++++++ .../browser/VersionedBrowserMatcher.java | 9 ++++ 2 files changed, 55 insertions(+) diff --git a/library/java/net/openid/appauth/browser/Browsers.java b/library/java/net/openid/appauth/browser/Browsers.java index 3f70101e..0af5da97 100644 --- a/library/java/net/openid/appauth/browser/Browsers.java +++ b/library/java/net/openid/appauth/browser/Browsers.java @@ -176,6 +176,52 @@ private SBrowser() { } } + public static final class Edge { + + /** + * The package name for edge. + */ + public static final String PACKAGE_NAME = "com.microsoft.emmx"; + + /** + * The SHA-512 hash (Base64 url-safe encoded) of the public key for edge. + */ + public static final String SIGNATURE = + "Ivy-Rk6ztai_IudfbyUrSHugzRqAtHWslFvHT0PTvLMsEKLUIgv7ZZbVxygWy_M5mOPpfjZrd3vOx3t-cA6fVQ=="; + + /** + * The set of signature hashes for Edge. + */ + public static final Set SIGNATURE_SET = + Collections.singleton(SIGNATURE); + + /** + * The version in which Custom Tabs were introduced in Edge. + */ + public static final DelimitedVersion MINIMUM_VERSION_FOR_CUSTOM_TAB = + DelimitedVersion.parse("45"); + + /** + * Creates a browser descriptor for the specified version of Edge, when used as a + * standalone browser. + */ + public static BrowserDescriptor standaloneBrowser(@NonNull String version) { + return new BrowserDescriptor(PACKAGE_NAME, SIGNATURE_SET, version, false); + } + + /** + * Creates a browser descriptor for the specified version of Edge, when used as + * a custom tab. + */ + public static BrowserDescriptor customTab(@NonNull String version) { + return new BrowserDescriptor(PACKAGE_NAME, SIGNATURE_SET, version, true); + } + + private Edge() { + // no need to construct this class + } + } + private Browsers() { // no need to construct this class } diff --git a/library/java/net/openid/appauth/browser/VersionedBrowserMatcher.java b/library/java/net/openid/appauth/browser/VersionedBrowserMatcher.java index f4b09ffe..9950cc23 100644 --- a/library/java/net/openid/appauth/browser/VersionedBrowserMatcher.java +++ b/library/java/net/openid/appauth/browser/VersionedBrowserMatcher.java @@ -79,6 +79,15 @@ public class VersionedBrowserMatcher implements BrowserMatcher { true, VersionRange.atLeast(Browsers.SBrowser.MINIMUM_VERSION_FOR_CUSTOM_TAB)); + /** + * Matches any version of SBrowser for use as a edge tab. + */ + public static final VersionedBrowserMatcher EDGE_CUSTOM_TAB = new VersionedBrowserMatcher( + Browsers.Edge.PACKAGE_NAME, + Browsers.Edge.SIGNATURE_SET, + true, + VersionRange.ANY_VERSION); + private String mPackageName; private Set mSignatureHashes; private VersionRange mVersionRange;