Skip to content

Commit

Permalink
Implement HostTargetDelegate.networkRequest (Android Bridgeless)
Browse files Browse the repository at this point in the history
Summary:
Following facebook#45664, implements the `networkRequest` method of `jsinspector_modern::HostTargetDelegate` for Android (Bridgeless).

Changelog: [Internal]

Differential Revision: D60232817
  • Loading branch information
huntie authored and facebook-github-bot committed Jul 25, 2024
1 parent a7c8498 commit 004f08e
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@
import com.facebook.react.devsupport.DevSupportManagerBase;
import com.facebook.react.devsupport.InspectorFlags;
import com.facebook.react.devsupport.ReleaseDevSupportManager;
import com.facebook.react.devsupport.inspector.InspectorNetworkHelper;
import com.facebook.react.devsupport.inspector.InspectorNetworkRequestListener;
import com.facebook.react.devsupport.interfaces.BundleLoadCallback;
import com.facebook.react.devsupport.interfaces.DevSupportManager;
import com.facebook.react.devsupport.interfaces.DevSupportManager.PausedInDebuggerOverlayCommandListener;
Expand Down Expand Up @@ -507,6 +509,11 @@ private Map<String, String> getHostMetadata() {
return AndroidInfoHelpers.getInspectorHostMetadata(mContext);
}

@DoNotStrip
private void loadNetworkResource(String url, InspectorNetworkRequestListener listener) {
InspectorNetworkHelper.loadNetworkResource(url, listener);
}

/**
* Entrypoint to destroy the ReactInstance. If the ReactInstance is reloading, will wait until
* reload is finished, before destroying.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
*/

#include "JReactHostInspectorTarget.h"

#include <fbjni/NativeRunnable.h>
#include <jsinspector-modern/InspectorFlags.h>
#include <react/jni/JWeakRefUtils.h>
Expand Down Expand Up @@ -126,6 +127,19 @@ void JReactHostInspectorTarget::onSetPausedInDebuggerMessage(
}
}

void JReactHostInspectorTarget::loadNetworkResource(
const jsinspector_modern::LoadNetworkResourceRequest& params,
jsinspector_modern::ScopedExecutor<
jsinspector_modern::NetworkRequestListener> executor) {
// Construct InspectorNetworkRequestListener (hybrid class) from the C++ side
// (holding the ScopedExecutor), pass to the delegate.
auto listener = InspectorNetworkRequestListener::newObjectCxxArgs(executor);

if (auto javaReactHostImplStrong = javaReactHostImpl_->get()) {
javaReactHostImplStrong->loadNetworkResource(params.url, listener);
}
}

HostTarget* JReactHostInspectorTarget::getInspectorTarget() {
return inspectorTarget_ ? inspectorTarget_.get() : nullptr;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

#include <fbjni/fbjni.h>
#include <jsinspector-modern/HostTarget.h>
#include <react/jni/InspectorNetworkRequestListener.h>
#include <react/jni/JExecutor.h>
#include <string>

Expand Down Expand Up @@ -44,6 +45,19 @@ struct JReactHostImpl : public jni::JavaClass<JReactHostImpl> {
"getHostMetadata");
return method(self());
}

void loadNetworkResource(
const std::string& url,
jni::local_ref<InspectorNetworkRequestListener::javaobject> listener)
const {
auto method =
javaClassStatic()
->getMethod<void(
jni::local_ref<jni::JString>,
jni::local_ref<InspectorNetworkRequestListener::javaobject>)>(
"loadNetworkResource");
return method(self(), jni::make_jstring(url), listener);
}
};

class JReactHostInspectorTarget
Expand All @@ -70,6 +84,10 @@ class JReactHostInspectorTarget
void onReload(const PageReloadRequest& request) override;
void onSetPausedInDebuggerMessage(
const OverlaySetPausedInDebuggerMessageRequest&) override;
void loadNetworkResource(
const jsinspector_modern::LoadNetworkResourceRequest& params,
jsinspector_modern::ScopedExecutor<
jsinspector_modern::NetworkRequestListener> executor) override;

private:
JReactHostInspectorTarget(
Expand Down

0 comments on commit 004f08e

Please sign in to comment.