| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights
reserved. | 2 * Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013 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 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 72 | 72 |
| 73 class HTMLMediaElement : public HTMLElement, public MediaPlayerClient, public Ac
tiveDOMObject, public MediaControllerInterface | 73 class HTMLMediaElement : public HTMLElement, public MediaPlayerClient, public Ac
tiveDOMObject, public MediaControllerInterface |
| 74 , private TextTrackClient | 74 , private TextTrackClient |
| 75 { | 75 { |
| 76 public: | 76 public: |
| 77 static WebKit::WebMimeRegistry::SupportsType supportsType(const ContentType&
, const String& keySystem = String()); | 77 static WebKit::WebMimeRegistry::SupportsType supportsType(const ContentType&
, const String& keySystem = String()); |
| 78 | 78 |
| 79 MediaPlayer* player() const { return m_player.get(); } | 79 MediaPlayer* player() const { return m_player.get(); } |
| 80 | 80 |
| 81 virtual bool isVideo() const = 0; | 81 virtual bool isVideo() const = 0; |
| 82 virtual bool hasVideo() const { return false; } | 82 virtual bool hasVideo() const OVERRIDE { return false; } |
| 83 virtual bool hasAudio() const; | 83 virtual bool hasAudio() const OVERRIDE; |
| 84 | 84 |
| 85 // Eventually overloaded in HTMLVideoElement | 85 // Eventually overloaded in HTMLVideoElement |
| 86 virtual bool supportsFullscreen() const { return false; }; | 86 virtual bool supportsFullscreen() const OVERRIDE { return false; }; |
| 87 | 87 |
| 88 virtual bool supportsSave() const; | 88 virtual bool supportsSave() const; |
| 89 | 89 |
| 90 WebKit::WebLayer* platformLayer() const; | 90 WebKit::WebLayer* platformLayer() const; |
| 91 | 91 |
| 92 enum DelayedActionType { | 92 enum DelayedActionType { |
| 93 LoadMediaResource = 1 << 0, | 93 LoadMediaResource = 1 << 0, |
| 94 LoadTextTrackResource = 1 << 1, | 94 LoadTextTrackResource = 1 << 1, |
| 95 TextTrackChangesNotification = 1 << 2 | 95 TextTrackChangesNotification = 1 << 2 |
| 96 }; | 96 }; |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 223 bool textTracksAreReady() const; | 223 bool textTracksAreReady() const; |
| 224 enum VisibilityChangeAssumption { | 224 enum VisibilityChangeAssumption { |
| 225 AssumeNoVisibleChange, | 225 AssumeNoVisibleChange, |
| 226 AssumeVisibleChange | 226 AssumeVisibleChange |
| 227 }; | 227 }; |
| 228 void configureTextTrackDisplay(VisibilityChangeAssumption); | 228 void configureTextTrackDisplay(VisibilityChangeAssumption); |
| 229 void updateTextTrackDisplay(); | 229 void updateTextTrackDisplay(); |
| 230 | 230 |
| 231 // TextTrackClient | 231 // TextTrackClient |
| 232 virtual void textTrackReadyStateChanged(TextTrack*); | 232 virtual void textTrackReadyStateChanged(TextTrack*); |
| 233 virtual void textTrackKindChanged(TextTrack*); | 233 virtual void textTrackKindChanged(TextTrack*) OVERRIDE; |
| 234 virtual void textTrackModeChanged(TextTrack*); | 234 virtual void textTrackModeChanged(TextTrack*) OVERRIDE; |
| 235 virtual void textTrackAddCues(TextTrack*, const TextTrackCueList*); | 235 virtual void textTrackAddCues(TextTrack*, const TextTrackCueList*) OVERRIDE; |
| 236 virtual void textTrackRemoveCues(TextTrack*, const TextTrackCueList*); | 236 virtual void textTrackRemoveCues(TextTrack*, const TextTrackCueList*) OVERRI
DE; |
| 237 virtual void textTrackAddCue(TextTrack*, PassRefPtr<TextTrackCue>); | 237 virtual void textTrackAddCue(TextTrack*, PassRefPtr<TextTrackCue>) OVERRIDE; |
| 238 virtual void textTrackRemoveCue(TextTrack*, PassRefPtr<TextTrackCue>); | 238 virtual void textTrackRemoveCue(TextTrack*, PassRefPtr<TextTrackCue>) OVERRI
DE; |
| 239 | 239 |
| 240 // EventTarget function. | 240 // EventTarget function. |
| 241 // Both Node (via HTMLElement) and ActiveDOMObject define this method, which | 241 // Both Node (via HTMLElement) and ActiveDOMObject define this method, which |
| 242 // causes an ambiguity error at compile time. This class's constructor | 242 // causes an ambiguity error at compile time. This class's constructor |
| 243 // ensures that both implementations return document, so return the result | 243 // ensures that both implementations return document, so return the result |
| 244 // of one of them here. | 244 // of one of them here. |
| 245 virtual ExecutionContext* executionContext() const OVERRIDE { return HTMLEle
ment::executionContext(); } | 245 virtual ExecutionContext* executionContext() const OVERRIDE { return HTMLEle
ment::executionContext(); } |
| 246 | 246 |
| 247 bool hasSingleSecurityOrigin() const { return !m_player || m_player->hasSing
leSecurityOrigin(); } | 247 bool hasSingleSecurityOrigin() const { return !m_player || m_player->hasSing
leSecurityOrigin(); } |
| 248 | 248 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 279 void setMediaGroup(const String&); | 279 void setMediaGroup(const String&); |
| 280 | 280 |
| 281 MediaController* controller() const; | 281 MediaController* controller() const; |
| 282 void setController(PassRefPtr<MediaController>); | 282 void setController(PassRefPtr<MediaController>); |
| 283 | 283 |
| 284 protected: | 284 protected: |
| 285 HTMLMediaElement(const QualifiedName&, Document&, bool); | 285 HTMLMediaElement(const QualifiedName&, Document&, bool); |
| 286 virtual ~HTMLMediaElement(); | 286 virtual ~HTMLMediaElement(); |
| 287 | 287 |
| 288 virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERR
IDE; | 288 virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERR
IDE; |
| 289 virtual void finishParsingChildren(); | 289 virtual void finishParsingChildren() OVERRIDE; |
| 290 virtual bool isURLAttribute(const Attribute&) const OVERRIDE; | 290 virtual bool isURLAttribute(const Attribute&) const OVERRIDE; |
| 291 virtual void attach(const AttachContext& = AttachContext()) OVERRIDE; | 291 virtual void attach(const AttachContext& = AttachContext()) OVERRIDE; |
| 292 | 292 |
| 293 virtual void didMoveToNewDocument(Document& oldDocument) OVERRIDE; | 293 virtual void didMoveToNewDocument(Document& oldDocument) OVERRIDE; |
| 294 | 294 |
| 295 enum DisplayMode { Unknown, None, Poster, PosterWaitingForVideo, Video }; | 295 enum DisplayMode { Unknown, None, Poster, PosterWaitingForVideo, Video }; |
| 296 DisplayMode displayMode() const { return m_displayMode; } | 296 DisplayMode displayMode() const { return m_displayMode; } |
| 297 virtual void setDisplayMode(DisplayMode mode) { m_displayMode = mode; } | 297 virtual void setDisplayMode(DisplayMode mode) { m_displayMode = mode; } |
| 298 | 298 |
| 299 virtual bool isMediaElement() const { return true; } | 299 virtual bool isMediaElement() const OVERRIDE { return true; } |
| 300 | 300 |
| 301 // Restrictions to change default behaviors. | 301 // Restrictions to change default behaviors. |
| 302 enum BehaviorRestrictionFlags { | 302 enum BehaviorRestrictionFlags { |
| 303 NoRestrictions = 0, | 303 NoRestrictions = 0, |
| 304 RequireUserGestureForLoadRestriction = 1 << 0, | 304 RequireUserGestureForLoadRestriction = 1 << 0, |
| 305 RequireUserGestureForRateChangeRestriction = 1 << 1, | 305 RequireUserGestureForRateChangeRestriction = 1 << 1, |
| 306 RequireUserGestureForFullscreenRestriction = 1 << 2, | 306 RequireUserGestureForFullscreenRestriction = 1 << 2, |
| 307 RequirePageConsentToLoadMediaRestriction = 1 << 3, | 307 RequirePageConsentToLoadMediaRestriction = 1 << 3, |
| 308 }; | 308 }; |
| 309 typedef unsigned BehaviorRestrictions; | 309 typedef unsigned BehaviorRestrictions; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 320 void beginIgnoringTrackDisplayUpdateRequests(); | 320 void beginIgnoringTrackDisplayUpdateRequests(); |
| 321 void endIgnoringTrackDisplayUpdateRequests(); | 321 void endIgnoringTrackDisplayUpdateRequests(); |
| 322 | 322 |
| 323 private: | 323 private: |
| 324 void createMediaPlayer(); | 324 void createMediaPlayer(); |
| 325 | 325 |
| 326 virtual bool alwaysCreateUserAgentShadowRoot() const OVERRIDE { return true;
} | 326 virtual bool alwaysCreateUserAgentShadowRoot() const OVERRIDE { return true;
} |
| 327 virtual bool areAuthorShadowsAllowed() const OVERRIDE { return false; } | 327 virtual bool areAuthorShadowsAllowed() const OVERRIDE { return false; } |
| 328 | 328 |
| 329 virtual bool hasCustomFocusLogic() const OVERRIDE; | 329 virtual bool hasCustomFocusLogic() const OVERRIDE; |
| 330 virtual bool supportsFocus() const; | 330 virtual bool supportsFocus() const OVERRIDE; |
| 331 virtual bool isMouseFocusable() const; | 331 virtual bool isMouseFocusable() const OVERRIDE; |
| 332 virtual bool rendererIsNeeded(const RenderStyle&); | 332 virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE; |
| 333 virtual RenderObject* createRenderer(RenderStyle*); | 333 virtual RenderObject* createRenderer(RenderStyle*) OVERRIDE; |
| 334 virtual bool childShouldCreateRenderer(const Node& child) const OVERRIDE; | 334 virtual bool childShouldCreateRenderer(const Node& child) const OVERRIDE; |
| 335 virtual InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE; | 335 virtual InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE; |
| 336 virtual void removedFrom(ContainerNode*) OVERRIDE; | 336 virtual void removedFrom(ContainerNode*) OVERRIDE; |
| 337 virtual void didRecalcStyle(StyleRecalcChange); | 337 virtual void didRecalcStyle(StyleRecalcChange) OVERRIDE; |
| 338 | 338 |
| 339 virtual void didBecomeFullscreenElement(); | 339 virtual void didBecomeFullscreenElement() OVERRIDE; |
| 340 virtual void willStopBeingFullscreenElement(); | 340 virtual void willStopBeingFullscreenElement() OVERRIDE; |
| 341 virtual bool isInteractiveContent() const OVERRIDE; | 341 virtual bool isInteractiveContent() const OVERRIDE; |
| 342 | 342 |
| 343 // ActiveDOMObject functions. | 343 // ActiveDOMObject functions. |
| 344 virtual void stop(); | 344 virtual void stop() OVERRIDE; |
| 345 | 345 |
| 346 virtual void updateDisplayState() { } | 346 virtual void updateDisplayState() { } |
| 347 | 347 |
| 348 void setReadyState(MediaPlayer::ReadyState); | 348 void setReadyState(MediaPlayer::ReadyState); |
| 349 void setNetworkState(MediaPlayer::NetworkState); | 349 void setNetworkState(MediaPlayer::NetworkState); |
| 350 | 350 |
| 351 virtual void mediaPlayerNetworkStateChanged() OVERRIDE; | 351 virtual void mediaPlayerNetworkStateChanged() OVERRIDE; |
| 352 virtual void mediaPlayerReadyStateChanged() OVERRIDE; | 352 virtual void mediaPlayerReadyStateChanged() OVERRIDE; |
| 353 virtual void mediaPlayerTimeChanged() OVERRIDE; | 353 virtual void mediaPlayerTimeChanged() OVERRIDE; |
| 354 virtual void mediaPlayerDurationChanged() OVERRIDE; | 354 virtual void mediaPlayerDurationChanged() OVERRIDE; |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 438 void invalidateCachedTime(); | 438 void invalidateCachedTime(); |
| 439 void refreshCachedTime() const; | 439 void refreshCachedTime() const; |
| 440 | 440 |
| 441 bool hasMediaControls() const; | 441 bool hasMediaControls() const; |
| 442 bool createMediaControls(); | 442 bool createMediaControls(); |
| 443 void configureMediaControls(); | 443 void configureMediaControls(); |
| 444 | 444 |
| 445 void prepareMediaFragmentURI(); | 445 void prepareMediaFragmentURI(); |
| 446 void applyMediaFragmentURI(); | 446 void applyMediaFragmentURI(); |
| 447 | 447 |
| 448 virtual void* preDispatchEventHandler(Event*); | 448 virtual void* preDispatchEventHandler(Event*) OVERRIDE; |
| 449 | 449 |
| 450 void changeNetworkStateFromLoadingToIdle(); | 450 void changeNetworkStateFromLoadingToIdle(); |
| 451 | 451 |
| 452 void removeBehaviorsRestrictionsAfterFirstUserGesture(); | 452 void removeBehaviorsRestrictionsAfterFirstUserGesture(); |
| 453 | 453 |
| 454 void updateMediaController(); | 454 void updateMediaController(); |
| 455 bool isBlocked() const; | 455 bool isBlocked() const; |
| 456 bool isBlockedOnMediaController() const; | 456 bool isBlockedOnMediaController() const; |
| 457 bool hasCurrentSrc() const { return !m_currentSrc.isEmpty(); } | 457 bool hasCurrentSrc() const { return !m_currentSrc.isEmpty(); } |
| 458 bool isAutoplaying() const { return m_autoplaying; } | 458 bool isAutoplaying() const { return m_autoplaying; } |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 600 inline bool isHTMLMediaElement(const Node& node) | 600 inline bool isHTMLMediaElement(const Node& node) |
| 601 { | 601 { |
| 602 return node.isElementNode() && toElement(node).isMediaElement(); | 602 return node.isElementNode() && toElement(node).isMediaElement(); |
| 603 } | 603 } |
| 604 | 604 |
| 605 DEFINE_NODE_TYPE_CASTS_WITH_FUNCTION(HTMLMediaElement); | 605 DEFINE_NODE_TYPE_CASTS_WITH_FUNCTION(HTMLMediaElement); |
| 606 | 606 |
| 607 } //namespace | 607 } //namespace |
| 608 | 608 |
| 609 #endif | 609 #endif |
| OLD | NEW |