Skip to content

Commit 142bf92

Browse files
committed
fixed comments
1 parent 35994af commit 142bf92

1 file changed

Lines changed: 12 additions & 3 deletions

File tree

common/src/main/java/com/microsoft/identity/common/internal/providers/oauth2/WebViewAuthorizationFragment.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@
9191
import static com.microsoft.identity.common.java.AuthenticationConstants.OAuth2.UTID;
9292

9393
import com.microsoft.identity.common.java.opentelemetry.OTelUtility;
94+
import com.microsoft.identity.common.java.opentelemetry.SpanExtension;
9495
import com.microsoft.identity.common.java.opentelemetry.SpanName;
9596

9697
import io.opentelemetry.api.trace.Span;
@@ -406,20 +407,27 @@ public boolean onCreateWindow(final WebView view, boolean isDialog,
406407
final Span span = OTelUtility.createSpanFromParent(
407408
SpanName.WebViewTargetBlankNavigation.name(), parentSpanContext);
408409
boolean windowHandled = false;
409-
try (final Scope scope = span.makeCurrent()) {
410+
try (final Scope scope = SpanExtension.makeCurrentSpan(span)) {
410411
Logger.info(methodTag, "onCreateWindow: intercepting target=_blank navigation.");
411412
final WebView interceptorWebView = new WebView(view.getContext());
412413
interceptorWebView.setWebViewClient(new WebViewClient() {
413414
@Override
414415
public boolean shouldOverrideUrlLoading(WebView v, WebResourceRequest request) {
415416
try {
416417
final String url = request.getUrl().toString();
418+
final String scheme = request.getUrl().getScheme();
419+
if (!"https".equalsIgnoreCase(scheme) && !"http".equalsIgnoreCase(scheme)) {
420+
Logger.warn(methodTag, "onCreateWindow: ignoring non-http(s) scheme: " + scheme);
421+
return true;
422+
}
417423
Logger.info(methodTag, "onCreateWindow: opening target=_blank URL in external browser.");
418-
span.setAttribute("target_blank_url", url);
419424
final Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
420425
view.getContext().startActivity(browserIntent);
421426
} catch (final Exception e) {
422427
Logger.error(methodTag, "Error opening target=_blank URL in external browser.", e);
428+
} finally {
429+
// Destroy the interceptor WebView after it has served its purpose
430+
v.post(() -> v.destroy());
423431
}
424432
return true;
425433
}
@@ -436,7 +444,8 @@ public boolean shouldOverrideUrlLoading(WebView v, WebResourceRequest request) {
436444
windowHandled = true;
437445
} catch (@NonNull final Exception e) {
438446
Logger.error(methodTag, "Error handling target=_blank navigation.", e);
439-
span.setStatus(StatusCode.ERROR, e.getMessage() != null ? e.getMessage() : "Unknown error");
447+
span.recordException(e);
448+
span.setStatus(StatusCode.ERROR);
440449
} finally {
441450
span.end();
442451
}

0 commit comments

Comments
 (0)