Changeset 151656 in webkit


Ignore:
Timestamp:
Jun 17, 2013 2:50:55 PM (11 years ago)
Author:
commit-queue@webkit.org
Message:

REGRESSION: Important controls are missing from <video> element UI, when compared to QuickTime
https://bugs.webkit.org/show_bug.cgi?id=20599

Add a "Download Video"/"Download Audio" context menu item to download media
elements.

Patch by Ruth Fong <ruth_fong@apple.com> on 2013-06-17
Reviewed by Beth Dakin.

Source/WebCore:

No new tests. media/context-menu-action.html,
which has been disabled by bug 116651, is used to test context menus.

  • English.lproj/Localizable.strings: Updated to

include localizable strings for "Download Video" and "Download Audio".

  • page/ContextMenuController.cpp: Updated to

include and handle a "Download Video/Audio" context menu item.

  • platform/ContextMenuItem.h:
  • platform/LocalizedStrings.cpp:
  • platform/LocalizedStrings.h:
  • platform/efl/LocalizedStringsEfl.cpp:
  • platform/gtk/LocalizedStringsGtk.cpp:
  • platform/qt/LocalizedStringsQt.cpp:

Updated to include localizable strings for "Download Video" and "Download Audio".

Source/WebKit/efl:

  • WebCoreSupport/AssertMatchingEnums.cpp:
  • ewk/ewk_contextmenu.h:

Updated to include new EWK enum type for "Download Video/Audio" context menu item.

Source/WebKit2:

  • Shared/API/c/WKContextMenuItemTypes.h: Updated to include

an enum type for the "Download Video/Audio" context menu item.

  • Shared/API/c/WKSharedAPICast.h: Updated to associate

the enums in WebKit and WebCore that handle the "Download Video/Audio"
context menu item.

  • UIProcess/API/efl/ewk_context_menu.cpp:
  • UIProcess/API/efl/ewk_context_menu_item.cpp:
  • UIProcess/API/efl/ewk_context_menu_item.h:

Updated to include new EWK enum type for "Download Video/Audio" context menu item.

  • UIProcess/WebPageProxy.cpp: Updated to

handle the "Download Video/Audio" context menu item mouse click
and download the media item in the UI process.

Location:
trunk/Source
Files:
19 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r151652 r151656  
     12013-06-17  Ruth Fong  <ruth_fong@apple.com>
     2
     3        REGRESSION: Important controls are missing from <video> element UI, when compared to QuickTime
     4        https://bugs.webkit.org/show_bug.cgi?id=20599
     5
     6        Add a "Download Video"/"Download Audio" context menu item to download media
     7        elements.
     8
     9        Reviewed by Beth Dakin.
     10
     11        No new tests. media/context-menu-action.html,
     12        which has been disabled by bug 116651, is used to test context menus.
     13
     14        * English.lproj/Localizable.strings: Updated to
     15        include localizable strings for "Download Video" and "Download Audio".
     16
     17        * page/ContextMenuController.cpp: Updated to
     18        include and handle a "Download Video/Audio" context menu item.
     19
     20        * platform/ContextMenuItem.h:
     21
     22        * platform/LocalizedStrings.cpp:
     23        * platform/LocalizedStrings.h:
     24        * platform/efl/LocalizedStringsEfl.cpp:
     25        * platform/gtk/LocalizedStringsGtk.cpp:
     26        * platform/qt/LocalizedStringsQt.cpp:
     27        Updated to include localizable strings for "Download Video" and "Download Audio".
     28
    1292013-06-17  Zoltan Horvath  <zoltan@webkit.org>
    230
  • trunk/Source/WebCore/English.lproj/Localizable.strings

    r151530 r151656  
    179179"Exit Fullscreen" = "Exit Fullscreen";
    180180
     181/* Download Video context menu item */
     182"Download Video" = "Download Video";
     183
     184/* Download Audio context menu item */
     185"Download Audio" = "Download Audio";
     186
    181187/* Default application name for Open With context menu */
    182188"Finder" = "Finder";
  • trunk/Source/WebCore/page/ContextMenuController.cpp

    r151638 r151656  
    229229        break;
    230230    case ContextMenuItemTagDownloadLinkToDisk:
    231         // FIXME: Some day we should be able to do this from within WebCore.
     231        // FIXME: Some day we should be able to do this from within WebCore. (Bug 117709)
    232232        m_client->downloadURL(m_hitTestResult.absoluteLinkURL());
    233233        break;
     
    239239        break;
    240240    case ContextMenuItemTagDownloadImageToDisk:
    241         // FIXME: Some day we should be able to do this from within WebCore.
     241        // FIXME: Some day we should be able to do this from within WebCore. (Bug 117709)
    242242        m_client->downloadURL(m_hitTestResult.absoluteImageURL());
    243243        break;
     
    254254    case ContextMenuItemTagOpenMediaInNewWindow:
    255255        openNewWindow(m_hitTestResult.absoluteMediaURL(), frame);
     256        break;
     257    case ContextMenuItemTagDownloadMediaToDisk:
     258        // FIXME: Some day we should be able to do this from within WebCore. (Bug 117709)
     259        m_client->downloadURL(m_hitTestResult.absoluteMediaURL());
    256260        break;
    257261    case ContextMenuItemTagCopyMediaLinkToClipboard:
     
    762766#endif
    763767    ContextMenuItem OpenMediaInNewWindowItem(ActionType, ContextMenuItemTagOpenMediaInNewWindow, String());
    764     ContextMenuItem CopyMediaLinkItem(ActionType, ContextMenuItemTagCopyMediaLinkToClipboard,
    765         String());
     768    ContextMenuItem DownloadMediaItem(ActionType, ContextMenuItemTagDownloadMediaToDisk, String());
     769    ContextMenuItem CopyMediaLinkItem(ActionType, ContextMenuItemTagCopyMediaLinkToClipboard, String());
    766770    ContextMenuItem MediaPlayPause(ActionType, ContextMenuItemTagMediaPlayPause,
    767771        contextMenuItemTagMediaPlay());
     
    865869            appendItem(CopyMediaLinkItem, m_contextMenu.get());
    866870            appendItem(OpenMediaInNewWindowItem, m_contextMenu.get());
     871            if (loader->client()->canHandleRequest(ResourceRequest(mediaURL)))
     872                appendItem(DownloadMediaItem, m_contextMenu.get());
    867873        }
    868874
     
    13451351                item.setTitle(contextMenuItemTagOpenAudioInNewWindow());
    13461352            break;
     1353        case ContextMenuItemTagDownloadMediaToDisk:
     1354            if (m_hitTestResult.mediaIsVideo())
     1355                item.setTitle(contextMenuItemTagDownloadVideoToDisk());
     1356            else
     1357                item.setTitle(contextMenuItemTagDownloadAudioToDisk());
     1358            break;
    13471359        case ContextMenuItemTagCopyMediaLinkToClipboard:
    13481360            if (m_hitTestResult.mediaIsVideo())
  • trunk/Source/WebCore/platform/ContextMenuItem.h

    r151512 r151656  
    154154#endif
    155155        ContextMenuItemTagOpenMediaInNewWindow,
     156        ContextMenuItemTagDownloadMediaToDisk,
    156157        ContextMenuItemTagCopyMediaLinkToClipboard,
    157158        ContextMenuItemTagToggleMediaControls,
  • trunk/Source/WebCore/platform/LocalizedStrings.cpp

    r151638 r151656  
    468468{
    469469    return WEB_UI_STRING("Open Audio in New Window", "Open Audio in New Window context menu item");
     470}
     471
     472String contextMenuItemTagDownloadVideoToDisk()
     473{
     474    return WEB_UI_STRING("Download Video", "Download Video To Disk context menu item");
     475}
     476
     477String contextMenuItemTagDownloadAudioToDisk()
     478{
     479    return WEB_UI_STRING("Download Audio", "Download Audio To Disk context menu item");
    470480}
    471481
  • trunk/Source/WebCore/platform/LocalizedStrings.h

    r151638 r151656  
    133133    String contextMenuItemTagOpenVideoInNewWindow();
    134134    String contextMenuItemTagOpenAudioInNewWindow();
     135    String contextMenuItemTagDownloadVideoToDisk();
     136    String contextMenuItemTagDownloadAudioToDisk();
    135137    String contextMenuItemTagCopyVideoLinkToClipboard();
    136138    String contextMenuItemTagCopyAudioLinkToClipboard();
  • trunk/Source/WebCore/platform/efl/LocalizedStringsEfl.cpp

    r151638 r151656  
    129129}
    130130
     131String contextMenuItemTagDownloadVideoToDisk()
     132{
     133    return String::fromUTF8("Download Video");
     134}
     135
     136String contextMenuItemTagDownloadAudioToDisk()
     137{
     138    return String::fromUTF8("Download Audio");
     139}
     140
    131141String contextMenuItemTagCopyVideoLinkToClipboard()
    132142{
  • trunk/Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp

    r151638 r151656  
    140140{
    141141    return String::fromUTF8(_("Open _Audio in New Window"));
     142}
     143
     144String contextMenuItemTagDownloadVideoToDisk()
     145{
     146    return String::fromUTF8(_("Download _Video"));
     147}
     148
     149String contextMenuItemTagDownloadAudioToDisk()
     150{
     151    return String::fromUTF8(_("Download _Audio"));
    142152}
    143153
  • trunk/Source/WebCore/platform/qt/LocalizedStringsQt.cpp

    r151638 r151656  
    132132{
    133133    return QCoreApplication::translate("QWebPage", "Open Audio", "Open Audio in New Window");
     134}
     135
     136String contextMenuItemTagDownloadVideoToDisk()
     137{
     138    return QCoreApplication::translate("QWebPage", "Download Video", "Download Video context menu item");
     139}
     140
     141String contextMenuItemTagDownloadAudioToDisk()
     142{
     143    return QCoreApplication::translate("QWebPage", "Download Audio", "Download Audio context menu item");
    134144}
    135145
  • trunk/Source/WebKit/efl/ChangeLog

    r151540 r151656  
     12013-06-17  Ruth Fong  <ruth_fong@apple.com>
     2
     3        REGRESSION: Important controls are missing from <video> element UI, when compared to QuickTime
     4        https://bugs.webkit.org/show_bug.cgi?id=20599
     5
     6        Add a "Download Video"/"Download Audio" context menu item to download media
     7        elements.
     8
     9        Reviewed by Beth Dakin.
     10
     11        * WebCoreSupport/AssertMatchingEnums.cpp:
     12        * ewk/ewk_contextmenu.h:
     13        Updated to include new EWK enum type for "Download Video/Audio" context menu item.
     14
    1152013-06-13  Ryuan Choi  <ryuan.choi@samsung.com>
    216
  • trunk/Source/WebKit/efl/WebCoreSupport/AssertMatchingEnums.cpp

    r150695 r151656  
    157157COMPILE_ASSERT_MATCHING_ENUM(EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_RIGHT_TO_LEFT, ContextMenuItemTagTextDirectionRightToLeft);
    158158COMPILE_ASSERT_MATCHING_ENUM(EWK_CONTEXT_MENU_ITEM_OPEN_MEDIA_IN_NEW_WINDOW, ContextMenuItemTagOpenMediaInNewWindow);
     159COMPILE_ASSERT_MATCHING_ENUM(EWK_CONTEXT_MENU_ITEM_TAG_DOWNLOAD_MEDIA_TO_DISK, ContextMenuItemTagDownloadMediaToDisk);
    159160COMPILE_ASSERT_MATCHING_ENUM(EWK_CONTEXT_MENU_ITEM_TAG_COPY_MEDIA_LINK_TO_CLIPBOARD, ContextMenuItemTagCopyMediaLinkToClipboard);
    160161COMPILE_ASSERT_MATCHING_ENUM(EWK_CONTEXT_MENU_ITEM_TAG_TOGGLE_MEDIA_CONTROLS, ContextMenuItemTagToggleMediaControls);
  • trunk/Source/WebKit/efl/ewk/ewk_contextmenu.h

    r133000 r151656  
    116116    EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_RIGHT_TO_LEFT,
    117117    EWK_CONTEXT_MENU_ITEM_OPEN_MEDIA_IN_NEW_WINDOW,
     118    EWK_CONTEXT_MENU_ITEM_TAG_DOWNLOAD_MEDIA_TO_DISK,
    118119    EWK_CONTEXT_MENU_ITEM_TAG_COPY_MEDIA_LINK_TO_CLIPBOARD,
    119120    EWK_CONTEXT_MENU_ITEM_TAG_TOGGLE_MEDIA_CONTROLS,
  • trunk/Source/WebKit2/ChangeLog

    r151653 r151656  
     12013-06-17  Ruth Fong  <ruth_fong@apple.com>
     2
     3        REGRESSION: Important controls are missing from <video> element UI, when compared to QuickTime
     4        https://bugs.webkit.org/show_bug.cgi?id=20599
     5
     6        Add a "Download Video"/"Download Audio" context menu item to download media
     7        elements.
     8
     9        Reviewed by Beth Dakin.
     10
     11        * Shared/API/c/WKContextMenuItemTypes.h: Updated to include
     12        an enum type for the "Download Video/Audio" context menu item.
     13
     14        * Shared/API/c/WKSharedAPICast.h: Updated to associate
     15        the enums in WebKit and WebCore that handle the "Download Video/Audio"
     16        context menu item.
     17
     18        * UIProcess/API/efl/ewk_context_menu.cpp:
     19        * UIProcess/API/efl/ewk_context_menu_item.cpp:
     20        * UIProcess/API/efl/ewk_context_menu_item.h:
     21        Updated to include new EWK enum type for "Download Video/Audio" context menu item.
     22
     23        * UIProcess/WebPageProxy.cpp: Updated to
     24        handle the "Download Video/Audio" context menu item mouse click
     25        and download the media item in the UI process.
     26
    1272013-06-17  Ralph Thomas  <ralpht@gmail.com>
    228
  • trunk/Source/WebKit2/Shared/API/c/WKContextMenuItemTypes.h

    r151512 r151656  
    108108    kWKContextMenuItemTagChangeBack,
    109109    kWKContextMenuItemTagOpenMediaInNewWindow,
     110    kWKContextMenuItemTagDownloadMediaToDisk,
    110111    kWKContextMenuItemTagCopyMediaLinkToClipboard,
    111112    kWKContextMenuItemTagToggleMediaControls,
  • trunk/Source/WebKit2/Shared/API/c/WKSharedAPICast.h

    r151638 r151656  
    463463    case WebCore::ContextMenuItemTagOpenMediaInNewWindow:
    464464        return kWKContextMenuItemTagOpenMediaInNewWindow;
     465    case WebCore::ContextMenuItemTagDownloadMediaToDisk:
     466        return kWKContextMenuItemTagDownloadMediaToDisk;
    465467    case WebCore::ContextMenuItemTagCopyMediaLinkToClipboard:
    466468        return kWKContextMenuItemTagCopyMediaLinkToClipboard;
     
    655657    case kWKContextMenuItemTagOpenMediaInNewWindow:
    656658        return WebCore::ContextMenuItemTagOpenMediaInNewWindow;
     659    case kWKContextMenuItemTagDownloadMediaToDisk:
     660        return WebCore::ContextMenuItemTagDownloadMediaToDisk;
    657661    case kWKContextMenuItemTagCopyMediaLinkToClipboard:
    658662        return WebCore::ContextMenuItemTagCopyMediaLinkToClipboard;
  • trunk/Source/WebKit2/UIProcess/API/efl/ewk_context_menu.cpp

    r151162 r151656  
    308308    case EWK_CONTEXT_MENU_ITEM_OPEN_MEDIA_IN_NEW_WINDOW:
    309309        return kWKContextMenuItemTagOpenMediaInNewWindow;
     310    case EWK_CONTEXT_MENU_ITEM_TAG_DOWNLOAD_MEDIA_TO_DISK:
     311        return kWKContextMenuItemTagDownloadMediaToDisk;
    310312    case EWK_CONTEXT_MENU_ITEM_TAG_COPY_MEDIA_LINK_TO_CLIPBOARD:
    311313        return kWKContextMenuItemTagCopyMediaLinkToClipboard;
  • trunk/Source/WebKit2/UIProcess/API/efl/ewk_context_menu_item.cpp

    r151638 r151656  
    301301    case kWKContextMenuItemTagOpenMediaInNewWindow:
    302302        return EWK_CONTEXT_MENU_ITEM_OPEN_MEDIA_IN_NEW_WINDOW;
     303    case kWKContextMenuItemTagDownloadMediaToDisk:
     304        return EWK_CONTEXT_MENU_ITEM_TAG_DOWNLOAD_MEDIA_TO_DISK;
    303305    case kWKContextMenuItemTagCopyMediaLinkToClipboard:
    304306        return EWK_CONTEXT_MENU_ITEM_TAG_COPY_MEDIA_LINK_TO_CLIPBOARD;
  • trunk/Source/WebKit2/UIProcess/API/efl/ewk_context_menu_item.h

    r151168 r151656  
    121121    EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_RIGHT_TO_LEFT,
    122122    EWK_CONTEXT_MENU_ITEM_OPEN_MEDIA_IN_NEW_WINDOW,
     123    EWK_CONTEXT_MENU_ITEM_TAG_DOWNLOAD_MEDIA_TO_DISK,
    123124    EWK_CONTEXT_MENU_ITEM_TAG_COPY_MEDIA_LINK_TO_CLIPBOARD,
    124125    EWK_CONTEXT_MENU_ITEM_TAG_TOGGLE_MEDIA_CONTROLS,
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp

    r151638 r151656  
    33453345        return;
    33463346    }
     3347    if (item.action() == ContextMenuItemTagDownloadMediaToDisk) {
     3348        m_process->context()->download(this, KURL(KURL(), m_activeContextMenuHitTestResultData.absoluteMediaURL));
     3349        return;
     3350    }
    33473351    if (item.action() == ContextMenuItemTagCheckSpellingWhileTyping) {
    33483352        TextChecker::setContinuousSpellCheckingEnabled(!TextChecker::state().isContinuousSpellCheckingEnabled);
Note: See TracChangeset for help on using the changeset viewer.