Closed Bug 1621756 Opened 5 months ago Closed 4 months ago

Reset the UAID if there are no push subscriptions in the database

Categories

(Core :: DOM: Push Notifications, task, P2)

task

Tracking

()

RESOLVED FIXED
mozilla76
Tracking Status
firefox76 --- fixed

People

(Reporter: lina, Assigned: lina)

References

Details

Attachments

(1 file)

Forking this from bug 1617136. Let's use that bug as a meta for tracking all the changes we'd like to make (including updating SUMO and our privacy policy), and this one for the implementation in Firefox.

When Firefox connects to our push server on startup (or reconnects—after waking from sleep, for example), it sends the UAID that was previously issued by the server. This UAID is stored in the dom.push.userAgentID pref. To mitigate the privacy risk around this, let's do what Ehsan suggested in bug 1617136, comment 5, and reset the UAID (that is, clear the pref and send a blank one in the hello message) if there are no local push subscriptions. This will likely be the case for most users.

Once a user has subscribed to push (either via the Web Push API, or through an in-browser service that uses it, like FxA/Sync), we'll need the UAID to be stable. But, until then, since we aren't delivering any notifications to that device, rotating its ID is perfectly fine.

This commit changes the Push client code to check for existing push
subscriptions when connecting to the server, and omits the UAID from
the hello handshake if there are none. This, in turn, causes the
server to issue a new UAID, which we keep until either the next
reconnect, or when the user subscribes to push. It's a way to rotate
the UAID and reduce the privacy risk of tying a persistent identifier
to the connection.

Priority: -- → P2
Attachment #9132692 - Attachment description: Bug 1621756 - Don't send the Push UAID if there are no push subscriptions. r?ehsan!,englehardt! → Bug 1621756 - Don't send the Push UAID if there are no push subscriptions. r=englehardt
Pushed by kcambridge@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/3ff5a0976b14
Don't send the Push UAID if there are no push subscriptions. r=englehardt

Hmm, this isn't the first time that test has bitten me. Instead of having the clear data tests import the Push JSMs and muck around with creating a mock WebSocket, I just changed them to replace the PushService.jsm backend (that's why it's exposed 😄) with a test one.

The Push test_clear_forgetAboutSite.js and test_clear_origin_data.js test this functionality for real, anyway.

Flags: needinfo?(lina)
Pushed by kcambridge@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/2f302b1f5cb9
Don't send the Push UAID if there are no push subscriptions. r=englehardt

Backed out changeset 2f302b1f5cb9 (bug 1621756) for xpc failures on test_unregister_empty_scope.js

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&searchStr=linux%2C18.04%2Cx64%2Cquantumrender%2Cdebug%2Cxpcshell%2Ctests%2Ctest-linux1804-64-qr%2Fdebug-xpcshell-e10s-5%2Cx%28x5%29&fromchange=684fdad241529b919670d21d860edc094512946f&tochange=7192ec5bf245b12aead3067b33e80fa8614a5870&selectedJob=295306752

Backout link: https://hg.mozilla.org/integration/autoland/rev/7192ec5bf245b12aead3067b33e80fa8614a5870

Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=295306752&repo=autoland&lineNumber=2748

[task 2020-03-30T05:19:58.856Z] 05:19:58     INFO -  TEST-START | services/sync/tests/unit/test_clients_engine.js
[task 2020-03-30T05:20:08.749Z] 05:20:08     INFO -  TEST-PASS | services/sync/tests/unit/test_clients_engine.js | took 9898ms
[task 2020-03-30T05:20:08.754Z] 05:20:08     INFO -  Retrying tests that failed when run in parallel.
[task 2020-03-30T05:20:08.762Z] 05:20:08     INFO -  TEST-START | dom/push/test/xpcshell/test_unregister_empty_scope.js
[task 2020-03-30T05:20:10.216Z] 05:20:10  WARNING -  TEST-UNEXPECTED-FAIL | dom/push/test/xpcshell/test_unregister_empty_scope.js | xpcshell return code: 0
[task 2020-03-30T05:20:10.218Z] 05:20:10     INFO -  TEST-INFO took 1454ms
[task 2020-03-30T05:20:10.219Z] 05:20:10     INFO -  >>>>>>>
[task 2020-03-30T05:20:10.219Z] 05:20:10     INFO -  PID 20903 | [20903, Main Thread] WARNING: Couldn't get the user appdata directory. Crash events may not be produced.: file /builds/worker/checkouts/gecko/toolkit/crashreporter/nsExceptionHandler.cpp, line 2959
[task 2020-03-30T05:20:10.219Z] 05:20:10     INFO -  PID 20903 | Couldn't convert chrome URL: chrome://branding/locale/brand.properties
[task 2020-03-30T05:20:10.220Z] 05:20:10     INFO -  (xpcshell/head.js) | test MAIN run_test pending (1)
[task 2020-03-30T05:20:10.220Z] 05:20:10     INFO -  (xpcshell/head.js) | test run_next_test 0 pending (2)
[task 2020-03-30T05:20:10.220Z] 05:20:10     INFO -  (xpcshell/head.js) | test MAIN run_test finished (2)
[task 2020-03-30T05:20:10.220Z] 05:20:10     INFO -  running event loop
[task 2020-03-30T05:20:10.220Z] 05:20:10     INFO -  PID 20903 | [20903, Main Thread] WARNING: Could not get the program name for a cubeb stream.: 'NS_SUCCEEDED(rv)', file /builds/worker/checkouts/gecko/dom/media/CubebUtils.cpp, line 363
[task 2020-03-30T05:20:10.220Z] 05:20:10     INFO -  "CONSOLE_MESSAGE: (info) No chrome package registered for chrome://branding/locale/brand.properties"
[task 2020-03-30T05:20:10.220Z] 05:20:10     INFO -  dom/push/test/xpcshell/test_unregister_empty_scope.js | Starting test_unregister_empty_scope
[task 2020-03-30T05:20:10.220Z] 05:20:10     INFO -  (xpcshell/head.js) | test test_unregister_empty_scope pending (2)
[task 2020-03-30T05:20:10.220Z] 05:20:10     INFO -  PID 20903 | console.debug: PushService:
[task 2020-03-30T05:20:10.220Z] 05:20:10     INFO -  PID 20903 |   init()
[task 2020-03-30T05:20:10.221Z] 05:20:10     INFO -  PID 20903 | console.debug: PushService:
[task 2020-03-30T05:20:10.221Z] 05:20:10     INFO -  PID 20903 |   setState()
[task 2020-03-30T05:20:10.221Z] 05:20:10     INFO -  PID 20903 |   new state
[task 2020-03-30T05:20:10.221Z] 05:20:10     INFO -  PID 20903 |   2
[task 2020-03-30T05:20:10.222Z] 05:20:10     INFO -  PID 20903 |   old state
[task 2020-03-30T05:20:10.222Z] 05:20:10     INFO -  PID 20903 |   0
[task 2020-03-30T05:20:10.223Z] 05:20:10     INFO -  PID 20903 | console.debug: PushService:
[task 2020-03-30T05:20:10.223Z] 05:20:10     INFO -  PID 20903 |   unregister()
[task 2020-03-30T05:20:10.223Z] 05:20:10     INFO -  PID 20903 | Object
[task 2020-03-30T05:20:10.223Z] 05:20:10     INFO -  PID 20903 |     - scope =
[task 2020-03-30T05:20:10.224Z] 05:20:10     INFO -  PID 20903 |     - originAttributes =
[task 2020-03-30T05:20:10.224Z] 05:20:10     INFO -  (xpcshell/head.js) | test run_next_test 0 finished (2)
[task 2020-03-30T05:20:10.224Z] 05:20:10     INFO -  PID 20903 | console.debug: PushService:
[task 2020-03-30T05:20:10.224Z] 05:20:10     INFO -  PID 20903 |   changeServerURL()
[task 2020-03-30T05:20:10.225Z] 05:20:10     INFO -  PID 20903 | console.debug: PushService:
[task 2020-03-30T05:20:10.225Z] 05:20:10     INFO -  PID 20903 |   findService()
[task 2020-03-30T05:20:10.225Z] 05:20:10     INFO -  PID 20903 | console.debug: PushService:
[task 2020-03-30T05:20:10.225Z] 05:20:10     INFO -  PID 20903 |   startService()
[task 2020-03-30T05:20:10.225Z] 05:20:10     INFO -  PID 20903 | console.debug: PushDB:
[task 2020-03-30T05:20:10.226Z] 05:20:10     INFO -  PID 20903 |   PushDB()
[task 2020-03-30T05:20:10.226Z] 05:20:10     INFO -  PID 20903 | console.debug: PushServiceWebSocket:
[task 2020-03-30T05:20:10.226Z] 05:20:10     INFO -  PID 20903 |   init()
[task 2020-03-30T05:20:10.226Z] 05:20:10     INFO -  PID 20903 | console.debug: PushService:
[task 2020-03-30T05:20:10.226Z] 05:20:10     INFO -  PID 20903 |   startObservers()
[task 2020-03-30T05:20:10.227Z] 05:20:10     INFO -  PID 20903 | console.debug: PushService:
[task 2020-03-30T05:20:10.227Z] 05:20:10     INFO -  PID 20903 |   dropExpiredRegistrations()
[task 2020-03-30T05:20:10.227Z] 05:20:10     INFO -  PID 20903 | console.debug: PushDB:
[task 2020-03-30T05:20:10.227Z] 05:20:10     INFO -  PID 20903 |   getAllExpired()
[task 2020-03-30T05:20:10.227Z] 05:20:10     INFO -  PID 20903 | console.debug: PushDB:
[task 2020-03-30T05:20:10.228Z] 05:20:10     INFO -  PID 20903 |   getAllByPushQuota()
[task 2020-03-30T05:20:10.228Z] 05:20:10     INFO -  PID 20903 | console.debug: PushService:
[task 2020-03-30T05:20:10.229Z] 05:20:10     INFO -  PID 20903 |   changeStateConnectionEnabledEvent()
[task 2020-03-30T05:20:10.229Z] 05:20:10     INFO -  PID 20903 |   true
[task 2020-03-30T05:20:10.229Z] 05:20:10     INFO -  PID 20903 | console.debug: PushService:
[task 2020-03-30T05:20:10.230Z] 05:20:10     INFO -  PID 20903 |   changeStateOfflineEvent()
[task 2020-03-30T05:20:10.230Z] 05:20:10     INFO -  PID 20903 |   false
[task 2020-03-30T05:20:10.230Z] 05:20:10     INFO -  PID 20903 | console.debug: PushService:
[task 2020-03-30T05:20:10.230Z] 05:20:10     INFO -  PID 20903 |   setState()
[task 2020-03-30T05:20:10.231Z] 05:20:10     INFO -  PID 20903 |   new state
[task 2020-03-30T05:20:10.231Z] 05:20:10     INFO -  PID 20903 |   5
[task 2020-03-30T05:20:10.231Z] 05:20:10     INFO -  PID 20903 |   old state
[task 2020-03-30T05:20:10.233Z] 05:20:10     INFO -  PID 20903 |   2
[task 2020-03-30T05:20:10.233Z] 05:20:10     INFO -  PID 20903 | console.debug: PushServiceWebSocket:
[task 2020-03-30T05:20:10.233Z] 05:20:10     INFO -  PID 20903 |   connect()
[task 2020-03-30T05:20:10.234Z] 05:20:10     INFO -  PID 20903 | Object
[task 2020-03-30T05:20:10.234Z] 05:20:10     INFO -  PID 20903 |   - prototype Object
[task 2020-03-30T05:20:10.234Z] 05:20:10     INFO -  PID 20903 | console.debug: PushServiceWebSocket:
[task 2020-03-30T05:20:10.235Z] 05:20:10     INFO -  PID 20903 |   beginWSSetup()
[task 2020-03-30T05:20:10.235Z] 05:20:10     INFO -  PID 20903 | console.debug: PushServiceWebSocket:
[task 2020-03-30T05:20:10.235Z] 05:20:10     INFO -  PID 20903 |   beginWSSetup: Connecting to
[task 2020-03-30T05:20:10.236Z] 05:20:10     INFO -  PID 20903 |   wss://push.example.org/
[task 2020-03-30T05:20:10.236Z] 05:20:10     INFO -  PID 20903 | console.debug: PushDB:
[task 2020-03-30T05:20:10.236Z] 05:20:10     INFO -  PID 20903 |   getByIdentifiers()
[task 2020-03-30T05:20:10.237Z] 05:20:10     INFO -  PID 20903 | Object
[task 2020-03-30T05:20:10.238Z] 05:20:10     INFO -  PID 20903 |     - scope =
[task 2020-03-30T05:20:10.238Z] 05:20:10     INFO -  PID 20903 |     - originAttributes =
[task 2020-03-30T05:20:10.239Z] 05:20:10     INFO -  PID 20903 | console.error: PushDB:
[task 2020-03-30T05:20:10.239Z] 05:20:10     INFO -  PID 20903 |   getByIdentifiers: Scope and originAttributes are required
[task 2020-03-30T05:20:10.239Z] 05:20:10     INFO -  PID 20903 | Object
[task 2020-03-30T05:20:10.240Z] 05:20:10     INFO -  PID 20903 |     - scope =
[task 2020-03-30T05:20:10.240Z] 05:20:10     INFO -  PID 20903 |     - originAttributes =
[task 2020-03-30T05:20:10.240Z] 05:20:10     INFO -  PID 20903 | console.debug: PushServiceWebSocket:
[task 2020-03-30T05:20:10.240Z] 05:20:10     INFO -  PID 20903 |   wsOnStart()
[task 2020-03-30T05:20:10.241Z] 05:20:10     INFO -  PID 20903 | console.debug: PushDB:
[task 2020-03-30T05:20:10.241Z] 05:20:10     INFO -  PID 20903 |   getAllUnexpired()
[task 2020-03-30T05:20:10.241Z] 05:20:10     INFO -  PID 20903 | console.debug: PushDB:
[task 2020-03-30T05:20:10.242Z] 05:20:10     INFO -  PID 20903 |   getAllByPushQuota()
[task 2020-03-30T05:20:10.243Z] 05:20:10     INFO -  TEST-PASS | dom/push/test/xpcshell/test_unregister_empty_scope.js | test_unregister_empty_scope - [test_unregister_empty_scope : 1] Expected error for empty endpoint
[task 2020-03-30T05:20:10.243Z] 05:20:10     INFO -  (xpcshell/head.js) | test run_next_test 1 pending (2)
[task 2020-03-30T05:20:10.244Z] 05:20:10     INFO -  (xpcshell/head.js) | test test_unregister_empty_scope finished (2)
[task 2020-03-30T05:20:10.244Z] 05:20:10     INFO -  (xpcshell/head.js) | test run_next_test 1 finished (1)
[task 2020-03-30T05:20:10.244Z] 05:20:10     INFO -  exiting test
[task 2020-03-30T05:20:10.245Z] 05:20:10     INFO -  PID 20903 | console.debug: PushServiceWebSocket:
[task 2020-03-30T05:20:10.245Z] 05:20:10     INFO -  PID 20903 |   wsSendMessage: Sending message
[task 2020-03-30T05:20:10.245Z] 05:20:10     INFO -  PID 20903 |   {"messageType":"hello","broadcasts":{},"use_webpush":true}
[task 2020-03-30T05:20:10.247Z] 05:20:10     INFO -  PID 20903 | console.debug: PushServiceWebSocket:
[task 2020-03-30T05:20:10.248Z] 05:20:10     INFO -  PID 20903 |   wsOnMessageAvailable()
[task 2020-03-30T05:20:10.248Z] 05:20:10     INFO -  PID 20903 |   {"messageType":"hello","status":200,"uaid":"5619557c-86fe-4711-8078-d1fd6987aef7"}
[task 2020-03-30T05:20:10.249Z] 05:20:10     INFO -  PID 20903 | console.debug: PushServiceWebSocket:
[task 2020-03-30T05:20:10.252Z] 05:20:10     INFO -  PID 20903 |   handleHelloReply()
[task 2020-03-30T05:20:10.252Z] 05:20:10     INFO -  PID 20903 | console.debug: PushServiceWebSocket:
[task 2020-03-30T05:20:10.253Z] 05:20:10     INFO -  PID 20903 |   handleHelloReply: Received new UAID
[task 2020-03-30T05:20:10.254Z] 05:20:10     INFO -  PID 20903 | console.debug: PushDB:
[task 2020-03-30T05:20:10.254Z] 05:20:10     INFO -  PID 20903 |   clearIf()
[task 2020-03-30T05:20:10.255Z] 05:20:10     INFO -  PID 20903 | console.debug: PushService:
[task 2020-03-30T05:20:10.256Z] 05:20:10     INFO -  PID 20903 |   uninit()
[task 2020-03-30T05:20:10.256Z] 05:20:10     INFO -  PID 20903 | console.debug: PushService:
[task 2020-03-30T05:20:10.257Z] 05:20:10     INFO -  PID 20903 |   changeServerURL()
[task 2020-03-30T05:20:10.257Z] 05:20:10     INFO -  PID 20903 | console.debug: PushService:
[task 2020-03-30T05:20:10.258Z] 05:20:10     INFO -  PID 20903 |   stopService()
[task 2020-03-30T05:20:10.258Z] 05:20:10     INFO -  PID 20903 | console.debug: PushService:
[task 2020-03-30T05:20:10.259Z] 05:20:10     INFO -  PID 20903 |   stopObservers()
[task 2020-03-30T05:20:10.259Z] 05:20:10     INFO -  PID 20903 | console.debug: PushServiceWebSocket:
[task 2020-03-30T05:20:10.259Z] 05:20:10     INFO -  PID 20903 |   shutdownWS()
[task 2020-03-30T05:20:10.260Z] 05:20:10     INFO -  PID 20903 | console.debug: PushServiceWebSocket:
[task 2020-03-30T05:20:10.260Z] 05:20:10     INFO -  PID 20903 |   shutdownWS()
[task 2020-03-30T05:20:10.260Z] 05:20:10     INFO -  PID 20903 | console.debug: PushService:
[task 2020-03-30T05:20:10.261Z] 05:20:10     INFO -  PID 20903 |   setState()
[task 2020-03-30T05:20:10.261Z] 05:20:10     INFO -  PID 20903 |   new state
[task 2020-03-30T05:20:10.261Z] 05:20:10     INFO -  PID 20903 |   0
[task 2020-03-30T05:20:10.262Z] 05:20:10     INFO -  PID 20903 |   old state
[task 2020-03-30T05:20:10.262Z] 05:20:10     INFO -  PID 20903 |   5
[task 2020-03-30T05:20:10.262Z] 05:20:10     INFO -  PID 20903 | console.debug: PushService:
[task 2020-03-30T05:20:10.263Z] 05:20:10     INFO -  PID 20903 |   shutdownService: shutdown complete!
[task 2020-03-30T05:20:10.263Z] 05:20:10     INFO -  PID 20903 | JavaScript error: /builds/worker/workspace/build/tests/xpcshell/tests/dom/push/test/xpcshell/head.js, line 75: uncaught exception: TypeError
[task 2020-03-30T05:20:10.263Z] 05:20:10     INFO -  "CONSOLE_MESSAGE: (error) [JavaScript Error: "uncaught exception: TypeError" {file: "/builds/worker/workspace/build/tests/xpcshell/tests/dom/push/test/xpcshell/head.js" line: 75}]"
[task 2020-03-30T05:20:10.264Z] 05:20:10     INFO -  PID 20903 | [20903, Main Thread] WARNING: NS_ENSURE_SUCCESS_VOID(rv) failed with result 0x80070057: file /builds/worker/checkouts/gecko/extensions/permissions/nsPermissionManager.cpp, line 1663
[task 2020-03-30T05:20:10.264Z] 05:20:10  WARNING -  TEST-UNEXPECTED-FAIL | dom/push/test/xpcshell/test_unregister_empty_scope.js | test_unregister_empty_scope - [test_unregister_empty_scope : 265] A promise chain failed to handle a rejection: TypeError - stack: observe@/builds/worker/workspace/build/tests/xpcshell/tests/dom/push/test/xpcshell/head.js:75:14
[task 2020-03-30T05:20:10.264Z] 05:20:10     INFO -  _execute_test@/builds/worker/workspace/build/tests/xpcshell/head.js:658:19
[task 2020-03-30T05:20:10.265Z] 05:20:10     INFO -  @-e:1:1
[task 2020-03-30T05:20:10.265Z] 05:20:10     INFO -  Rejection date: Mon Mar 30 2020 05:20:09 GMT+0000 (Coordinated Universal Time) - false == true
[task 2020-03-30T05:20:10.265Z] 05:20:10     INFO -  resource://testing-common/PromiseTestUtils.jsm:assertNoUncaughtRejections:265
[task 2020-03-30T05:20:10.266Z] 05:20:10     INFO -  /builds/worker/workspace/build/tests/xpcshell/head.js:_execute_test:668
[task 2020-03-30T05:20:10.266Z] 05:20:10     INFO -  -e:null:1
[task 2020-03-30T05:20:10.266Z] 05:20:10     INFO -  exiting test
[task 2020-03-30T05:20:10.266Z] 05:20:10     INFO -  PID 20903 | JavaScript error: /builds/worker/workspace/build/tests/xpcshell/head.js, line 791: NS_ERROR_ABORT:
[task 2020-03-30T05:20:10.267Z] 05:20:10     INFO -  PID 20903 | [20903, Main Thread] WARNING: OOPDeinit() without successful OOPInit(): file /builds/worker/checkouts/gecko/toolkit/crashreporter/nsExceptionHandler.cpp, line 3407
[task 2020-03-30T05:20:10.267Z] 05:20:10     INFO -  PID 20903 | [20903, Main Thread] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp, line 194
[task 2020-03-30T05:20:10.267Z] 05:20:10     INFO -  PID 20903 | [20903, Main Thread] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp, line 194
[task 2020-03-30T05:20:10.268Z] 05:20:10     INFO -  PID 20903 | nsStringStats
[task 2020-03-30T05:20:10.268Z] 05:20:10     INFO -  PID 20903 |  => mAllocCount:          12772
[task 2020-03-30T05:20:10.268Z] 05:20:10     INFO -  PID 20903 |  => mReallocCount:            0
[task 2020-03-30T05:20:10.268Z] 05:20:10     INFO -  PID 20903 |  => mFreeCount:           12772
[task 2020-03-30T05:20:10.269Z] 05:20:10     INFO -  PID 20903 |  => mShareCount:           8286
[task 2020-03-30T05:20:10.269Z] 05:20:10     INFO -  PID 20903 |  => mAdoptCount:            179
[task 2020-03-30T05:20:10.269Z] 05:20:10     INFO -  PID 20903 |  => mAdoptFreeCount:        179
[task 2020-03-30T05:20:10.270Z] 05:20:10     INFO -  PID 20903 |  => Process ID: 20903, Thread ID: 140197271337088
[task 2020-03-30T05:20:10.270Z] 05:20:10     INFO -  <<<<<<<
[task 2020-03-30T05:20:10.277Z] 05:20:10     INFO -  TEST-START | dom/push/test/xpcshell/test_unregister_invalid_json.js
[task 2020-03-30T05:20:12.070Z] 05:20:12     INFO -  TEST-PASS | dom/push/test/xpcshell/test_unregister_invalid_json.js | took 1792ms
[task 2020-03-30T05:20:12.086Z] 05:20:12     INFO -  TEST-START | toolkit/components/url-classifier/tests/unit/test_listmanager.js
[task 2020-03-30T05:20:13.615Z] 05:20:13     INFO -  TEST-PASS | toolkit/components/url-classifier/tests/unit/test_listmanager.js | took 1530ms
[task 2020-03-30T05:20:13.615Z] 05:20:13     INFO -  INFO | Result summary:
[task 2020-03-30T05:20:13.615Z] 05:20:13     INFO -  INFO | Passed: 642
[task 2020-03-30T05:20:13.615Z] 05:20:13  WARNING -  INFO | Failed: 1
[task 2020-03-30T05:20:13.615Z] 05:20:13  WARNING -  One or more unittests failed.
[task 2020-03-30T05:20:13.616Z] 05:20:13     INFO -  INFO | Todo: 0
[task 2020-03-30T05:20:13.616Z] 05:20:13     INFO -  INFO | Retried: 3
[task 2020-03-30T05:20:13.616Z] 05:20:13     INFO -  SUITE-END | took 865s
[task 2020-03-30T05:20:13.616Z] 05:20:13     INFO -  Node moz-http2 server shutting down ...
[task 2020-03-30T05:20:13.618Z] 05:20:13     INFO -  http3Server server shutting down ...
[task 2020-03-30T05:20:13.771Z] 05:20:13    ERROR - Return code: 1
[task 2020-03-30T05:20:13.771Z] 05:20:13     INFO - TinderboxPrint: xpcshell-xpcshell<br/>642/<em class="testfail">1</em>/0
Flags: needinfo?(lina)
Pushed by kcambridge@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/69300bef2eed
Don't send the Push UAID if there are no push subscriptions. r=englehardt
Status: ASSIGNED → RESOLVED
Closed: 4 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla76
Flags: needinfo?(lina)
You need to log in before you can comment on or make changes to this bug.