diff --git a/xml/impl/src/com/intellij/ide/browsers/impl/WebBrowserServiceImpl.java b/xml/impl/src/com/intellij/ide/browsers/impl/WebBrowserServiceImpl.java index 3517f265b14b..bee53af627be 100644 --- a/xml/impl/src/com/intellij/ide/browsers/impl/WebBrowserServiceImpl.java +++ b/xml/impl/src/com/intellij/ide/browsers/impl/WebBrowserServiceImpl.java @@ -37,9 +37,10 @@ import java.util.List; public class WebBrowserServiceImpl extends WebBrowserService { @Override public boolean canOpenInBrowser(@NotNull PsiElement psiElement) { - final PsiFile psiFile = psiElement instanceof PsiFile ? (PsiFile)psiElement : psiElement.getContainingFile(); - return psiFile != null && psiFile.getVirtualFile() != null && - (HtmlUtil.isHtmlFile(psiFile) || getProvider(psiElement) != null); + PsiFile psiFile = psiElement instanceof PsiFile ? (PsiFile)psiElement : psiElement.getContainingFile(); + VirtualFile virtualFile = psiFile == null ? null : psiFile.getVirtualFile(); + return virtualFile != null && + ((HtmlUtil.isHtmlFile(psiFile) && !(virtualFile instanceof LightVirtualFile)) || getProvider(psiElement, psiFile) != null); } @Override @@ -94,10 +95,10 @@ public class WebBrowserServiceImpl extends WebBrowserService { @Nullable public static Pair getProvider(@Nullable PsiElement element) { PsiFile psiFile = element == null ? null : element.getContainingFile(); - if (psiFile == null) { - return null; - } + return psiFile == null ? null : getProvider(element, psiFile); + } + private static Pair getProvider(PsiElement element, PsiFile psiFile) { Ref result = Ref.create(); List allProviders = Arrays.asList(WebBrowserUrlProvider.EP_NAME.getExtensions()); for (WebBrowserUrlProvider urlProvider : DumbService.getInstance(element.getProject()).filterByDumbAwareness(allProviders)) {