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 6e5732038185..11b9db5fb282 100644 --- a/xml/impl/src/com/intellij/ide/browsers/impl/WebBrowserServiceImpl.java +++ b/xml/impl/src/com/intellij/ide/browsers/impl/WebBrowserServiceImpl.java @@ -83,17 +83,17 @@ public class WebBrowserServiceImpl extends WebBrowserService { @Nullable public static WebBrowserUrlProvider getProvider(@Nullable PsiElement element) { - if (element == null) { + PsiFile psiFile = element == null ? null : element.getContainingFile(); + if (psiFile == null) { return null; } - final List allProviders = Arrays.asList(WebBrowserUrlProvider.EP_NAME.getExtensions()); + List allProviders = Arrays.asList(WebBrowserUrlProvider.EP_NAME.getExtensions()); for (WebBrowserUrlProvider urlProvider : DumbService.getInstance(element.getProject()).filterByDumbAwareness(allProviders)) { - if (urlProvider.canHandleElement(element)) { + if (urlProvider.canHandleElement(element, psiFile)) { return urlProvider; } } - return null; } } diff --git a/xml/openapi/src/com/intellij/ide/browsers/WebBrowserUrlProvider.java b/xml/openapi/src/com/intellij/ide/browsers/WebBrowserUrlProvider.java index 720d14c8eeca..80db55d83382 100644 --- a/xml/openapi/src/com/intellij/ide/browsers/WebBrowserUrlProvider.java +++ b/xml/openapi/src/com/intellij/ide/browsers/WebBrowserUrlProvider.java @@ -33,14 +33,13 @@ public abstract class WebBrowserUrlProvider { super(message); } } - - @NotNull - public abstract Url getUrl(@NotNull PsiElement element, @NotNull PsiFile psiFile, @NotNull VirtualFile virtualFile) throws BrowserException; - /** * Invariant: element has not null containing psi file with not null virtual file */ - public abstract boolean canHandleElement(@NotNull final PsiElement element); + public abstract boolean canHandleElement(@NotNull PsiElement element, @NotNull PsiFile psiFile); + + @NotNull + public abstract Url getUrl(@NotNull PsiElement element, @NotNull PsiFile psiFile, @NotNull VirtualFile virtualFile) throws BrowserException; @Nullable public String getOpenInBrowserActionText(@NotNull PsiFile file) {