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

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

Issue 1557363002: Remove the WEB_AUDIO compile time flag (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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 15 matching lines...) Expand all
26 #ifndef HTMLMediaElement_h 26 #ifndef HTMLMediaElement_h
27 #define HTMLMediaElement_h 27 #define HTMLMediaElement_h
28 28
29 #include "core/CoreExport.h" 29 #include "core/CoreExport.h"
30 #include "core/dom/ActiveDOMObject.h" 30 #include "core/dom/ActiveDOMObject.h"
31 #include "core/events/GenericEventQueue.h" 31 #include "core/events/GenericEventQueue.h"
32 #include "core/html/AutoplayExperimentHelper.h" 32 #include "core/html/AutoplayExperimentHelper.h"
33 #include "core/html/HTMLElement.h" 33 #include "core/html/HTMLElement.h"
34 #include "core/html/track/TextTrack.h" 34 #include "core/html/track/TextTrack.h"
35 #include "platform/Supplementable.h" 35 #include "platform/Supplementable.h"
36 #include "platform/audio/AudioSourceProvider.h"
37 #include "public/platform/WebAudioSourceProviderClient.h"
36 #include "public/platform/WebMediaPlayerClient.h" 38 #include "public/platform/WebMediaPlayerClient.h"
37 #include "public/platform/WebMimeRegistry.h" 39 #include "public/platform/WebMimeRegistry.h"
38 40
39 #if ENABLE(WEB_AUDIO)
40 #include "platform/audio/AudioSourceProvider.h"
41 #include "public/platform/WebAudioSourceProviderClient.h"
42 #endif
43
44 namespace blink { 41 namespace blink {
45 42
46 #if ENABLE(WEB_AUDIO)
47 class AudioSourceProviderClient; 43 class AudioSourceProviderClient;
48 class WebAudioSourceProvider;
49 #endif
50 class AudioTrackList; 44 class AudioTrackList;
51 class ContentType; 45 class ContentType;
52 class CueTimeline; 46 class CueTimeline;
53 class Event; 47 class Event;
54 class ExceptionState; 48 class ExceptionState;
55 class HTMLSourceElement; 49 class HTMLSourceElement;
56 class HTMLTrackElement; 50 class HTMLTrackElement;
57 class KURL; 51 class KURL;
58 class MediaControls; 52 class MediaControls;
59 class MediaError; 53 class MediaError;
60 class HTMLMediaSource; 54 class HTMLMediaSource;
61 class TextTrackContainer; 55 class TextTrackContainer;
62 class TextTrackList; 56 class TextTrackList;
63 class TimeRanges; 57 class TimeRanges;
64 class URLRegistry; 58 class URLRegistry;
65 class VideoTrackList; 59 class VideoTrackList;
60 class WebAudioSourceProvider;
66 class WebInbandTextTrack; 61 class WebInbandTextTrack;
67 class WebLayer; 62 class WebLayer;
68 63
69 class CORE_EXPORT HTMLMediaElement : public HTMLElement, public WillBeHeapSupple mentable<HTMLMediaElement>, public ActiveDOMObject, private WebMediaPlayerClient { 64 class CORE_EXPORT HTMLMediaElement : public HTMLElement, public WillBeHeapSupple mentable<HTMLMediaElement>, public ActiveDOMObject, private WebMediaPlayerClient {
70 DEFINE_WRAPPERTYPEINFO(); 65 DEFINE_WRAPPERTYPEINFO();
71 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(HTMLMediaElement); 66 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(HTMLMediaElement);
72 WILL_BE_USING_PRE_FINALIZER(HTMLMediaElement, dispose); 67 WILL_BE_USING_PRE_FINALIZER(HTMLMediaElement, dispose);
73 public: 68 public:
74 static WebMimeRegistry::SupportsType supportsType(const ContentType&, const String& keySystem = String()); 69 static WebMimeRegistry::SupportsType supportsType(const ContentType&, const String& keySystem = String());
75 70
76 static void setMediaStreamRegistry(URLRegistry*); 71 static void setMediaStreamRegistry(URLRegistry*);
77 static bool isMediaStreamURL(const String& url); 72 static bool isMediaStreamURL(const String& url);
78 73
79 DECLARE_VIRTUAL_TRACE(); 74 DECLARE_VIRTUAL_TRACE();
80 #if ENABLE(WEB_AUDIO)
81 void clearWeakMembers(Visitor*); 75 void clearWeakMembers(Visitor*);
82 #endif
83 WebMediaPlayer* webMediaPlayer() const 76 WebMediaPlayer* webMediaPlayer() const
84 { 77 {
85 return m_webMediaPlayer.get(); 78 return m_webMediaPlayer.get();
86 } 79 }
87 80
88 virtual bool hasVideo() const { return false; } 81 virtual bool hasVideo() const { return false; }
89 bool hasAudio() const; 82 bool hasAudio() const;
90 83
91 bool supportsSave() const; 84 bool supportsSave() const;
92 85
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 // Notifies the media element that the media controls became visible, so 219 // Notifies the media element that the media controls became visible, so
227 // that text track layout may be updated to avoid overlapping them. 220 // that text track layout may be updated to avoid overlapping them.
228 void mediaControlsDidBecomeVisible(); 221 void mediaControlsDidBecomeVisible();
229 222
230 void sourceWasRemoved(HTMLSourceElement*); 223 void sourceWasRemoved(HTMLSourceElement*);
231 void sourceWasAdded(HTMLSourceElement*); 224 void sourceWasAdded(HTMLSourceElement*);
232 225
233 // ActiveDOMObject functions. 226 // ActiveDOMObject functions.
234 bool hasPendingActivity() const final; 227 bool hasPendingActivity() const final;
235 228
236 #if ENABLE(WEB_AUDIO)
237 AudioSourceProviderClient* audioSourceNode() { return m_audioSourceNode; } 229 AudioSourceProviderClient* audioSourceNode() { return m_audioSourceNode; }
238 void setAudioSourceNode(AudioSourceProviderClient*); 230 void setAudioSourceNode(AudioSourceProviderClient*);
239 231
240 AudioSourceProvider& audioSourceProvider() { return m_audioSourceProvider; } 232 AudioSourceProvider& audioSourceProvider() { return m_audioSourceProvider; }
241 #endif
242 233
243 enum InvalidURLAction { DoNothing, Complain }; 234 enum InvalidURLAction { DoNothing, Complain };
244 bool isSafeToLoadURL(const KURL&, InvalidURLAction); 235 bool isSafeToLoadURL(const KURL&, InvalidURLAction);
245 236
246 // Checks to see if current media data is CORS-same-origin as the 237 // Checks to see if current media data is CORS-same-origin as the
247 // specified origin. 238 // specified origin.
248 bool isMediaDataCORSSameOrigin(SecurityOrigin*) const; 239 bool isMediaDataCORSSameOrigin(SecurityOrigin*) const;
249 240
250 void scheduleEvent(PassRefPtrWillBeRawPtr<Event>); 241 void scheduleEvent(PassRefPtrWillBeRawPtr<Event>);
251 void scheduleTimeupdateEvent(bool periodicEvent); 242 void scheduleTimeupdateEvent(bool periodicEvent);
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after
559 // Whether this element is in overlay fullscreen mode. 550 // Whether this element is in overlay fullscreen mode.
560 bool m_inOverlayFullscreenVideo : 1; 551 bool m_inOverlayFullscreenVideo : 1;
561 552
562 PersistentWillBeMember<AudioTrackList> m_audioTracks; 553 PersistentWillBeMember<AudioTrackList> m_audioTracks;
563 PersistentWillBeMember<VideoTrackList> m_videoTracks; 554 PersistentWillBeMember<VideoTrackList> m_videoTracks;
564 PersistentWillBeMember<TextTrackList> m_textTracks; 555 PersistentWillBeMember<TextTrackList> m_textTracks;
565 PersistentHeapVectorWillBeHeapVector<Member<TextTrack>> m_textTracksWhenReso urceSelectionBegan; 556 PersistentHeapVectorWillBeHeapVector<Member<TextTrack>> m_textTracksWhenReso urceSelectionBegan;
566 557
567 OwnPtrWillBeMember<CueTimeline> m_cueTimeline; 558 OwnPtrWillBeMember<CueTimeline> m_cueTimeline;
568 559
569 #if ENABLE(WEB_AUDIO)
570 // This is a weak reference, since m_audioSourceNode holds a reference to us . 560 // This is a weak reference, since m_audioSourceNode holds a reference to us .
571 // FIXME: Oilpan: Consider making this a strongly traced pointer with oilpan where strong cycles are not a problem. 561 // FIXME: Oilpan: Consider making this a strongly traced pointer with oilpan where strong cycles are not a problem.
572 GC_PLUGIN_IGNORE("http://crbug.com/404577") 562 GC_PLUGIN_IGNORE("http://crbug.com/404577")
573 RawPtrWillBeWeakMember<AudioSourceProviderClient> m_audioSourceNode; 563 RawPtrWillBeWeakMember<AudioSourceProviderClient> m_audioSourceNode;
574 564
575 // AudioClientImpl wraps an AudioSourceProviderClient. 565 // AudioClientImpl wraps an AudioSourceProviderClient.
576 // When the audio format is known, Chromium calls setFormat(). 566 // When the audio format is known, Chromium calls setFormat().
577 class AudioClientImpl final : public GarbageCollectedFinalized<AudioClientIm pl>, public WebAudioSourceProviderClient { 567 class AudioClientImpl final : public GarbageCollectedFinalized<AudioClientIm pl>, public WebAudioSourceProviderClient {
578 public: 568 public:
579 explicit AudioClientImpl(AudioSourceProviderClient* client) 569 explicit AudioClientImpl(AudioSourceProviderClient* client)
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
613 603
614 DECLARE_TRACE(); 604 DECLARE_TRACE();
615 605
616 private: 606 private:
617 WebAudioSourceProvider* m_webAudioSourceProvider; 607 WebAudioSourceProvider* m_webAudioSourceProvider;
618 PersistentWillBeMember<AudioClientImpl> m_client; 608 PersistentWillBeMember<AudioClientImpl> m_client;
619 Mutex provideInputLock; 609 Mutex provideInputLock;
620 }; 610 };
621 611
622 AudioSourceProviderImpl m_audioSourceProvider; 612 AudioSourceProviderImpl m_audioSourceProvider;
623 #endif
624 613
625 friend class Internals; 614 friend class Internals;
626 friend class TrackDisplayUpdateScope; 615 friend class TrackDisplayUpdateScope;
627 friend class AutoplayExperimentHelper; 616 friend class AutoplayExperimentHelper;
628 friend class MediaControlsTest; 617 friend class MediaControlsTest;
629 618
630 AutoplayExperimentHelper m_autoplayHelper; 619 AutoplayExperimentHelper m_autoplayHelper;
631 620
632 static URLRegistry* s_mediaStreamRegistry; 621 static URLRegistry* s_mediaStreamRegistry;
633 }; 622 };
634 623
635 inline bool isHTMLMediaElement(const HTMLElement& element) 624 inline bool isHTMLMediaElement(const HTMLElement& element)
636 { 625 {
637 return isHTMLAudioElement(element) || isHTMLVideoElement(element); 626 return isHTMLAudioElement(element) || isHTMLVideoElement(element);
638 } 627 }
639 628
640 DEFINE_HTMLELEMENT_TYPE_CASTS_WITH_FUNCTION(HTMLMediaElement); 629 DEFINE_HTMLELEMENT_TYPE_CASTS_WITH_FUNCTION(HTMLMediaElement);
641 630
642 } // namespace blink 631 } // namespace blink
643 632
644 #endif // HTMLMediaElement_h 633 #endif // HTMLMediaElement_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/config.gni ('k') | third_party/WebKit/Source/core/html/HTMLMediaElement.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698