commit 66d71bee5be2322498fd6e01aca3a2f3f0746869 parent 04c86673cc3e9ef869791bcb83087f63cf3a5018 Author: p13dz <p13dz@prb.team> Date: Thu, 22 Dec 2022 07:05:42 +0100 BB 40283: Workaround for the file upload bug Diffstat:
| M | mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoSession.java | | | 9 | ++++++++- |
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoSession.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoSession.java @@ -6128,12 +6128,19 @@ public class GeckoSession { return super.confirm(); } + private static String normalizePath(String input) { + // For an unclear reason, Android media picker delivers file paths + // starting with double slash. Firefox performs path validation on + // all paths, and double slash is deemed invalid. + return input.startsWith("//") ? input.substring(1) : input; + } + private static String getFile(final @NonNull Context context, final @NonNull Uri uri) { if (uri == null) { return null; } if ("file".equals(uri.getScheme())) { - return uri.getPath(); + return normalizePath(uri.getPath()); } if ("content".equals(uri.getScheme())) { if (DocumentsContract.isTreeUri(uri)) {