| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights | 2 * Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights |
| 3 * reserved. | 3 * 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 | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 70 #include "core/layout/api/LayoutViewItem.h" | 70 #include "core/layout/api/LayoutViewItem.h" |
| 71 #include "core/layout/compositing/PaintLayerCompositor.h" | 71 #include "core/layout/compositing/PaintLayerCompositor.h" |
| 72 #include "core/loader/FrameLoader.h" | 72 #include "core/loader/FrameLoader.h" |
| 73 #include "core/loader/FrameLoaderClient.h" | 73 #include "core/loader/FrameLoaderClient.h" |
| 74 #include "core/page/ChromeClient.h" | 74 #include "core/page/ChromeClient.h" |
| 75 #include "core/page/NetworkStateNotifier.h" | 75 #include "core/page/NetworkStateNotifier.h" |
| 76 #include "platform/ContentType.h" | 76 #include "platform/ContentType.h" |
| 77 #include "platform/Histogram.h" | 77 #include "platform/Histogram.h" |
| 78 #include "platform/LayoutTestSupport.h" | 78 #include "platform/LayoutTestSupport.h" |
| 79 #include "platform/MIMETypeFromURL.h" | 79 #include "platform/MIMETypeFromURL.h" |
| 80 #include "platform/MIMETypeRegistry.h" | |
| 81 #include "platform/RuntimeEnabledFeatures.h" | 80 #include "platform/RuntimeEnabledFeatures.h" |
| 82 #include "platform/UserGestureIndicator.h" | 81 #include "platform/UserGestureIndicator.h" |
| 83 #include "platform/audio/AudioBus.h" | 82 #include "platform/audio/AudioBus.h" |
| 84 #include "platform/audio/AudioSourceProviderClient.h" | 83 #include "platform/audio/AudioSourceProviderClient.h" |
| 85 #include "platform/graphics/GraphicsLayer.h" | 84 #include "platform/graphics/GraphicsLayer.h" |
| 86 #include "platform/mediastream/MediaStreamDescriptor.h" | 85 #include "platform/mediastream/MediaStreamDescriptor.h" |
| 87 #include "platform/weborigin/SecurityOrigin.h" | 86 #include "platform/weborigin/SecurityOrigin.h" |
| 88 #include "public/platform/Platform.h" | 87 #include "public/platform/Platform.h" |
| 89 #include "public/platform/WebAudioSourceProvider.h" | 88 #include "public/platform/WebAudioSourceProvider.h" |
| 90 #include "public/platform/WebContentDecryptionModule.h" | 89 #include "public/platform/WebContentDecryptionModule.h" |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 // If no MIME type is specified, always attempt to load. | 255 // If no MIME type is specified, always attempt to load. |
| 257 if (contentMIMEType.isEmpty()) | 256 if (contentMIMEType.isEmpty()) |
| 258 return true; | 257 return true; |
| 259 | 258 |
| 260 // 4.8.10.3 MIME types - In the absence of a specification to the contrary, | 259 // 4.8.10.3 MIME types - In the absence of a specification to the contrary, |
| 261 // the MIME type "application/octet-stream" when used with parameters, e.g. | 260 // the MIME type "application/octet-stream" when used with parameters, e.g. |
| 262 // "application/octet-stream;codecs=theora", is a type that the user agent | 261 // "application/octet-stream;codecs=theora", is a type that the user agent |
| 263 // knows it cannot render. | 262 // knows it cannot render. |
| 264 if (contentMIMEType != "application/octet-stream" || | 263 if (contentMIMEType != "application/octet-stream" || |
| 265 contentTypeCodecs.isEmpty()) { | 264 contentTypeCodecs.isEmpty()) { |
| 266 WebMimeRegistry::SupportsType supported = | 265 return MIMETypeRegistry::supportsMediaMIMEType(contentMIMEType, |
| 267 Platform::current()->mimeRegistry()->supportsMediaMIMEType( | 266 contentTypeCodecs); |
| 268 contentMIMEType, contentTypeCodecs); | |
| 269 return supported > WebMimeRegistry::IsNotSupported; | |
| 270 } | 267 } |
| 271 | 268 |
| 272 return false; | 269 return false; |
| 273 } | 270 } |
| 274 | 271 |
| 275 String preloadTypeToString(WebMediaPlayer::Preload preloadType) { | 272 String preloadTypeToString(WebMediaPlayer::Preload preloadType) { |
| 276 switch (preloadType) { | 273 switch (preloadType) { |
| 277 case WebMediaPlayer::PreloadNone: | 274 case WebMediaPlayer::PreloadNone: |
| 278 return "none"; | 275 return "none"; |
| 279 case WebMediaPlayer::PreloadMetaData: | 276 case WebMediaPlayer::PreloadMetaData: |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 351 | 348 |
| 352 Member<HTMLMediaElement> m_element; | 349 Member<HTMLMediaElement> m_element; |
| 353 }; | 350 }; |
| 354 | 351 |
| 355 void HTMLMediaElement::recordAutoplayMetric(AutoplayMetrics metric) { | 352 void HTMLMediaElement::recordAutoplayMetric(AutoplayMetrics metric) { |
| 356 DEFINE_STATIC_LOCAL(EnumerationHistogram, autoplayHistogram, | 353 DEFINE_STATIC_LOCAL(EnumerationHistogram, autoplayHistogram, |
| 357 ("Blink.MediaElement.Autoplay", NumberOfAutoplayMetrics)); | 354 ("Blink.MediaElement.Autoplay", NumberOfAutoplayMetrics)); |
| 358 autoplayHistogram.count(metric); | 355 autoplayHistogram.count(metric); |
| 359 } | 356 } |
| 360 | 357 |
| 361 WebMimeRegistry::SupportsType HTMLMediaElement::supportsType( | 358 MIMETypeRegistry::SupportsType HTMLMediaElement::supportsType( |
| 362 const ContentType& contentType) { | 359 const ContentType& contentType) { |
| 363 DEFINE_STATIC_LOCAL(const String, codecs, ("codecs")); | 360 DEFINE_STATIC_LOCAL(const String, codecs, ("codecs")); |
| 364 | 361 |
| 365 String type = contentType.type().lower(); | 362 String type = contentType.type().lower(); |
| 366 // The codecs string is not lower-cased because MP4 values are case sensitive | 363 // The codecs string is not lower-cased because MP4 values are case sensitive |
| 367 // per http://tools.ietf.org/html/rfc4281#page-7. | 364 // per http://tools.ietf.org/html/rfc4281#page-7. |
| 368 String typeCodecs = contentType.parameter(codecs); | 365 String typeCodecs = contentType.parameter(codecs); |
| 369 | 366 |
| 370 if (type.isEmpty()) | 367 if (type.isEmpty()) |
| 371 return WebMimeRegistry::IsNotSupported; | 368 return MIMETypeRegistry::IsNotSupported; |
| 372 | 369 |
| 373 // 4.8.10.3 MIME types - The canPlayType(type) method must return the empty | 370 // 4.8.10.3 MIME types - The canPlayType(type) method must return the empty |
| 374 // string if type is a type that the user agent knows it cannot render or is | 371 // string if type is a type that the user agent knows it cannot render or is |
| 375 // the type "application/octet-stream" | 372 // the type "application/octet-stream" |
| 376 if (type == "application/octet-stream") | 373 if (type == "application/octet-stream") |
| 377 return WebMimeRegistry::IsNotSupported; | 374 return MIMETypeRegistry::IsNotSupported; |
| 378 | 375 |
| 379 return Platform::current()->mimeRegistry()->supportsMediaMIMEType(type, | 376 return MIMETypeRegistry::supportsMediaMIMEType(type, typeCodecs); |
| 380 typeCodecs); | |
| 381 } | 377 } |
| 382 | 378 |
| 383 URLRegistry* HTMLMediaElement::s_mediaStreamRegistry = 0; | 379 URLRegistry* HTMLMediaElement::s_mediaStreamRegistry = 0; |
| 384 | 380 |
| 385 void HTMLMediaElement::setMediaStreamRegistry(URLRegistry* registry) { | 381 void HTMLMediaElement::setMediaStreamRegistry(URLRegistry* registry) { |
| 386 DCHECK(!s_mediaStreamRegistry); | 382 DCHECK(!s_mediaStreamRegistry); |
| 387 s_mediaStreamRegistry = registry; | 383 s_mediaStreamRegistry = registry; |
| 388 } | 384 } |
| 389 | 385 |
| 390 bool HTMLMediaElement::isMediaStreamURL(const String& url) { | 386 bool HTMLMediaElement::isMediaStreamURL(const String& url) { |
| (...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 714 BLINK_MEDIA_LOG << "setSrcObject(" << (void*)this << ")"; | 710 BLINK_MEDIA_LOG << "setSrcObject(" << (void*)this << ")"; |
| 715 m_srcObject = srcObject; | 711 m_srcObject = srcObject; |
| 716 invokeLoadAlgorithm(); | 712 invokeLoadAlgorithm(); |
| 717 } | 713 } |
| 718 | 714 |
| 719 HTMLMediaElement::NetworkState HTMLMediaElement::getNetworkState() const { | 715 HTMLMediaElement::NetworkState HTMLMediaElement::getNetworkState() const { |
| 720 return m_networkState; | 716 return m_networkState; |
| 721 } | 717 } |
| 722 | 718 |
| 723 String HTMLMediaElement::canPlayType(const String& mimeType) const { | 719 String HTMLMediaElement::canPlayType(const String& mimeType) const { |
| 724 WebMimeRegistry::SupportsType support = supportsType(ContentType(mimeType)); | 720 MIMETypeRegistry::SupportsType support = supportsType(ContentType(mimeType)); |
| 725 String canPlay; | 721 String canPlay; |
| 726 | 722 |
| 727 // 4.8.10.3 | 723 // 4.8.10.3 |
| 728 switch (support) { | 724 switch (support) { |
| 729 case WebMimeRegistry::IsNotSupported: | 725 case MIMETypeRegistry::IsNotSupported: |
| 730 canPlay = emptyString(); | 726 canPlay = emptyString(); |
| 731 break; | 727 break; |
| 732 case WebMimeRegistry::MayBeSupported: | 728 case MIMETypeRegistry::MayBeSupported: |
| 733 canPlay = "maybe"; | 729 canPlay = "maybe"; |
| 734 break; | 730 break; |
| 735 case WebMimeRegistry::IsSupported: | 731 case MIMETypeRegistry::IsSupported: |
| 736 canPlay = "probably"; | 732 canPlay = "probably"; |
| 737 break; | 733 break; |
| 738 } | 734 } |
| 739 | 735 |
| 740 BLINK_MEDIA_LOG << "canPlayType(" << (void*)this << ", " << mimeType | 736 BLINK_MEDIA_LOG << "canPlayType(" << (void*)this << ", " << mimeType |
| 741 << ") -> " << canPlay; | 737 << ") -> " << canPlay; |
| 742 | 738 |
| 743 return canPlay; | 739 return canPlay; |
| 744 } | 740 } |
| 745 | 741 |
| (...skipping 3417 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4163 | 4159 |
| 4164 IntRect HTMLMediaElement::AutoplayHelperClientImpl::absoluteBoundingBoxRect() | 4160 IntRect HTMLMediaElement::AutoplayHelperClientImpl::absoluteBoundingBoxRect() |
| 4165 const { | 4161 const { |
| 4166 IntRect result; | 4162 IntRect result; |
| 4167 if (LayoutObject* object = m_element->layoutObject()) | 4163 if (LayoutObject* object = m_element->layoutObject()) |
| 4168 result = object->absoluteBoundingBoxRect(); | 4164 result = object->absoluteBoundingBoxRect(); |
| 4169 return result; | 4165 return result; |
| 4170 } | 4166 } |
| 4171 | 4167 |
| 4172 } // namespace blink | 4168 } // namespace blink |
| OLD | NEW |