Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(171)

Side by Side Diff: Source/core/html/HTMLMediaElement.h

Issue 545933002: Implement HTMLMediaElement::srcObject. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Now uses Functional. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 #endif 52 #endif
53 class AudioTrackList; 53 class AudioTrackList;
54 class ContentType; 54 class ContentType;
55 class Event; 55 class Event;
56 class ExceptionState; 56 class ExceptionState;
57 class HTMLSourceElement; 57 class HTMLSourceElement;
58 class HTMLTrackElement; 58 class HTMLTrackElement;
59 class KURL; 59 class KURL;
60 class MediaController; 60 class MediaController;
61 class MediaControls; 61 class MediaControls;
62 class MediaProvider;
62 class MediaError; 63 class MediaError;
63 class HTMLMediaSource; 64 class HTMLMediaSource;
64 class TextTrackList; 65 class TextTrackList;
65 class TimeRanges; 66 class TimeRanges;
66 class URLRegistry; 67 class URLRegistry;
67 class VideoTrackList; 68 class VideoTrackList;
68 69
69 typedef PODIntervalTree<double, TextTrackCue*> CueIntervalTree; 70 typedef PODIntervalTree<double, TextTrackCue*> CueIntervalTree;
70 typedef CueIntervalTree::IntervalType CueInterval; 71 typedef CueIntervalTree::IntervalType CueInterval;
71 typedef Vector<CueInterval> CueList; 72 typedef Vector<CueInterval> CueList;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 }; 109 };
109 void scheduleDelayedAction(DelayedActionType); 110 void scheduleDelayedAction(DelayedActionType);
110 111
111 bool isActive() const { return m_active; } 112 bool isActive() const { return m_active; }
112 113
113 // error state 114 // error state
114 PassRefPtrWillBeRawPtr<MediaError> error() const; 115 PassRefPtrWillBeRawPtr<MediaError> error() const;
115 116
116 // network state 117 // network state
117 void setSrc(const AtomicString&); 118 void setSrc(const AtomicString&);
119 void setSrcObject(RawPtr<MediaProvider>);
philipj_slow 2014/09/16 13:39:51 Can this simply be MediaProvider*, since that's th
perkj_chrome 2014/09/17 19:26:13 Done.
120 MediaProvider* srcObject() const;
118 const KURL& currentSrc() const { return m_currentSrc; } 121 const KURL& currentSrc() const { return m_currentSrc; }
119 122
120 enum NetworkState { NETWORK_EMPTY, NETWORK_IDLE, NETWORK_LOADING, NETWORK_NO _SOURCE }; 123 enum NetworkState { NETWORK_EMPTY, NETWORK_IDLE, NETWORK_LOADING, NETWORK_NO _SOURCE };
121 NetworkState networkState() const; 124 NetworkState networkState() const;
122 125
123 String preload() const; 126 String preload() const;
124 void setPreload(const AtomicString&); 127 void setPreload(const AtomicString&);
125 128
126 PassRefPtrWillBeRawPtr<TimeRanges> buffered() const; 129 PassRefPtrWillBeRawPtr<TimeRanges> buffered() const;
127 void load(); 130 void load();
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
386 389
387 // loading 390 // loading
388 void prepareForLoad(); 391 void prepareForLoad();
389 void loadInternal(); 392 void loadInternal();
390 void selectMediaResource(); 393 void selectMediaResource();
391 void loadResource(const KURL&, ContentType&, const String& keySystem); 394 void loadResource(const KURL&, ContentType&, const String& keySystem);
392 void startPlayerLoad(); 395 void startPlayerLoad();
393 void setPlayerPreload(); 396 void setPlayerPreload();
394 blink::WebMediaPlayer::LoadType loadType() const; 397 blink::WebMediaPlayer::LoadType loadType() const;
395 void scheduleNextSourceChild(); 398 void scheduleNextSourceChild();
399 void loadSourceFromObject();
400 void loadSourceFromAttribute();
396 void loadNextSourceChild(); 401 void loadNextSourceChild();
397 void userCancelledLoad(); 402 void userCancelledLoad();
398 void clearMediaPlayer(int flags); 403 void clearMediaPlayer(int flags);
399 void clearMediaPlayerAndAudioSourceProviderClientWithoutLocking(); 404 void clearMediaPlayerAndAudioSourceProviderClientWithoutLocking();
400 bool havePotentialSourceChild(); 405 bool havePotentialSourceChild();
401 void noneSupported(); 406 void noneSupported();
402 void mediaEngineError(PassRefPtrWillBeRawPtr<MediaError>); 407 void mediaEngineError(PassRefPtrWillBeRawPtr<MediaError>);
403 void cancelPendingEventsAndCallbacks(); 408 void cancelPendingEventsAndCallbacks();
404 void waitForSourceChange(); 409 void waitForSourceChange();
405 void prepareToPlay(); 410 void prepareToPlay();
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 // Cached duration to suppress duplicate events if duration unchanged. 508 // Cached duration to suppress duplicate events if duration unchanged.
504 double m_duration; 509 double m_duration;
505 510
506 // The last time a timeupdate event was sent (wall clock). 511 // The last time a timeupdate event was sent (wall clock).
507 double m_lastTimeUpdateEventWallTime; 512 double m_lastTimeUpdateEventWallTime;
508 513
509 // The last time a timeupdate event was sent in movie time. 514 // The last time a timeupdate event was sent in movie time.
510 double m_lastTimeUpdateEventMovieTime; 515 double m_lastTimeUpdateEventMovieTime;
511 516
512 // Loading state. 517 // Loading state.
513 enum LoadState { WaitingForSource, LoadingFromSrcAttr, LoadingFromSourceElem ent }; 518 enum LoadState { WaitingForSource, LoadingFromSrcObject, LoadingFromSrcAttr, LoadingFromSourceElement };
514 LoadState m_loadState; 519 LoadState m_loadState;
520 RawPtrWillBeMember<MediaProvider> m_srcObject;
515 RefPtrWillBeMember<HTMLSourceElement> m_currentSourceNode; 521 RefPtrWillBeMember<HTMLSourceElement> m_currentSourceNode;
516 RefPtrWillBeMember<Node> m_nextChildNodeToConsider; 522 RefPtrWillBeMember<Node> m_nextChildNodeToConsider;
517 523
518 // "Deferred loading" state (for preload=none). 524 // "Deferred loading" state (for preload=none).
519 enum DeferredLoadState { 525 enum DeferredLoadState {
520 // The load is not deferred. 526 // The load is not deferred.
521 NotDeferred, 527 NotDeferred,
522 // The load is deferred, and waiting for the task to set the 528 // The load is deferred, and waiting for the task to set the
523 // delaying-the-load-event flag (to false). 529 // delaying-the-load-event flag (to false).
524 WaitingForStopDelayingLoadEventTask, 530 WaitingForStopDelayingLoadEventTask,
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
632 inline bool isHTMLMediaElement(const HTMLElement& element) 638 inline bool isHTMLMediaElement(const HTMLElement& element)
633 { 639 {
634 return isHTMLAudioElement(element) || isHTMLVideoElement(element); 640 return isHTMLAudioElement(element) || isHTMLVideoElement(element);
635 } 641 }
636 642
637 DEFINE_HTMLELEMENT_TYPE_CASTS_WITH_FUNCTION(HTMLMediaElement); 643 DEFINE_HTMLELEMENT_TYPE_CASTS_WITH_FUNCTION(HTMLMediaElement);
638 644
639 } // namespace blink 645 } // namespace blink
640 646
641 #endif // HTMLMediaElement_h 647 #endif // HTMLMediaElement_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698