Changeset 176108 in webkit
- Timestamp:
- Nov 13, 2014, 4:46:53 PM (12 years ago)
- Location:
- trunk/Source
- Files:
-
- 21 edited
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/html/HTMLMediaElement.cpp (modified) (2 diffs)
-
WebCore/html/HTMLMediaElement.h (modified) (1 diff)
-
WebCore/page/ContextMenuController.cpp (modified) (1 diff)
-
WebCore/platform/graphics/MediaPlayer.cpp (modified) (1 diff)
-
WebCore/platform/graphics/MediaPlayer.h (modified) (1 diff)
-
WebCore/platform/graphics/MediaPlayerPrivate.h (modified) (1 diff)
-
WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp (modified) (1 diff)
-
WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h (modified) (2 diffs)
-
WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h (modified) (1 diff)
-
WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm (modified) (1 diff)
-
WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (modified) (1 diff)
-
WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h (modified) (1 diff)
-
WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.h (modified) (1 diff)
-
WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm (modified) (1 diff)
-
WebCore/rendering/HitTestResult.cpp (modified) (1 diff)
-
WebKit2/ChangeLog (modified) (1 diff)
-
WebKit2/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp (modified) (1 diff)
-
WebKit2/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h (modified) (1 diff)
-
WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp (modified) (1 diff)
-
WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResult.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r176106 r176108 1 2014-11-13 Eric Carlson <eric.carlson@apple.com> 2 3 Context menus should not offer the "Download video" option for videos that cannot 4 be downloaded 5 https://bugs.webkit.org/show_bug.cgi?id=138530 6 -and corresponding- 7 rdar://problem/18919130 8 9 Reviewed by Tim Horton. 10 11 * html/HTMLMediaElement.cpp: 12 (WebCore::HTMLMediaElement::parseAttribute): 13 * html/HTMLMediaElement.h: 14 * page/ContextMenuController.cpp: 15 (WebCore::ContextMenuController::populate): 16 * platform/graphics/MediaPlayer.cpp: 17 (WebCore::MediaPlayer::canSaveMediaData): 18 (WebCore::MediaPlayer::supportsSave): Deleted. 19 * platform/graphics/MediaPlayer.h: 20 * platform/graphics/MediaPlayerPrivate.h: 21 (WebCore::MediaPlayerPrivateInterface::supportsFullscreen): 22 (WebCore::MediaPlayerPrivateInterface::canSaveMediaData): 23 (WebCore::MediaPlayerPrivateInterface::supportsSave): Deleted. 24 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: 25 (WebCore::MediaPlayerPrivateAVFoundation::resolvedURL): 26 (WebCore::MediaPlayerPrivateAVFoundation::canSaveMediaData): 27 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h: 28 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: 29 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: 30 (WebCore::MediaPlayerPrivateAVFoundationObjC::resolvedURL): 31 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: 32 (WebCore::MediaPlayerPrivateGStreamer::canSaveMediaData): 33 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: 34 * platform/graphics/mac/MediaPlayerPrivateQTKit.h: 35 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: 36 (WebCore::MediaPlayerPrivateQTKit::canSaveMediaData): 37 * rendering/HitTestResult.cpp: 38 (WebCore::HitTestResult::isDownloadableMedia): 39 1 40 2014-11-02 Tim Horton <timothy_horton@apple.com> 2 41 -
trunk/Source/WebCore/html/HTMLMediaElement.cpp
r176002 r176108 2270 2270 } 2271 2271 2272 bool HTMLMediaElement::supportsSave() const2273 {2274 return m_player ? m_player->supportsSave() : false;2275 }2276 2277 2272 bool HTMLMediaElement::supportsScanning() const 2278 2273 { … … 6118 6113 { 6119 6114 if (m_player) 6120 return m_player->setShouldBufferData(shouldBuffer); 6121 } 6122 6123 } 6124 6125 #endif 6115 m_player->setShouldBufferData(shouldBuffer); 6116 } 6117 6118 bool HTMLMediaElement::canSaveMediaData() const 6119 { 6120 if (m_player) 6121 return m_player->canSaveMediaData(); 6122 6123 return false; 6124 } 6125 6126 } 6127 6128 #endif -
trunk/Source/WebCore/html/HTMLMediaElement.h
r176002 r176108 119 119 virtual bool supportsFullscreen() const override { return false; }; 120 120 121 virtual bool supportsSave() const;122 121 virtual bool supportsScanning() const override; 123 122 123 bool canSaveMediaData() const; 124 124 125 virtual bool doesHaveAttribute(const AtomicString&, AtomicString* value = nullptr) const override; 125 126 -
trunk/Source/WebCore/page/ContextMenuController.cpp
r175435 r176108 891 891 appendItem(CopyMediaLinkItem, m_contextMenu.get()); 892 892 appendItem(OpenMediaInNewWindowItem, m_contextMenu.get()); 893 if ( loader.client().canHandleRequest(ResourceRequest(mediaURL)))893 if (m_context.hitTestResult().isDownloadableMedia() && loader.client().canHandleRequest(ResourceRequest(mediaURL))) 894 894 appendItem(DownloadMediaItem, m_contextMenu.get()); 895 895 } -
trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp
r176002 r176108 553 553 } 554 554 555 bool MediaPlayer:: supportsSave() const556 { 557 return m_private-> supportsSave();555 bool MediaPlayer::canSaveMediaData() const 556 { 557 return m_private->canSaveMediaData(); 558 558 } 559 559 -
trunk/Source/WebCore/platform/graphics/MediaPlayer.h
r176002 r176108 294 294 295 295 bool supportsFullscreen() const; 296 bool supportsSave() const;297 296 bool supportsScanning() const; 297 bool canSaveMediaData() const; 298 298 bool requiresImmediateCompositing() const; 299 299 bool doesHaveAttribute(const AtomicString&, AtomicString* value = nullptr) const; -
trunk/Source/WebCore/platform/graphics/MediaPlayerPrivate.h
r176002 r176108 71 71 72 72 virtual bool supportsFullscreen() const { return false; } 73 virtual bool supportsSave() const { return false; }74 73 virtual bool supportsScanning() const { return false; } 75 74 virtual bool requiresImmediateCompositing() const { return false; } 75 76 virtual bool canSaveMediaData() const { return false; } 76 77 77 78 virtual IntSize naturalSize() const = 0; -
trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp
r175526 r176108 1048 1048 #endif 1049 1049 1050 URL MediaPlayerPrivateAVFoundation::resolvedURL() const 1051 { 1052 if (!m_assetURL.length()) 1053 return URL(); 1054 1055 return URL(ParsedURLString, m_assetURL); 1056 } 1057 1058 bool MediaPlayerPrivateAVFoundation::canSaveMediaData() const 1059 { 1060 URL url = resolvedURL(); 1061 1062 if (url.isLocalFile()) 1063 return true; 1064 1065 if (!url.protocolIsInHTTPFamily()) 1066 return false; 1067 1068 if (isLiveStream()) 1069 return false; 1070 1071 return true; 1072 } 1073 1050 1074 } // namespace WebCore 1051 1075 -
trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h
r176002 r176108 192 192 virtual bool shouldMaintainAspectRatio() const override { return m_shouldMaintainAspectRatio; } 193 193 virtual void setShouldMaintainAspectRatio(bool) override; 194 virtual bool canSaveMediaData() const override; 194 195 195 196 virtual MediaPlayer::MovieLoadType movieLoadType() const; … … 303 304 void clearTextTracks(); 304 305 Vector<RefPtr<InbandTextTrackPrivateAVF>> m_textTracks; 306 307 virtual URL resolvedURL() const; 305 308 306 309 private: -
trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h
r176002 r176108 282 282 virtual double minFastReverseRate() const override { return m_cachedCanPlayFastReverse ? -std::numeric_limits<double>::infinity() : 0.0; } 283 283 284 virtual URL resolvedURL() const override; 285 284 286 WeakPtrFactory<MediaPlayerPrivateAVFoundationObjC> m_weakPtrFactory; 285 287 -
trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm
r176105 r176108 2846 2846 } 2847 2847 2848 URL MediaPlayerPrivateAVFoundationObjC::resolvedURL() const 2849 { 2850 if (!m_avAsset) 2851 return MediaPlayerPrivateAVFoundation::resolvedURL(); 2852 2853 return URL([m_avAsset resolvedURL]); 2854 } 2855 2848 2856 NSArray* assetMetadataKeyNames() 2849 2857 { -
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
r175719 r176108 1921 1921 } 1922 1922 1923 bool MediaPlayerPrivateGStreamer::canSaveMediaData() const 1924 { 1925 if (isLiveStream()) 1926 return false; 1927 1928 if (m_url.isLocalFile()) 1929 return true; 1930 1931 if (m_url.protocolIsInHTTPFamily()) 1932 return true; 1933 1934 return false; 1935 } 1936 1923 1937 } 1924 1938 -
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
r175719 r176108 165 165 virtual bool isLiveStream() const { return m_isStreaming; } 166 166 virtual bool didPassCORSAccessCheck() const; 167 virtual bool canSaveMediaData() const override; 167 168 168 169 private: -
trunk/Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.h
r176002 r176108 135 135 bool hasSingleSecurityOrigin() const; 136 136 MediaPlayer::MovieLoadType movieLoadType() const; 137 138 virtual bool canSaveMediaData() const override; 137 139 138 140 void createQTMovie(const String& url); -
trunk/Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm
r176002 r176108 1518 1518 } 1519 1519 1520 bool MediaPlayerPrivateQTKit::canSaveMediaData() const 1521 { 1522 URL url; 1523 1524 if (durationMediaTime().isPositiveInfinite()) 1525 return false; 1526 1527 if (m_qtMovie) 1528 url = URL(wkQTMovieResolvedURL(m_qtMovie.get())); 1529 else 1530 url = URL(ParsedURLString, m_movieURL); 1531 1532 if (url.isLocalFile()) 1533 return true; 1534 1535 if (url.protocolIsInHTTPFamily()) 1536 return true; 1537 1538 return false; 1539 } 1540 1520 1541 } // namespace WebCore 1521 1542 -
trunk/Source/WebCore/rendering/HitTestResult.cpp
r175779 r176108 508 508 bool HitTestResult::isDownloadableMedia() const 509 509 { 510 // FIXME: We should actually answer instead of always returning true for media elements. 511 // https://bugs.webkit.org/show_bug.cgi?id=138530 512 return mediaElement() ? true : false; 510 #if ENABLE(VIDEO) 511 if (HTMLMediaElement* mediaElt = mediaElement()) 512 return mediaElt->canSaveMediaData(); 513 #endif 514 515 return false; 513 516 } 514 517 -
trunk/Source/WebKit2/ChangeLog
r176105 r176108 1 2014-11-13 Eric Carlson <eric.carlson@apple.com> 2 3 Context menus should not offer the "Download video" option for videos that cannot 4 be downloaded 5 https://bugs.webkit.org/show_bug.cgi?id=138530 6 -and corresponding- 7 rdar://problem/18919130 8 9 Reviewed by Tim Horton. 10 11 Expose isDownloadableMedia() to the InjectedBundleHitTestResult. 12 * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp: 13 (WKBundleHitTestResultIsDownloadableMedia): 14 * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h: 15 * WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp: 16 (WebKit::InjectedBundleHitTestResult::isDownloadableMedia): 17 * WebProcess/InjectedBundle/InjectedBundleHitTestResult.h: 18 1 19 2014-11-13 Daniel Bates <dabates@apple.com> 2 20 -
trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp
r172780 r176108 91 91 } 92 92 93 bool WKBundleHitTestResultIsDownloadableMedia(WKBundleHitTestResultRef hitTestResultRef) 94 { 95 return toImpl(hitTestResultRef)->isDownloadableMedia(); 96 } 97 93 98 WKBundleHitTestResultMediaType WKBundleHitTestResultGetMediaType(WKBundleHitTestResultRef hitTestResultRef) 94 99 { -
trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h
r172780 r176108 55 55 WK_EXPORT bool WKBundleHitTestResultMediaIsInFullscreen(WKBundleHitTestResultRef hitTestResult); 56 56 WK_EXPORT bool WKBundleHitTestResultMediaHasAudio(WKBundleHitTestResultRef hitTestResult); 57 WK_EXPORT bool WKBundleHitTestResultIsDownloadableMedia(WKBundleHitTestResultRef hitTestResultRef); 57 58 WK_EXPORT WKBundleHitTestResultMediaType WKBundleHitTestResultGetMediaType(WKBundleHitTestResultRef hitTestResult); 58 59 -
trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp
r174225 r176108 109 109 } 110 110 111 bool InjectedBundleHitTestResult::isDownloadableMedia() const 112 { 113 return m_hitTestResult.isDownloadableMedia(); 114 } 115 111 116 BundleHitTestResultMediaType InjectedBundleHitTestResult::mediaType() const 112 117 { -
trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResult.h
r172780 r176108 56 56 bool mediaIsInFullscreen() const; 57 57 bool mediaHasAudio() const; 58 bool isDownloadableMedia() const; 58 59 BundleHitTestResultMediaType mediaType() const; 59 60
Note:
See TracChangeset
for help on using the changeset viewer.