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 |