Index: third_party/WebKit/Source/core/html/AutoplayExperimentHelper.h |
diff --git a/third_party/WebKit/Source/core/html/AutoplayExperimentHelper.h b/third_party/WebKit/Source/core/html/AutoplayExperimentHelper.h |
index 6595de029456a634bddb6e137012abec839ea645..2287c1e5377bf5dc68e553b7c1551aca8b6a8957 100644 |
--- a/third_party/WebKit/Source/core/html/AutoplayExperimentHelper.h |
+++ b/third_party/WebKit/Source/core/html/AutoplayExperimentHelper.h |
@@ -123,6 +123,7 @@ public: |
virtual bool isLegacyViewportType() = 0; |
virtual PageVisibilityState pageVisibilityState() const = 0; |
virtual String autoplayExperimentMode() const = 0; |
+ virtual LocalFrame* frame() const = 0; |
// LayoutObject |
virtual void setRequestPositionUpdates(bool) = 0; |
@@ -183,9 +184,15 @@ public: |
// Restrict gestureless autoplay to sites which contain the |
// viewport tag. |
IfMobile = 1 << 5, |
+ // Restrict gestureless autoplay to sites which are from the same origin |
+ // as the top-level frame. |
+ IfSameOrigin = 1 << 6, |
+ // When combined with IfSameOrigin, allow muted to override the same |
+ // origin check. Else, this does nothing. |
+ OrMuted = 1 << 7, |
// If gestureless autoplay is allowed, then mute the media before |
// starting to play. |
- PlayMuted = 1 << 6, |
+ PlayMuted = 1 << 8, |
}; |
DEFINE_INLINE_TRACE() { visitor->trace(m_client); } |
@@ -200,6 +207,10 @@ private: |
// Un-register for position updates, if we are currently registered. |
void unregisterForPositionUpdatesIfNeeded(); |
+ // Return true if and only if our media element is in the same origin as the |
+ // top-level frame. |
+ bool isSameOrigin() const; |
+ |
// Return true if any only if this player meets (most) of the eligibility |
// requirements for the experiment to override the need for a user |
// gesture. This includes everything except the visibility test. |