summaryrefslogtreecommitdiffstats
path: root/browser/components/asrouter/content-src/components/ImpressionsWrapper/ImpressionsWrapper.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/asrouter/content-src/components/ImpressionsWrapper/ImpressionsWrapper.jsx')
-rw-r--r--browser/components/asrouter/content-src/components/ImpressionsWrapper/ImpressionsWrapper.jsx76
1 files changed, 0 insertions, 76 deletions
diff --git a/browser/components/asrouter/content-src/components/ImpressionsWrapper/ImpressionsWrapper.jsx b/browser/components/asrouter/content-src/components/ImpressionsWrapper/ImpressionsWrapper.jsx
deleted file mode 100644
index 8498bde03b..0000000000
--- a/browser/components/asrouter/content-src/components/ImpressionsWrapper/ImpressionsWrapper.jsx
+++ /dev/null
@@ -1,76 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-import React from "react";
-
-export const VISIBLE = "visible";
-export const VISIBILITY_CHANGE_EVENT = "visibilitychange";
-
-/**
- * Component wrapper used to send telemetry pings on every impression.
- */
-export class ImpressionsWrapper extends React.PureComponent {
- // This sends an event when a user sees a set of new content. If content
- // changes while the page is hidden (i.e. preloaded or on a hidden tab),
- // only send the event if the page becomes visible again.
- sendImpressionOrAddListener() {
- if (this.props.document.visibilityState === VISIBLE) {
- this.props.sendImpression({ id: this.props.id });
- } else {
- // We should only ever send the latest impression stats ping, so remove any
- // older listeners.
- if (this._onVisibilityChange) {
- this.props.document.removeEventListener(
- VISIBILITY_CHANGE_EVENT,
- this._onVisibilityChange
- );
- }
-
- // When the page becomes visible, send the impression stats ping if the section isn't collapsed.
- this._onVisibilityChange = () => {
- if (this.props.document.visibilityState === VISIBLE) {
- this.props.sendImpression({ id: this.props.id });
- this.props.document.removeEventListener(
- VISIBILITY_CHANGE_EVENT,
- this._onVisibilityChange
- );
- }
- };
- this.props.document.addEventListener(
- VISIBILITY_CHANGE_EVENT,
- this._onVisibilityChange
- );
- }
- }
-
- componentWillUnmount() {
- if (this._onVisibilityChange) {
- this.props.document.removeEventListener(
- VISIBILITY_CHANGE_EVENT,
- this._onVisibilityChange
- );
- }
- }
-
- componentDidMount() {
- if (this.props.sendOnMount) {
- this.sendImpressionOrAddListener();
- }
- }
-
- componentDidUpdate(prevProps) {
- if (this.props.shouldSendImpressionOnUpdate(this.props, prevProps)) {
- this.sendImpressionOrAddListener();
- }
- }
-
- render() {
- return this.props.children;
- }
-}
-
-ImpressionsWrapper.defaultProps = {
- document: global.document,
- sendOnMount: true,
-};