Media Engagement: Allow high MEI sites to bypass autoplay policies.
Sites with a high MEI score should bypass autoplay policies. This
is behind a feature flag that is separate from collecting the data.
BUG=738454
Change-Id: I6eb64a0ce0b196332d380337f5ed333f903f9784
Reviewed-on: https://chromium-review.googlesource.com/558348
Commit-Queue: Becca Hughes <[email protected]>
Reviewed-by: Daniel Cheng <[email protected]>
Reviewed-by: Mounir Lamouri <[email protected]>
Reviewed-by: Jochen Eisinger <[email protected]>
Cr-Commit-Position: refs/heads/master@{#490038}
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
index 632b4ef..8f4d33d 100644
--- a/content/renderer/render_frame_impl.h
+++ b/content/renderer/render_frame_impl.h
@@ -69,6 +69,7 @@
#include "third_party/WebKit/public/platform/WebLoadingBehaviorFlag.h"
#include "third_party/WebKit/public/platform/WebMediaPlayer.h"
#include "third_party/WebKit/public/platform/WebPageVisibilityState.h"
+#include "third_party/WebKit/public/platform/media_engagement.mojom.h"
#include "third_party/WebKit/public/platform/site_engagement.mojom.h"
#include "third_party/WebKit/public/web/WebAXObject.h"
#include "third_party/WebKit/public/web/WebDataSource.h"
@@ -173,6 +174,7 @@
class CONTENT_EXPORT RenderFrameImpl
: public RenderFrame,
NON_EXPORTED_BASE(blink::mojom::EngagementClient),
+ NON_EXPORTED_BASE(blink::mojom::MediaEngagementClient),
NON_EXPORTED_BASE(mojom::Frame),
NON_EXPORTED_BASE(mojom::HostZoom),
NON_EXPORTED_BASE(mojom::FrameBindingsControl),
@@ -475,6 +477,9 @@
void SetEngagementLevel(const url::Origin& origin,
blink::mojom::EngagementLevel level) override;
+ // blink::mojom::MediaEngagementClient implementation:
+ void SetHasHighMediaEngagement(const url::Origin& origin) override;
+
// mojom::Frame implementation:
void GetInterfaceProvider(
service_manager::mojom::InterfaceProviderRequest request) override;
@@ -694,6 +699,10 @@
// Binds to the site engagement service in the browser.
void BindEngagement(blink::mojom::EngagementClientAssociatedRequest request);
+ // Binds to the media engagement service in the browser.
+ void BindMediaEngagement(
+ blink::mojom::MediaEngagementClientAssociatedRequest request);
+
// Binds to the FrameHost in the browser.
void BindFrame(const service_manager::BindSourceInfo& browser_info,
mojom::FrameRequest request,
@@ -1394,8 +1403,11 @@
HostZoomLevels host_zoom_levels_;
EngagementOriginAndLevel engagement_level_;
+ url::Origin high_media_engagement_origin_;
mojo::AssociatedBinding<blink::mojom::EngagementClient> engagement_binding_;
+ mojo::AssociatedBinding<blink::mojom::MediaEngagementClient>
+ media_engagement_binding_;
mojo::Binding<mojom::Frame> frame_binding_;
mojo::AssociatedBinding<mojom::HostZoom> host_zoom_binding_;
mojo::AssociatedBinding<mojom::FrameBindingsControl>