Commit 2ed1b2eb authored by Yashar Dabiran's avatar Yashar Dabiran Committed by Commit Bot

[Paint Preview] Pass base class pointer to paint preview service java counterparts

Change-Id: Iabc86cc45f754e1f8b10191a6bb6118b21d80558
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2545824
Commit-Queue: Yashar Dabiran <yashard@chromium.org>
Reviewed-by: default avatarCalder Kitagawa <ckitagawa@chromium.org>
Cr-Commit-Position: refs/heads/master@{#828962}
parent e24dfead
......@@ -35,6 +35,7 @@ public class PaintPreviewTabService implements NativePaintPreviewServiceProvider
private static final long AUDIT_START_DELAY_MS = 2 * 60 * 1000; // Two minutes;
private Runnable mAuditRunnable;
private long mNativePaintPreviewBaseService;
private long mNativePaintPreviewTabService;
private TabModelSelectorTabObserver mTabModelSelectorTabObserver;
@VisibleForTesting
......@@ -79,8 +80,10 @@ public class PaintPreviewTabService implements NativePaintPreviewServiceProvider
}
@CalledByNative
private PaintPreviewTabService(long nativePaintPreviewTabService) {
private PaintPreviewTabService(
long nativePaintPreviewTabService, long nativePaintPreviewBaseService) {
mNativePaintPreviewTabService = nativePaintPreviewTabService;
mNativePaintPreviewBaseService = nativePaintPreviewBaseService;
if (!isNativeCacheInitialized()) {
createPreNativeCache(getPath());
}
......@@ -89,11 +92,12 @@ public class PaintPreviewTabService implements NativePaintPreviewServiceProvider
@CalledByNative
private void onNativeDestroyed() {
mNativePaintPreviewTabService = 0;
mNativePaintPreviewBaseService = 0;
}
@Override
public long getNativeService() {
return mNativePaintPreviewTabService;
public long getNativeBaseService() {
return mNativePaintPreviewBaseService;
}
/**
......
......@@ -80,7 +80,8 @@ PaintPreviewTabService::PaintPreviewTabService(
#if defined(OS_ANDROID)
JNIEnv* env = base::android::AttachCurrentThread();
java_ref_.Reset(Java_PaintPreviewTabService_Constructor(
env, reinterpret_cast<intptr_t>(this)));
env, reinterpret_cast<intptr_t>(this),
reinterpret_cast<intptr_t>(static_cast<PaintPreviewBaseService*>(this))));
#endif // defined(OS_ANDROID)
}
......
......@@ -8,4 +8,6 @@ package org.chromium.components.paintpreview.browser;
* The Java-side implementations of paint_preview_base_service.cc should implement this interface.
* Provides a method for accessing the native PaintPreviewBaseService.
*/
public interface NativePaintPreviewServiceProvider { long getNativeService(); }
\ No newline at end of file
public interface NativePaintPreviewServiceProvider {
long getNativeBaseService();
}
......@@ -38,9 +38,9 @@ class PlayerCompositorDelegateImpl implements PlayerCompositorDelegate {
String directoryKey, @NonNull CompositorListener compositorListener,
Callback<Integer> compositorErrorCallback) {
mCompositorListener = compositorListener;
if (service != null && service.getNativeService() != 0) {
if (service != null && service.getNativeBaseService() != 0) {
mNativePlayerCompositorDelegate = PlayerCompositorDelegateImplJni.get().initialize(this,
service.getNativeService(), url.getSpec(), directoryKey,
service.getNativeBaseService(), url.getSpec(), directoryKey,
compositorErrorCallback,
SysUtils.amountOfPhysicalMemoryKB() < LOW_MEMORY_THRESHOLD_KB);
}
......
......@@ -116,6 +116,11 @@ PaintPreviewTestService::PaintPreviewTestService(const base::FilePath& path)
PaintPreviewTestService::~PaintPreviewTestService() = default;
jlong PaintPreviewTestService::GetBaseService(JNIEnv* env) {
return reinterpret_cast<intptr_t>(
static_cast<PaintPreviewBaseService*>(this));
}
base::android::ScopedJavaLocalRef<jintArray>
PaintPreviewTestService::CreateSingleSkp(
JNIEnv* env,
......
......@@ -24,6 +24,8 @@ class PaintPreviewTestService : public PaintPreviewBaseService {
PaintPreviewTestService(const PaintPreviewTestService&) = delete;
PaintPreviewTestService& operator=(const PaintPreviewTestService&) = delete;
jlong GetBaseService(JNIEnv* env);
base::android::ScopedJavaLocalRef<jintArray> CreateSingleSkp(
JNIEnv* env,
jint j_id,
......
......@@ -15,15 +15,18 @@ import org.chromium.components.paintpreview.browser.NativePaintPreviewServicePro
@JNINamespace("paint_preview")
public class PaintPreviewTestService implements NativePaintPreviewServiceProvider {
private static final String TAG = "PPTestService";
private long mNativePaintPreviewBaseService;
private long mNativePaintPreviewTestService;
public PaintPreviewTestService(String path) {
mNativePaintPreviewTestService = PaintPreviewTestServiceJni.get().getInstance(path);
mNativePaintPreviewBaseService =
PaintPreviewTestServiceJni.get().getBaseService(mNativePaintPreviewTestService);
}
@Override
public long getNativeService() {
return mNativePaintPreviewTestService;
public long getNativeBaseService() {
return mNativePaintPreviewBaseService;
}
public boolean createFramesForKey(String key, String url, FrameData rootFrameData) {
......@@ -59,6 +62,7 @@ public class PaintPreviewTestService implements NativePaintPreviewServiceProvide
@NativeMethods
interface Natives {
long getInstance(String path);
long getBaseService(long nativePaintPreviewTestService);
int[] createSingleSkp(long nativePaintPreviewTestService, int id, int width, int height,
int[] flattenedLinkRects, String[] links, int[] flattenedChildRects);
boolean serializeFrames(long nativePaintPreviewTestService, String key, String url);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment