| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007, 2008, 2009, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007, 2008, 2009, 2010 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 | 25 |
| 26 #include "config.h" | 26 #include "config.h" |
| 27 #include "core/html/HTMLVideoElement.h" | 27 #include "core/html/HTMLVideoElement.h" |
| 28 | 28 |
| 29 #include "bindings/core/v8/ExceptionState.h" | 29 #include "bindings/core/v8/ExceptionState.h" |
| 30 #include "core/CSSPropertyNames.h" | 30 #include "core/CSSPropertyNames.h" |
| 31 #include "core/HTMLNames.h" | 31 #include "core/HTMLNames.h" |
| 32 #include "core/dom/Attribute.h" | 32 #include "core/dom/Attribute.h" |
| 33 #include "core/dom/Document.h" | 33 #include "core/dom/Document.h" |
| 34 #include "core/dom/ExceptionCode.h" | 34 #include "core/dom/ExceptionCode.h" |
| 35 #include "core/dom/Fullscreen.h" |
| 35 #include "core/dom/shadow/ShadowRoot.h" | 36 #include "core/dom/shadow/ShadowRoot.h" |
| 36 #include "core/frame/Settings.h" | 37 #include "core/frame/Settings.h" |
| 37 #include "core/html/parser/HTMLParserIdioms.h" | 38 #include "core/html/parser/HTMLParserIdioms.h" |
| 38 #include "core/layout/LayoutImage.h" | 39 #include "core/layout/LayoutImage.h" |
| 39 #include "core/layout/LayoutVideo.h" | 40 #include "core/layout/LayoutVideo.h" |
| 40 #include "platform/UserGestureIndicator.h" | 41 #include "platform/UserGestureIndicator.h" |
| 41 #include "platform/graphics/GraphicsContext.h" | 42 #include "platform/graphics/GraphicsContext.h" |
| 42 #include "platform/graphics/ImageBuffer.h" | 43 #include "platform/graphics/ImageBuffer.h" |
| 43 #include "platform/graphics/gpu/Extensions3DUtil.h" | 44 #include "platform/graphics/gpu/Extensions3DUtil.h" |
| 44 #include "public/platform/WebCanvas.h" | 45 #include "public/platform/WebCanvas.h" |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 129 toLayoutImage(layoutObject())->imageResource()->setImageResource
(0); | 130 toLayoutImage(layoutObject())->imageResource()->setImageResource
(0); |
| 130 } | 131 } |
| 131 // Notify the player when the poster image URL changes. | 132 // Notify the player when the poster image URL changes. |
| 132 if (webMediaPlayer()) | 133 if (webMediaPlayer()) |
| 133 webMediaPlayer()->setPoster(posterImageURL()); | 134 webMediaPlayer()->setPoster(posterImageURL()); |
| 134 } else { | 135 } else { |
| 135 HTMLMediaElement::parseAttribute(name, value); | 136 HTMLMediaElement::parseAttribute(name, value); |
| 136 } | 137 } |
| 137 } | 138 } |
| 138 | 139 |
| 139 bool HTMLVideoElement::supportsFullscreen() const | |
| 140 { | |
| 141 if (!document().page()) | |
| 142 return false; | |
| 143 | |
| 144 if (!webMediaPlayer()) | |
| 145 return false; | |
| 146 | |
| 147 return true; | |
| 148 } | |
| 149 | |
| 150 unsigned HTMLVideoElement::videoWidth() const | 140 unsigned HTMLVideoElement::videoWidth() const |
| 151 { | 141 { |
| 152 if (!webMediaPlayer()) | 142 if (!webMediaPlayer()) |
| 153 return 0; | 143 return 0; |
| 154 return webMediaPlayer()->naturalSize().width; | 144 return webMediaPlayer()->naturalSize().width; |
| 155 } | 145 } |
| 156 | 146 |
| 157 unsigned HTMLVideoElement::videoHeight() const | 147 unsigned HTMLVideoElement::videoHeight() const |
| 158 { | 148 { |
| 159 if (!webMediaPlayer()) | 149 if (!webMediaPlayer()) |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 225 } | 215 } |
| 226 | 216 |
| 227 bool HTMLVideoElement::hasAvailableVideoFrame() const | 217 bool HTMLVideoElement::hasAvailableVideoFrame() const |
| 228 { | 218 { |
| 229 if (!webMediaPlayer()) | 219 if (!webMediaPlayer()) |
| 230 return false; | 220 return false; |
| 231 | 221 |
| 232 return webMediaPlayer()->hasVideo() && webMediaPlayer()->readyState() >= Web
MediaPlayer::ReadyStateHaveCurrentData; | 222 return webMediaPlayer()->hasVideo() && webMediaPlayer()->readyState() >= Web
MediaPlayer::ReadyStateHaveCurrentData; |
| 233 } | 223 } |
| 234 | 224 |
| 235 void HTMLVideoElement::webkitEnterFullscreen(ExceptionState& exceptionState) | 225 void HTMLVideoElement::webkitEnterFullscreen() |
| 236 { | 226 { |
| 237 if (isFullscreen()) | 227 if (!isFullscreen()) |
| 238 return; | 228 enterFullscreen(); |
| 239 | |
| 240 if (!supportsFullscreen()) { | |
| 241 exceptionState.throwDOMException(InvalidStateError, "This element does n
ot support fullscreen mode."); | |
| 242 return; | |
| 243 } | |
| 244 | |
| 245 enterFullscreen(); | |
| 246 } | 229 } |
| 247 | 230 |
| 248 void HTMLVideoElement::webkitExitFullscreen() | 231 void HTMLVideoElement::webkitExitFullscreen() |
| 249 { | 232 { |
| 250 if (isFullscreen()) | 233 if (isFullscreen()) |
| 251 exitFullscreen(); | 234 exitFullscreen(); |
| 252 } | 235 } |
| 253 | 236 |
| 254 bool HTMLVideoElement::webkitSupportsFullscreen() | 237 bool HTMLVideoElement::webkitSupportsFullscreen() |
| 255 { | 238 { |
| 256 return supportsFullscreen(); | 239 return Fullscreen::fullscreenEnabled(document()); |
| 257 } | 240 } |
| 258 | 241 |
| 259 bool HTMLVideoElement::webkitDisplayingFullscreen() | 242 bool HTMLVideoElement::webkitDisplayingFullscreen() |
| 260 { | 243 { |
| 261 return isFullscreen(); | 244 return isFullscreen(); |
| 262 } | 245 } |
| 263 | 246 |
| 264 void HTMLVideoElement::didMoveToNewDocument(Document& oldDocument) | 247 void HTMLVideoElement::didMoveToNewDocument(Document& oldDocument) |
| 265 { | 248 { |
| 266 if (m_imageLoader) | 249 if (m_imageLoader) |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 321 { | 304 { |
| 322 return !isMediaDataCORSSameOrigin(destinationSecurityOrigin); | 305 return !isMediaDataCORSSameOrigin(destinationSecurityOrigin); |
| 323 } | 306 } |
| 324 | 307 |
| 325 FloatSize HTMLVideoElement::elementSize() const | 308 FloatSize HTMLVideoElement::elementSize() const |
| 326 { | 309 { |
| 327 return FloatSize(videoWidth(), videoHeight()); | 310 return FloatSize(videoWidth(), videoHeight()); |
| 328 } | 311 } |
| 329 | 312 |
| 330 } // namespace blink | 313 } // namespace blink |
| OLD | NEW |