| 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 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 96 #include "public/web/WebPluginParams.h" | 96 #include "public/web/WebPluginParams.h" |
| 97 #include "public/web/WebViewClient.h" | 97 #include "public/web/WebViewClient.h" |
| 98 #include "web/DevToolsEmulator.h" | 98 #include "web/DevToolsEmulator.h" |
| 99 #include "web/SharedWorkerRepositoryClientImpl.h" | 99 #include "web/SharedWorkerRepositoryClientImpl.h" |
| 100 #include "web/WebDataSourceImpl.h" | 100 #include "web/WebDataSourceImpl.h" |
| 101 #include "web/WebDevToolsAgentImpl.h" | 101 #include "web/WebDevToolsAgentImpl.h" |
| 102 #include "web/WebDevToolsFrontendImpl.h" | 102 #include "web/WebDevToolsFrontendImpl.h" |
| 103 #include "web/WebLocalFrameImpl.h" | 103 #include "web/WebLocalFrameImpl.h" |
| 104 #include "web/WebPluginContainerImpl.h" | 104 #include "web/WebPluginContainerImpl.h" |
| 105 #include "web/WebViewImpl.h" | 105 #include "web/WebViewImpl.h" |
| 106 #include "wtf/PtrUtil.h" |
| 106 #include "wtf/StringExtras.h" | 107 #include "wtf/StringExtras.h" |
| 107 #include "wtf/text/CString.h" | 108 #include "wtf/text/CString.h" |
| 108 #include "wtf/text/WTFString.h" | 109 #include "wtf/text/WTFString.h" |
| 110 #include <memory> |
| 109 #include <v8.h> | 111 #include <v8.h> |
| 110 | 112 |
| 111 namespace blink { | 113 namespace blink { |
| 112 | 114 |
| 113 namespace { | 115 namespace { |
| 114 | 116 |
| 115 // Convenience helper for frame tree helpers in FrameClient to reduce the amount | 117 // Convenience helper for frame tree helpers in FrameClient to reduce the amount |
| 116 // of null-checking boilerplate code. Since the frame tree is maintained in the | 118 // of null-checking boilerplate code. Since the frame tree is maintained in the |
| 117 // web/ layer, the frame tree helpers often have to deal with null WebFrames: | 119 // web/ layer, the frame tree helpers often have to deal with null WebFrames: |
| 118 // for example, a frame with no parent will return null for WebFrame::parent(). | 120 // for example, a frame with no parent will return null for WebFrame::parent(). |
| (...skipping 677 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 796 | 798 |
| 797 if (!webPlugin->initialize(container)) | 799 if (!webPlugin->initialize(container)) |
| 798 return nullptr; | 800 return nullptr; |
| 799 | 801 |
| 800 if (policy != AllowDetachedPlugin && !element->layoutObject()) | 802 if (policy != AllowDetachedPlugin && !element->layoutObject()) |
| 801 return nullptr; | 803 return nullptr; |
| 802 | 804 |
| 803 return container; | 805 return container; |
| 804 } | 806 } |
| 805 | 807 |
| 806 PassOwnPtr<WebMediaPlayer> FrameLoaderClientImpl::createWebMediaPlayer( | 808 std::unique_ptr<WebMediaPlayer> FrameLoaderClientImpl::createWebMediaPlayer( |
| 807 HTMLMediaElement& htmlMediaElement, | 809 HTMLMediaElement& htmlMediaElement, |
| 808 const WebMediaPlayerSource& source, | 810 const WebMediaPlayerSource& source, |
| 809 WebMediaPlayerClient* client) | 811 WebMediaPlayerClient* client) |
| 810 { | 812 { |
| 811 WebLocalFrameImpl* webFrame = WebLocalFrameImpl::fromFrame( | 813 WebLocalFrameImpl* webFrame = WebLocalFrameImpl::fromFrame( |
| 812 htmlMediaElement.document().frame()); | 814 htmlMediaElement.document().frame()); |
| 813 | 815 |
| 814 if (!webFrame || !webFrame->client()) | 816 if (!webFrame || !webFrame->client()) |
| 815 return nullptr; | 817 return nullptr; |
| 816 | 818 |
| 817 WebMediaSession* webMediaSession = nullptr; | 819 WebMediaSession* webMediaSession = nullptr; |
| 818 if (MediaSession* mediaSession = HTMLMediaElementMediaSession::session(htmlM
ediaElement)) | 820 if (MediaSession* mediaSession = HTMLMediaElementMediaSession::session(htmlM
ediaElement)) |
| 819 webMediaSession = mediaSession->getWebMediaSession(); | 821 webMediaSession = mediaSession->getWebMediaSession(); |
| 820 | 822 |
| 821 HTMLMediaElementEncryptedMedia& encryptedMedia = HTMLMediaElementEncryptedMe
dia::from(htmlMediaElement); | 823 HTMLMediaElementEncryptedMedia& encryptedMedia = HTMLMediaElementEncryptedMe
dia::from(htmlMediaElement); |
| 822 WebString sinkId(HTMLMediaElementAudioOutputDevice::sinkId(htmlMediaElement)
); | 824 WebString sinkId(HTMLMediaElementAudioOutputDevice::sinkId(htmlMediaElement)
); |
| 823 return adoptPtr(webFrame->client()->createMediaPlayer(source, | 825 return wrapUnique(webFrame->client()->createMediaPlayer(source, |
| 824 client, &encryptedMedia, | 826 client, &encryptedMedia, |
| 825 encryptedMedia.contentDecryptionModule(), sinkId, webMediaSession)); | 827 encryptedMedia.contentDecryptionModule(), sinkId, webMediaSession)); |
| 826 } | 828 } |
| 827 | 829 |
| 828 PassOwnPtr<WebMediaSession> FrameLoaderClientImpl::createWebMediaSession() | 830 std::unique_ptr<WebMediaSession> FrameLoaderClientImpl::createWebMediaSession() |
| 829 { | 831 { |
| 830 if (!m_webFrame->client()) | 832 if (!m_webFrame->client()) |
| 831 return nullptr; | 833 return nullptr; |
| 832 | 834 |
| 833 return adoptPtr(m_webFrame->client()->createMediaSession()); | 835 return wrapUnique(m_webFrame->client()->createMediaSession()); |
| 834 } | 836 } |
| 835 | 837 |
| 836 ObjectContentType FrameLoaderClientImpl::getObjectContentType( | 838 ObjectContentType FrameLoaderClientImpl::getObjectContentType( |
| 837 const KURL& url, | 839 const KURL& url, |
| 838 const String& explicitMimeType, | 840 const String& explicitMimeType, |
| 839 bool shouldPreferPlugInsForImages) | 841 bool shouldPreferPlugInsForImages) |
| 840 { | 842 { |
| 841 // This code is based on Apple's implementation from | 843 // This code is based on Apple's implementation from |
| 842 // WebCoreSupport/WebFrameBridge.mm. | 844 // WebCoreSupport/WebFrameBridge.mm. |
| 843 | 845 |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 956 | 958 |
| 957 return enabledPerSettings; | 959 return enabledPerSettings; |
| 958 } | 960 } |
| 959 | 961 |
| 960 void FrameLoaderClientImpl::dispatchWillInsertBody() | 962 void FrameLoaderClientImpl::dispatchWillInsertBody() |
| 961 { | 963 { |
| 962 if (m_webFrame->client()) | 964 if (m_webFrame->client()) |
| 963 m_webFrame->client()->willInsertBody(m_webFrame); | 965 m_webFrame->client()->willInsertBody(m_webFrame); |
| 964 } | 966 } |
| 965 | 967 |
| 966 PassOwnPtr<WebServiceWorkerProvider> FrameLoaderClientImpl::createServiceWorkerP
rovider() | 968 std::unique_ptr<WebServiceWorkerProvider> FrameLoaderClientImpl::createServiceWo
rkerProvider() |
| 967 { | 969 { |
| 968 if (!m_webFrame->client()) | 970 if (!m_webFrame->client()) |
| 969 return nullptr; | 971 return nullptr; |
| 970 return adoptPtr(m_webFrame->client()->createServiceWorkerProvider()); | 972 return wrapUnique(m_webFrame->client()->createServiceWorkerProvider()); |
| 971 } | 973 } |
| 972 | 974 |
| 973 bool FrameLoaderClientImpl::isControlledByServiceWorker(DocumentLoader& loader) | 975 bool FrameLoaderClientImpl::isControlledByServiceWorker(DocumentLoader& loader) |
| 974 { | 976 { |
| 975 return m_webFrame->client() && m_webFrame->client()->isControlledByServiceWo
rker(*WebDataSourceImpl::fromDocumentLoader(&loader)); | 977 return m_webFrame->client() && m_webFrame->client()->isControlledByServiceWo
rker(*WebDataSourceImpl::fromDocumentLoader(&loader)); |
| 976 } | 978 } |
| 977 | 979 |
| 978 int64_t FrameLoaderClientImpl::serviceWorkerID(DocumentLoader& loader) | 980 int64_t FrameLoaderClientImpl::serviceWorkerID(DocumentLoader& loader) |
| 979 { | 981 { |
| 980 if (!m_webFrame->client()) | 982 if (!m_webFrame->client()) |
| 981 return -1; | 983 return -1; |
| 982 return m_webFrame->client()->serviceWorkerID(*WebDataSourceImpl::fromDocumen
tLoader(&loader)); | 984 return m_webFrame->client()->serviceWorkerID(*WebDataSourceImpl::fromDocumen
tLoader(&loader)); |
| 983 } | 985 } |
| 984 | 986 |
| 985 SharedWorkerRepositoryClient* FrameLoaderClientImpl::sharedWorkerRepositoryClien
t() | 987 SharedWorkerRepositoryClient* FrameLoaderClientImpl::sharedWorkerRepositoryClien
t() |
| 986 { | 988 { |
| 987 return m_webFrame->sharedWorkerRepositoryClient(); | 989 return m_webFrame->sharedWorkerRepositoryClient(); |
| 988 } | 990 } |
| 989 | 991 |
| 990 PassOwnPtr<WebApplicationCacheHost> FrameLoaderClientImpl::createApplicationCach
eHost(WebApplicationCacheHostClient* client) | 992 std::unique_ptr<WebApplicationCacheHost> FrameLoaderClientImpl::createApplicatio
nCacheHost(WebApplicationCacheHostClient* client) |
| 991 { | 993 { |
| 992 if (!m_webFrame->client()) | 994 if (!m_webFrame->client()) |
| 993 return nullptr; | 995 return nullptr; |
| 994 return adoptPtr(m_webFrame->client()->createApplicationCacheHost(client)); | 996 return wrapUnique(m_webFrame->client()->createApplicationCacheHost(client)); |
| 995 } | 997 } |
| 996 | 998 |
| 997 void FrameLoaderClientImpl::dispatchDidChangeManifest() | 999 void FrameLoaderClientImpl::dispatchDidChangeManifest() |
| 998 { | 1000 { |
| 999 if (m_webFrame->client()) | 1001 if (m_webFrame->client()) |
| 1000 m_webFrame->client()->didChangeManifest(); | 1002 m_webFrame->client()->didChangeManifest(); |
| 1001 } | 1003 } |
| 1002 | 1004 |
| 1003 unsigned FrameLoaderClientImpl::backForwardLength() | 1005 unsigned FrameLoaderClientImpl::backForwardLength() |
| 1004 { | 1006 { |
| (...skipping 24 matching lines...) Expand all Loading... |
| 1029 } | 1031 } |
| 1030 | 1032 |
| 1031 WebEffectiveConnectionType FrameLoaderClientImpl::getEffectiveConnectionType() | 1033 WebEffectiveConnectionType FrameLoaderClientImpl::getEffectiveConnectionType() |
| 1032 { | 1034 { |
| 1033 if (m_webFrame->client()) | 1035 if (m_webFrame->client()) |
| 1034 return m_webFrame->client()->getEffectiveConnectionType(); | 1036 return m_webFrame->client()->getEffectiveConnectionType(); |
| 1035 return WebEffectiveConnectionType::TypeUnknown; | 1037 return WebEffectiveConnectionType::TypeUnknown; |
| 1036 } | 1038 } |
| 1037 | 1039 |
| 1038 } // namespace blink | 1040 } // namespace blink |
| OLD | NEW |