Index: Source/core/page/ContextMenuController.cpp |
diff --git a/Source/core/page/ContextMenuController.cpp b/Source/core/page/ContextMenuController.cpp |
index 6010a9f855afdc0f3a595486704c09a97d20244c..6d3dc1b5856b5b1ddab668601ab6c4e7a2744664 100644 |
--- a/Source/core/page/ContextMenuController.cpp |
+++ b/Source/core/page/ContextMenuController.cpp |
@@ -544,9 +544,11 @@ void ContextMenuController::populate() |
FrameLoader* loader = frame->loader(); |
KURL linkURL = m_hitTestResult.absoluteLinkURL(); |
if (!linkURL.isEmpty()) { |
- appendItem(OpenLinkItem, m_contextMenu.get()); |
- appendItem(OpenLinkInNewWindowItem, m_contextMenu.get()); |
- appendItem(DownloadFileItem, m_contextMenu.get()); |
+ if (loader->client()->canHandleRequest(ResourceRequest(linkURL))) { |
+ appendItem(OpenLinkItem, m_contextMenu.get()); |
+ appendItem(OpenLinkInNewWindowItem, m_contextMenu.get()); |
+ appendItem(DownloadFileItem, m_contextMenu.get()); |
+ } |
appendItem(CopyLinkItem, m_contextMenu.get()); |
} |
@@ -659,11 +661,14 @@ void ContextMenuController::populate() |
} |
} |
+ FrameLoader* loader = frame->loader(); |
KURL linkURL = m_hitTestResult.absoluteLinkURL(); |
if (!linkURL.isEmpty()) { |
- appendItem(OpenLinkItem, m_contextMenu.get()); |
- appendItem(OpenLinkInNewWindowItem, m_contextMenu.get()); |
- appendItem(DownloadFileItem, m_contextMenu.get()); |
+ if (loader->client()->canHandleRequest(ResourceRequest(linkURL))) { |
+ appendItem(OpenLinkItem, m_contextMenu.get()); |
+ appendItem(OpenLinkInNewWindowItem, m_contextMenu.get()); |
+ appendItem(DownloadFileItem, m_contextMenu.get()); |
+ } |
appendItem(CopyLinkItem, m_contextMenu.get()); |
appendItem(*separatorItem(), m_contextMenu.get()); |
} |