summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSayed Elabady <elabadysayed@chromium.org>2022-10-18 12:54:05 +0000
committerCopybara-Service <copybara-worker@google.com>2022-10-18 05:58:38 -0700
commita78ccba31957cbc6fe49106b45d96af824f7cec0 (patch)
tree974017bd2e62f1dee6cffee493ddd5e2f5209747
parent63f8cd77342afe70a2e7cf7a3b2af8b7c0f307b3 (diff)
downloadwebview_support_interfaces-a78ccba31957cbc6fe49106b45d96af824f7cec0.tar.gz
Expose image drag drop implementation in glue code for Androidx
For now the feature will be for dev only, there will be another CL for enabling it to enable it for prod. Bug: 1353048 Change-Id: I5b113beee97b669aa51261a77acbdb3542f244f8 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3941675 Reviewed-by: Susanne Westphal <swestphal@chromium.org> Reviewed-by: Peter Conn <peconn@chromium.org> Commit-Queue: Peter Conn <peconn@chromium.org> Cr-Commit-Position: refs/heads/main@{#1060417} NOKEYCHECK=True GitOrigin-RevId: aaddc5dab7285d86d998b8dc4a9344c2a423f58c
-rw-r--r--BUILD.gn1
-rw-r--r--src/org/chromium/support_lib_boundary/DropDataContentProviderBoundaryInterface.java33
-rw-r--r--src/org/chromium/support_lib_boundary/WebViewProviderFactoryBoundaryInterface.java1
-rw-r--r--src/org/chromium/support_lib_boundary/util/Features.java11
4 files changed, 46 insertions, 0 deletions
diff --git a/BUILD.gn b/BUILD.gn
index e3dbf8d..43ae324 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -7,6 +7,7 @@ import("//build/config/android/rules.gni")
android_library("boundary_interface_java") {
sources = [
+ "src/org/chromium/support_lib_boundary/DropDataContentProviderBoundaryInterface.java",
"src/org/chromium/support_lib_boundary/FeatureFlagHolderBoundaryInterface.java",
"src/org/chromium/support_lib_boundary/IsomorphicObjectBoundaryInterface.java",
"src/org/chromium/support_lib_boundary/JsReplyProxyBoundaryInterface.java",
diff --git a/src/org/chromium/support_lib_boundary/DropDataContentProviderBoundaryInterface.java b/src/org/chromium/support_lib_boundary/DropDataContentProviderBoundaryInterface.java
new file mode 100644
index 0000000..9e694a2
--- /dev/null
+++ b/src/org/chromium/support_lib_boundary/DropDataContentProviderBoundaryInterface.java
@@ -0,0 +1,33 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.support_lib_boundary;
+
+import android.content.ContentProvider;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.ParcelFileDescriptor;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import java.io.FileNotFoundException;
+
+/**
+ * Boundary interface for DropDataProvider.
+ */
+public interface DropDataContentProviderBoundaryInterface {
+ boolean onCreate();
+ String[] getStreamTypes(@NonNull Uri uri, @NonNull String mimeTypeFilter);
+ ParcelFileDescriptor openFile(@NonNull ContentProvider providerWrapper, @NonNull Uri uri)
+ throws FileNotFoundException;
+ Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection,
+ @Nullable String[] selectionArgs, @Nullable String sortOrder);
+ String getType(@NonNull Uri uri);
+ Uri cache(byte[] imageBytes, String encodingFormat, String filename);
+ void setClearCachedDataIntervalMs(int milliseconds);
+ void onDragEnd(boolean imageInUse);
+ Bundle call(@NonNull String method, @Nullable String arg, @Nullable Bundle extras);
+} \ No newline at end of file
diff --git a/src/org/chromium/support_lib_boundary/WebViewProviderFactoryBoundaryInterface.java b/src/org/chromium/support_lib_boundary/WebViewProviderFactoryBoundaryInterface.java
index ef4ea8e..f7c7ef7 100644
--- a/src/org/chromium/support_lib_boundary/WebViewProviderFactoryBoundaryInterface.java
+++ b/src/org/chromium/support_lib_boundary/WebViewProviderFactoryBoundaryInterface.java
@@ -19,4 +19,5 @@ public interface WebViewProviderFactoryBoundaryInterface {
/* SupportLibraryTracingController */ InvocationHandler getTracingController();
/* SupportLibraryProxyController */ InvocationHandler getProxyController();
void setSupportLibraryVersion(String version);
+ /* DropDataContentProviderBoundaryInterface*/ InvocationHandler getDropDataProvider();
}
diff --git a/src/org/chromium/support_lib_boundary/util/Features.java b/src/org/chromium/support_lib_boundary/util/Features.java
index 2ddeece..990b16d 100644
--- a/src/org/chromium/support_lib_boundary/util/Features.java
+++ b/src/org/chromium/support_lib_boundary/util/Features.java
@@ -227,4 +227,15 @@ public class Features {
// CookieManagerCompat.getCookieInfo
public static final String GET_COOKIE_INFO = "GET_COOKIE_INFO";
+
+ // DropDataContentProvider.onCreate
+ // DropDataContentProvider.getStreamTypes
+ // DropDataContentProvider.openFile
+ // DropDataContentProvider.query
+ // DropDataContentProvider.getType
+ // DropDataContentProvider.cache
+ // DropDataContentProvider.setClearCachedDataIntervalMs
+ // DropDataContentProvider.onDragEnd
+ // DropDataContentProvider.call
+ public static final String IMAGE_DRAG_DROP = "IMAGE_DRAG_DROP";
}