Create StarboardBridge native class with jni_generator (#4606) #4635
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
b/372559388
This PR configures jni_generator for cobalt_apk_java.
It creates the corresponding native class StarboardBridge for
cobalt/android/apk/app/src/main/java/dev/cobalt/coat/StarboardBridge.java,
adhering to Chromium's JNI standards.
The StarboardBridge native class is implemented as a singleton and is
initialized with the same JNIEnv and jobject used when calling the
Starboard custom JniEnvExt::Initialize function.
Additionally, it updates the JNI function calls in
starboard/android/shared/application_android.cc to align with Chromium's
modern JNI standards.
This PR amends the reverted PR
#4545
There was an issue in the reverted PR that there are old annotations
@UsedByNative embeded in the inner function calls in getResourceOverlay,
somehow making the app not able to launch..
Culprit ->
https://github.com/youtube/cobalt/pull/4545/files#diff-22285847addbd15025f71dadd357129f86573e042655067048f94fae301fb1d3R480.
We can not blindly replace @UsedByNative with @CalledByNative, when
switching to @CalledByNative, we should make sure to replace all
occurrence of @UserByNative inside, and implement the new JNI template
functions. I don't get why compiler didn't complain about the
getResourceOverlay issue tho.