[Mac] Disable "Save to Downloads" option for local files
authorbfulgham@apple.com <bfulgham@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 16 Apr 2015 03:57:51 +0000 (03:57 +0000)
committerbfulgham@apple.com <bfulgham@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 16 Apr 2015 03:57:51 +0000 (03:57 +0000)
https://bugs.webkit.org/show_bug.cgi?id=143794

Reviewed by Tim Horton.

Disable the Image and Media download options if the download
target is a local file. We can only download web resources;
anything else is actually a no-op.

Source/WebCore:

* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::checkOrEnableIfNeeded): Disable
menu item if appropriate.

Source/WebKit/mac:

* WebView/WebActionMenuController.mm:
(-[WebActionMenuController _defaultMenuItemsForImage]):
(-[WebActionMenuController _defaultMenuItemsForVideo]):

Source/WebKit2:

* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForVideo]):
(-[WKActionMenuController _defaultMenuItemsForImage]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@182879 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/page/ContextMenuController.cpp
Source/WebKit/mac/ChangeLog
Source/WebKit/mac/WebView/WebActionMenuController.mm
Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/mac/WKActionMenuController.mm

index eedeab9..f3ad12b 100644 (file)
@@ -1,3 +1,18 @@
+2015-04-15  Brent Fulgham  <bfulgham@apple.com>
+
+        [Mac] Disable "Save to Downloads" option for local files
+        https://bugs.webkit.org/show_bug.cgi?id=143794
+
+        Reviewed by Tim Horton.
+
+        Disable the Image and Media download options if the download
+        target is a local file. We can only download web resources;
+        anything else is actually a no-op.
+
+        * page/ContextMenuController.cpp:
+        (WebCore::ContextMenuController::checkOrEnableIfNeeded): Disable
+        menu item if appropriate.
+
 2015-04-15  Chris Dumez  <cdumez@apple.com>
 
         Add a console message when a stylesheet is not parsed due to invalid MIME type
index 3889e54..3a1cd76 100644 (file)
@@ -1334,12 +1334,17 @@ void ContextMenuController::checkOrEnableIfNeeded(ContextMenuItem& item) const
         case ContextMenuItemTagDownloadLinkToDisk:
         case ContextMenuItemTagCopyLinkToClipboard:
         case ContextMenuItemTagOpenImageInNewWindow:
-        case ContextMenuItemTagDownloadImageToDisk:
         case ContextMenuItemTagCopyImageToClipboard:
 #if PLATFORM(GTK) || PLATFORM(EFL)
         case ContextMenuItemTagCopyImageUrlToClipboard:
 #endif
             break;
+        case ContextMenuItemTagDownloadImageToDisk:
+#if PLATFORM(MAC)
+            if (WebCore::protocolIs(m_context.hitTestResult().absoluteImageURL(), "file"))
+                shouldEnable = false;
+#endif
+            break;
         case ContextMenuItemTagOpenMediaInNewWindow:
             if (m_context.hitTestResult().mediaIsVideo())
                 item.setTitle(contextMenuItemTagOpenVideoInNewWindow());
@@ -1351,6 +1356,8 @@ void ContextMenuController::checkOrEnableIfNeeded(ContextMenuItem& item) const
                 item.setTitle(contextMenuItemTagDownloadVideoToDisk());
             else
                 item.setTitle(contextMenuItemTagDownloadAudioToDisk());
+            if (WebCore::protocolIs(m_context.hitTestResult().absoluteImageURL(), "file"))
+                shouldEnable = false;
             break;
         case ContextMenuItemTagCopyMediaLinkToClipboard:
             if (m_context.hitTestResult().mediaIsVideo())
index 92cc299..39ba768 100644 (file)
@@ -1,3 +1,18 @@
+2015-04-15  Brent Fulgham  <bfulgham@apple.com>
+
+        [Mac] Disable "Save to Downloads" option for local files
+        https://bugs.webkit.org/show_bug.cgi?id=143794
+
+        Reviewed by Tim Horton.
+
+        Disable the Image and Media download options if the download
+        target is a local file. We can only download web resources;
+        anything else is actually a no-op.
+
+        * WebView/WebActionMenuController.mm:
+        (-[WebActionMenuController _defaultMenuItemsForImage]):
+        (-[WebActionMenuController _defaultMenuItemsForVideo]):
+
 2015-04-15  Alex Christensen  <achristensen@webkit.org>
 
         Progress towards CMake on Mac.
index 2a34d65..45fe739 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014 Apple Inc. All rights reserved.
+ * Copyright (C) 2014-2015 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -686,6 +686,7 @@ static NSString *pathToPhotoOnDisk(NSString *suggestedFilename)
         selector = @selector(_saveImageToDownloads:);
         title = WEB_UI_STRING_KEY("Save to Downloads", "Save to Downloads (image action menu item)", "image action menu item");
         image = [NSImage imageNamed:@"NSActionMenuSaveToDownloads"];
+        enabled = WebCore::protocolIs(_hitTestResult.absoluteImageURL(), "file");
         break;
 
     case WebActionMenuItemTagCopyVideoURL:
@@ -698,6 +699,7 @@ static NSString *pathToPhotoOnDisk(NSString *suggestedFilename)
         selector = @selector(_saveVideoToDownloads:);
         title = WEB_UI_STRING_KEY("Save to Downloads", "Save to Downloads (video action menu item)", "video action menu item");
         image = [NSImage imageNamed:@"NSActionMenuSaveToDownloads"];
+        enabled = WebCore::protocolIs(_hitTestResult.absoluteMediaURL(), "file");
         break;
 
     default:
index 6145d8d..59e57aa 100644 (file)
@@ -1,3 +1,18 @@
+2015-04-15  Brent Fulgham  <bfulgham@apple.com>
+
+        [Mac] Disable "Save to Downloads" option for local files
+        https://bugs.webkit.org/show_bug.cgi?id=143794
+
+        Reviewed by Tim Horton.
+
+        Disable the Image and Media download options if the download
+        target is a local file. We can only download web resources;
+        anything else is actually a no-op.
+
+        * UIProcess/mac/WKActionMenuController.mm:
+        (-[WKActionMenuController _defaultMenuItemsForVideo]):
+        (-[WKActionMenuController _defaultMenuItemsForImage]):
+
 2015-04-15  Anders Carlsson  <andersca@apple.com>
 
         Make websiteDataStore on WKWebViewConfiguration public
index 3a0b867..71f6870 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014 Apple Inc. All rights reserved.
+ * Copyright (C) 2014-2015 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -590,6 +590,7 @@ static NSString *pathToPhotoOnDisk(NSString *suggestedFilename)
         selector = @selector(_saveImageToDownloads:);
         title = WEB_UI_STRING_KEY("Save to Downloads", "Save to Downloads (image action menu item)", "image action menu item");
         image = [NSImage imageNamed:@"NSActionMenuSaveToDownloads"];
+        enabled = WebCore::protocolIs(hitTestResult->absoluteImageURL(), "file");
         break;
 
     case kWKContextActionItemTagCopyText:
@@ -620,6 +621,7 @@ static NSString *pathToPhotoOnDisk(NSString *suggestedFilename)
         selector = @selector(_saveVideoToDownloads:);
         title = WEB_UI_STRING_KEY("Save to Downloads", "Save to Downloads (video action menu item)", "video action menu item");
         image = [NSImage imageNamed:@"NSActionMenuSaveToDownloads"];
+        enabled = WebCore::protocolIs(hitTestResult->absoluteMediaURL(), "file");
         break;
 
     default: