| Index: Source/core/html/HTMLMediaElement.h | 
| diff --git a/Source/core/html/HTMLMediaElement.h b/Source/core/html/HTMLMediaElement.h | 
| index e1706610fe53f2519267eaa2daa3379d166dd87a..1f4ee72d6f9dc2d7396a38d3c7488f4e52c3c522 100644 | 
| --- a/Source/core/html/HTMLMediaElement.h | 
| +++ b/Source/core/html/HTMLMediaElement.h | 
| @@ -59,6 +59,7 @@ class HTMLTrackElement; | 
| class KURL; | 
| class MediaController; | 
| class MediaControls; | 
| +class MediaProvider; | 
| class MediaError; | 
| class HTMLMediaSource; | 
| class TextTrackList; | 
| @@ -111,6 +112,8 @@ public: | 
|  | 
| // network state | 
| void setSrc(const AtomicString&); | 
| +    MediaProvider* srcObject() const; | 
| +    void setSrcObject(MediaProvider*); | 
| const KURL& currentSrc() const { return m_currentSrc; } | 
|  | 
| enum NetworkState { NETWORK_EMPTY, NETWORK_IDLE, NETWORK_LOADING, NETWORK_NO_SOURCE }; | 
| @@ -384,11 +387,14 @@ private: | 
| void prepareForLoad(); | 
| void loadInternal(); | 
| void selectMediaResource(); | 
| +    void loadResource(const KURL&); | 
| void loadResource(const KURL&, ContentType&, const String& keySystem); | 
| void startPlayerLoad(); | 
| void setPlayerPreload(); | 
| blink::WebMediaPlayer::LoadType loadType() const; | 
| void scheduleNextSourceChild(); | 
| +    void loadFromObject(); | 
| +    void loadFromAttribute(); | 
| void loadNextSourceChild(); | 
| void userCancelledLoad(); | 
| void clearMediaPlayer(int flags); | 
| @@ -506,8 +512,9 @@ private: | 
| double m_defaultPlaybackStartPosition; | 
|  | 
| // Loading state. | 
| -    enum LoadState { WaitingForSource, LoadingFromSrcAttr, LoadingFromSourceElement }; | 
| +    enum LoadState { WaitingForSource, LoadingFromSrcObject, LoadingFromSrcAttr, LoadingFromSourceElement }; | 
| LoadState m_loadState; | 
| +    RawPtrWillBeMember<MediaProvider> m_srcObject; | 
| RefPtrWillBeMember<HTMLSourceElement> m_currentSourceNode; | 
| RefPtrWillBeMember<Node> m_nextChildNodeToConsider; | 
|  | 
|  |