Commit 4b759884 authored by Jan-Erik Rediger's avatar Jan-Erik Rediger
Browse files

Bug 1703917 - Wait for client ID to be set again r=Dexter

This hints at an actual case:

When enabling telemetry and _quickly_ closing the browser afterwards,
telemetry might get enabled and trigger a shutdown ping, but will not
have initiated setting a new client ID.

This is unlikely to be hit for any real-user scenario: Toggling
telemetry requires UI interaction (either in the preferences or in
about:config) and thus is unlikely to be followed by a shutdown quickly
enough.

Differential Revision: https://phabricator.services.mozilla.com/D140965
parent 075ac314
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -44,6 +44,23 @@ class TestDeletionRequestPing(TelemetryTestCase):
        # Turn Telemetry back on.
        self.enable_telemetry()

        # Enabling telemetry resets the client ID,
        # so we can wait for it to be set.
        #
        # **WARNING**
        #
        # This MUST NOT be used outside of telemetry tests to wait for that kind of signal.
        # Reach out to the Telemetry Team if you have a need for that.
        with self.marionette.using_context(self.marionette.CONTEXT_CHROME):
            return self.marionette.execute_async_script(
                """
                let [resolve] = arguments;
                Cu.import("resource://gre/modules/ClientID.jsm");
                ClientID.getClientID().then(resolve);
                """,
                script_timeout=1000,
            )

        # Close Firefox cleanly, collecting its "main"/"shutdown" ping.
        main_ping = self.wait_for_ping(self.restart_browser, MAIN_SHUTDOWN_PING)