4444import androidx .core .util .Pair ;
4545
4646import com .facebook .common .logging .FLog ;
47- import com .facebook .react .bridge .JavaScriptContextHolder ;
4847import com .facebook .react .views .scroll .ScrollEvent ;
4948import com .facebook .react .views .scroll .ScrollEventType ;
5049import com .facebook .react .views .scroll .OnScrollDispatchHelper ;
6867import com .facebook .react .uimanager .events .ContentSizeChangeEvent ;
6968import com .facebook .react .uimanager .events .Event ;
7069import com .facebook .react .uimanager .events .EventDispatcher ;
70+ import com .reactnativecommunity .webview .RNCWebViewModule .ShouldOverrideUrlLoadingLock .ShouldOverrideCallbackState ;
7171import com .reactnativecommunity .webview .events .TopLoadingErrorEvent ;
7272import com .reactnativecommunity .webview .events .TopHttpErrorEvent ;
7373import com .reactnativecommunity .webview .events .TopLoadingFinishEvent ;
@@ -792,12 +792,12 @@ public void onPageStarted(WebView webView, String url, Bitmap favicon) {
792792 @ Override
793793 public boolean shouldOverrideUrlLoading (WebView view , String url ) {
794794 final RNCWebView rncWebView = (RNCWebView ) view ;
795- final JavaScriptContextHolder jsContext = ((ReactContext ) view .getContext ()).getJavaScriptContextHolder ();
795+ final boolean isJsDebugging = ((ReactContext ) view .getContext ()).getJavaScriptContextHolder (). get () == 0 ;
796796
797- if (jsContext . get () != 0 && rncWebView .mCatalystInstance != null ) {
798- final Pair <Integer , AtomicReference <RNCWebViewModule . ShouldOverrideUrlLoadingLock . ShouldOverrideCallbackState >> lock = RNCWebViewModule .shouldOverrideUrlLoadingLock .getNewLock ();
797+ if (! isJsDebugging && rncWebView .mCatalystInstance != null ) {
798+ final Pair <Integer , AtomicReference <ShouldOverrideCallbackState >> lock = RNCWebViewModule .shouldOverrideUrlLoadingLock .getNewLock ();
799799 final int lockIdentifier = lock .first ;
800- final AtomicReference <RNCWebViewModule . ShouldOverrideUrlLoadingLock . ShouldOverrideCallbackState > lockObject = lock .second ;
800+ final AtomicReference <ShouldOverrideCallbackState > lockObject = lock .second ;
801801
802802 final WritableMap event = createWebViewEvent (view , url );
803803 event .putInt ("lockIdentifier" , lockIdentifier );
@@ -807,7 +807,7 @@ public boolean shouldOverrideUrlLoading(WebView view, String url) {
807807 assert lockObject != null ;
808808 synchronized (lockObject ) {
809809 final long startTime = System .nanoTime ();
810- while (lockObject .get () == RNCWebViewModule . ShouldOverrideUrlLoadingLock . ShouldOverrideCallbackState .UNDECIDED ) {
810+ while (lockObject .get () == ShouldOverrideCallbackState .UNDECIDED ) {
811811 if (TimeUnit .NANOSECONDS .toMillis (System .nanoTime () - startTime ) > 250 ) {
812812 FLog .w (TAG , "Did not receive response to shouldOverrideUrlLoading in time, defaulting to allow loading." );
813813 RNCWebViewModule .shouldOverrideUrlLoadingLock .removeLock (lockIdentifier );
@@ -822,7 +822,7 @@ public boolean shouldOverrideUrlLoading(WebView view, String url) {
822822 return false ;
823823 }
824824
825- final boolean shouldOverride = lockObject .get () == RNCWebViewModule . ShouldOverrideUrlLoadingLock . ShouldOverrideCallbackState .SHOULD_OVERRIDE ;
825+ final boolean shouldOverride = lockObject .get () == ShouldOverrideCallbackState .SHOULD_OVERRIDE ;
826826 RNCWebViewModule .shouldOverrideUrlLoadingLock .removeLock (lockIdentifier );
827827
828828 return shouldOverride ;
0 commit comments