Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009, 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2009, 2012 Google Inc. All rights reserved. |
| 3 * Copyright (C) 2011 Apple Inc. All rights reserved. | 3 * Copyright (C) 2011 Apple Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
| 7 * met: | 7 * met: |
| 8 * | 8 * |
| 9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 769 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 780 WebMediaPlayerClient* client) { | 780 WebMediaPlayerClient* client) { |
| 781 WebLocalFrameImpl* webFrame = | 781 WebLocalFrameImpl* webFrame = |
| 782 WebLocalFrameImpl::fromFrame(htmlMediaElement.document().frame()); | 782 WebLocalFrameImpl::fromFrame(htmlMediaElement.document().frame()); |
| 783 | 783 |
| 784 if (!webFrame || !webFrame->client()) | 784 if (!webFrame || !webFrame->client()) |
| 785 return nullptr; | 785 return nullptr; |
| 786 | 786 |
| 787 HTMLMediaElementEncryptedMedia& encryptedMedia = | 787 HTMLMediaElementEncryptedMedia& encryptedMedia = |
| 788 HTMLMediaElementEncryptedMedia::from(htmlMediaElement); | 788 HTMLMediaElementEncryptedMedia::from(htmlMediaElement); |
| 789 WebString sinkId(HTMLMediaElementAudioOutputDevice::sinkId(htmlMediaElement)); | 789 WebString sinkId(HTMLMediaElementAudioOutputDevice::sinkId(htmlMediaElement)); |
| 790 return wrapUnique(webFrame->client()->createMediaPlayer( | 790 std::unique_ptr<WebMediaPlayer> mediaPlayer = |
| 791 source, client, &encryptedMedia, encryptedMedia.contentDecryptionModule(), | 791 wrapUnique(webFrame->client()->createMediaPlayer( |
| 792 sinkId)); | 792 source, client, &encryptedMedia, |
| 793 encryptedMedia.contentDecryptionModule(), sinkId)); | |
| 794 | |
| 795 // Notify WebMediaPlayer: if the current media is active fullscreen element; | |
| 796 // or is a descendant of the fullscreen element and covers most of the window. | |
| 797 Element* fullscreenElement = | |
| 798 Fullscreen::currentFullScreenElementFrom(htmlMediaElement.document()); | |
| 799 if (fullscreenElement == htmlMediaElement) { | |
| 800 mediaPlayer->enteredFullscreen(); | |
|
foolip
2016/10/11 09:37:13
Does the case where the media element itself is th
xjz
2016/10/11 19:27:25
It's currently handled same for Media Remoting.
foolip
2016/10/12 11:51:42
Yes, but wouldn't it be covered by any heuristic u
xjz
2016/10/12 17:40:57
The heuristic used for when the fullscreen element
| |
| 801 } else if (fullscreenElement->contains(&htmlMediaElement) && | |
| 802 htmlMediaElement.clientWidth() >= | |
| 803 htmlMediaElement.document().domWindow()->innerWidth() * 0.9 && | |
|
foolip
2016/10/11 09:37:13
This check could pass for two videos where one obs
xjz
2016/10/11 19:27:26
Yes, it could be. I think this case is not common
| |
| 804 htmlMediaElement.clientHeight() >= | |
| 805 htmlMediaElement.document().domWindow()->innerHeight() * 0.9) { | |
| 806 mediaPlayer->enterFullWindow(); | |
| 807 } | |
| 808 | |
| 809 return mediaPlayer; | |
| 793 } | 810 } |
| 794 | 811 |
| 795 ObjectContentType FrameLoaderClientImpl::getObjectContentType( | 812 ObjectContentType FrameLoaderClientImpl::getObjectContentType( |
| 796 const KURL& url, | 813 const KURL& url, |
| 797 const String& explicitMimeType, | 814 const String& explicitMimeType, |
| 798 bool shouldPreferPlugInsForImages) { | 815 bool shouldPreferPlugInsForImages) { |
| 799 // This code is based on Apple's implementation from | 816 // This code is based on Apple's implementation from |
| 800 // WebCoreSupport/WebFrameBridge.mm. | 817 // WebCoreSupport/WebFrameBridge.mm. |
| 801 | 818 |
| 802 String mimeType = explicitMimeType; | 819 String mimeType = explicitMimeType; |
| (...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 991 WebDevToolsAgentImpl* FrameLoaderClientImpl::devToolsAgent() { | 1008 WebDevToolsAgentImpl* FrameLoaderClientImpl::devToolsAgent() { |
| 992 return WebLocalFrameImpl::fromFrame(m_webFrame->frame()->localFrameRoot()) | 1009 return WebLocalFrameImpl::fromFrame(m_webFrame->frame()->localFrameRoot()) |
| 993 ->devToolsAgentImpl(); | 1010 ->devToolsAgentImpl(); |
| 994 } | 1011 } |
| 995 | 1012 |
| 996 KURL FrameLoaderClientImpl::overrideFlashEmbedWithHTML(const KURL& url) { | 1013 KURL FrameLoaderClientImpl::overrideFlashEmbedWithHTML(const KURL& url) { |
| 997 return m_webFrame->client()->overrideFlashEmbedWithHTML(WebURL(url)); | 1014 return m_webFrame->client()->overrideFlashEmbedWithHTML(WebURL(url)); |
| 998 } | 1015 } |
| 999 | 1016 |
| 1000 } // namespace blink | 1017 } // namespace blink |
| OLD | NEW |