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

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

Issue 2051253002: Start autoplay muted videos with autoplay attribute when they are visible. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: reduce Created 4 years, 6 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 29 matching lines...) Expand all
40 #include "public/platform/WebAudioSourceProviderClient.h" 40 #include "public/platform/WebAudioSourceProviderClient.h"
41 #include "public/platform/WebMediaPlayerClient.h" 41 #include "public/platform/WebMediaPlayerClient.h"
42 #include "public/platform/WebMimeRegistry.h" 42 #include "public/platform/WebMimeRegistry.h"
43 43
44 namespace blink { 44 namespace blink {
45 45
46 class AudioSourceProviderClient; 46 class AudioSourceProviderClient;
47 class AudioTrackList; 47 class AudioTrackList;
48 class ContentType; 48 class ContentType;
49 class CueTimeline; 49 class CueTimeline;
50 class ElementVisibilityObserver;
50 class EnumerationHistogram; 51 class EnumerationHistogram;
51 class Event; 52 class Event;
52 class ExceptionState; 53 class ExceptionState;
53 class HTMLSourceElement; 54 class HTMLSourceElement;
54 class HTMLTrackElement; 55 class HTMLTrackElement;
55 class KURL; 56 class KURL;
56 class MediaControls; 57 class MediaControls;
57 class MediaError; 58 class MediaError;
58 class MediaStreamDescriptor; 59 class MediaStreamDescriptor;
59 class HTMLMediaSource; 60 class HTMLMediaSource;
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 void scheduleNotifyPlaying(); 485 void scheduleNotifyPlaying();
485 void resolveScheduledPlayPromises(); 486 void resolveScheduledPlayPromises();
486 void rejectScheduledPlayPromises(); 487 void rejectScheduledPlayPromises();
487 void rejectPlayPromises(ExceptionCode, const String&); 488 void rejectPlayPromises(ExceptionCode, const String&);
488 void rejectPlayPromisesInternal(ExceptionCode, const String&); 489 void rejectPlayPromisesInternal(ExceptionCode, const String&);
489 490
490 EnumerationHistogram& showControlsHistogram() const; 491 EnumerationHistogram& showControlsHistogram() const;
491 492
492 void recordAutoplaySourceMetric(int source); 493 void recordAutoplaySourceMetric(int source);
493 494
495 void onVisibilityChangedForAutoplay(bool isVisible);
496
494 UnthrottledTimer<HTMLMediaElement> m_loadTimer; 497 UnthrottledTimer<HTMLMediaElement> m_loadTimer;
495 UnthrottledTimer<HTMLMediaElement> m_progressEventTimer; 498 UnthrottledTimer<HTMLMediaElement> m_progressEventTimer;
496 UnthrottledTimer<HTMLMediaElement> m_playbackProgressTimer; 499 UnthrottledTimer<HTMLMediaElement> m_playbackProgressTimer;
497 UnthrottledTimer<HTMLMediaElement> m_audioTracksTimer; 500 UnthrottledTimer<HTMLMediaElement> m_audioTracksTimer;
498 Member<TimeRanges> m_playedTimeRanges; 501 Member<TimeRanges> m_playedTimeRanges;
499 Member<GenericEventQueue> m_asyncEventQueue; 502 Member<GenericEventQueue> m_asyncEventQueue;
500 503
501 double m_playbackRate; 504 double m_playbackRate;
502 double m_defaultPlaybackRate; 505 double m_defaultPlaybackRate;
503 NetworkState m_networkState; 506 NetworkState m_networkState;
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 friend class Internals; 664 friend class Internals;
662 friend class TrackDisplayUpdateScope; 665 friend class TrackDisplayUpdateScope;
663 friend class AutoplayExperimentHelper; 666 friend class AutoplayExperimentHelper;
664 friend class MediaControlsTest; 667 friend class MediaControlsTest;
665 668
666 Member<AutoplayExperimentHelper::Client> m_autoplayHelperClient; 669 Member<AutoplayExperimentHelper::Client> m_autoplayHelperClient;
667 Member<AutoplayExperimentHelper> m_autoplayHelper; 670 Member<AutoplayExperimentHelper> m_autoplayHelper;
668 671
669 WebRemotePlaybackClient* m_remotePlaybackClient; 672 WebRemotePlaybackClient* m_remotePlaybackClient;
670 673
674 // class AutoplayVisibilityObserver;
675 Member<ElementVisibilityObserver> m_autoplayVisibilityObserver;
676
671 static URLRegistry* s_mediaStreamRegistry; 677 static URLRegistry* s_mediaStreamRegistry;
672 }; 678 };
673 679
674 inline bool isHTMLMediaElement(const HTMLElement& element) 680 inline bool isHTMLMediaElement(const HTMLElement& element)
675 { 681 {
676 return isHTMLAudioElement(element) || isHTMLVideoElement(element); 682 return isHTMLAudioElement(element) || isHTMLVideoElement(element);
677 } 683 }
678 684
679 DEFINE_HTMLELEMENT_TYPE_CASTS_WITH_FUNCTION(HTMLMediaElement); 685 DEFINE_HTMLELEMENT_TYPE_CASTS_WITH_FUNCTION(HTMLMediaElement);
680 686
681 } // namespace blink 687 } // namespace blink
682 688
683 #endif // HTMLMediaElement_h 689 #endif // HTMLMediaElement_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/dom/IntersectionObserver.cpp ('k') | third_party/WebKit/Source/core/html/HTMLMediaElement.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698