diff --git a/front_end/entrypoints/inspector_main/InspectorMain.ts b/front_end/entrypoints/inspector_main/InspectorMain.ts index 4e3ff73e1bf..6f28694c97f 100644 --- a/front_end/entrypoints/inspector_main/InspectorMain.ts +++ b/front_end/entrypoints/inspector_main/InspectorMain.ts @@ -122,6 +122,25 @@ Common.Runnable.registerEarlyInitializationRunnable(InspectorMainImpl.instance); export class ReloadActionDelegate implements UI.ActionRegistration.ActionDelegate { handleAction(_context: UI.Context.Context, actionId: string): boolean { + const isReactNative = Root.Runtime.experiments.isEnabled( + Root.Runtime.ExperimentName.REACT_NATIVE_SPECIFIC_UI, + ); + + // [RN] Fork reload handling. React Native targets do not initialize + // ResourceTreeModel (Capability.DOM), and there is no hard reload concept. + if (isReactNative) { + switch (actionId) { + case 'inspector-main.reload': + case 'inspector-main.hard-reload': + const mainTarget = SDK.TargetManager.TargetManager.instance().primaryPageTarget(); + if (!mainTarget) { + return false; + } + void mainTarget.pageAgent().invoke_reload({ignoreCache: true}); + return true; + } + } + switch (actionId) { case 'inspector-main.reload': SDK.ResourceTreeModel.ResourceTreeModel.reloadAllPages(false); diff --git a/front_end/panels/react_devtools/ReactDevToolsModel.ts b/front_end/panels/react_devtools/ReactDevToolsModel.ts index 13607e8774e..fabb7738098 100644 --- a/front_end/panels/react_devtools/ReactDevToolsModel.ts +++ b/front_end/panels/react_devtools/ReactDevToolsModel.ts @@ -202,7 +202,8 @@ export class ReactDevToolsModel extends SDK.SDKModel.SDKModel { } #handleReloadAppForProfiling(): void { - SDK.ResourceTreeModel.ResourceTreeModel.reloadAllPages(false); + const mainTarget = SDK.TargetManager.TargetManager.instance().primaryPageTarget(); + void mainTarget?.pageAgent().invoke_reload({ignoreCache: true}); } #handleBackendExecutionContextUnavailable({data: errorMessage}: ReactDevToolsBindingsBackendExecutionContextUnavailableEvent): void {