Delay Privacy-UI onboarding by 30 min for new users

RESOLVED FIXED in Firefox 67

Status

()

enhancement
P1
normal
RESOLVED FIXED
2 months ago
2 months ago

People

(Reporter: ewright, Assigned: ewright)

Tracking

(Blocks 1 bug)

67 Branch
Firefox 68
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox66 wontfix, firefox67+ fixed, firefox68 fixed)

Details

Attachments

(1 attachment)

Assignee

Description

2 months ago

For new users, we don't want to overwhelm them by showing the privacy onboarding drop down too soon.
This will be a concern when ETP gets turned on as most users will encounter a site early which activates some sort of blocking.

[Tracking Requested - why for this release]:
Part of Trailhead.

Assignee

Comment 2

2 months ago

Wait 30 min after a new profile is created before showing the onbording.

Comment 3

2 months ago
Pushed by ewright@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/0ef6e3e9552d
Delay showing the Privacy-UI onboarding by 30 min for new users. r=johannh

Backed out changeset 0ef6e3e9552d (Bug 1548626) for browser_contentBlocking.js failures

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&searchStr=os%2Cx%2C10.10%2Cdebug%2Cmochitests%2Ctest-macosx64%2Fdebug-mochitest-browser-chrome-e10s-4%2Cm%28bc4%29&fromchange=6c00dab7137aabe0a86b9d64f567383dd2b81635&tochange=22980cfa0285de0d9ca08eb7824bb528a8cab43c&selectedJob=244362130

Backout link: https://hg.mozilla.org/integration/autoland/rev/22980cfa0285de0d9ca08eb7824bb528a8cab43c

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

01:03:35 INFO - TEST-START | browser/components/uitour/test/browser_contentBlocking.js
01:03:35 INFO - GECKO(1066) | ++DOCSHELL 0x113b56000 == 3 [pid = 1068] [id = {ac9a9b36-9714-6a4d-a4aa-8c1403baa715}]
01:03:35 INFO - GECKO(1066) | ++DOMWINDOW == 13 (0x113b75980) [pid = 1068] [serial = 175] [outer = 0x0]
01:03:35 INFO - GECKO(1066) | [Child 1068, Main Thread] WARNING: No active window: file /builds/worker/workspace/build/src/js/xpconnect/src/XPCJSContext.cpp, line 662
01:03:35 INFO - GECKO(1066) | ++DOMWINDOW == 14 (0x10cce7800) [pid = 1068] [serial = 176] [outer = 0x113b75980]
01:03:35 INFO - [1063, Main Thread] WARNING: No active window: file /builds/worker/workspace/build/src/js/xpconnect/src/XPCJSContext.cpp, line 662
01:03:35 INFO - GECKO(1066) | --DOCSHELL 0x11c68a000 == 1 [pid = 1071] [id = {f68a3c6c-7b3b-4145-af0d-aba6b2bafc93}] [url = about:blank]
01:03:35 INFO - GECKO(1066) | ++DOMWINDOW == 15 (0x113b26000) [pid = 1068] [serial = 177] [outer = 0x113b75980]
01:03:35 INFO - GECKO(1066) | --DOCSHELL 0x11c686000 == 0 [pid = 1071] [id = {fb76922c-6ff2-024e-b6e3-0a8ee029215d}] [url = about:blank]
01:03:35 INFO - GECKO(1066) | --DOMWINDOW == 14 (0x129f3c020) [pid = 1069] [serial = 83] [outer = 0x0] [url = about:reader?url=https%3A%2F%2Fexample.org%2Fbrowser%2Fbrowser%2Fcomponents%2Fuitour%2Ftest%2Fuitour.html]
01:03:35 INFO - GECKO(1066) | --DOMWINDOW == 13 (0x131c262e0) [pid = 1069] [serial = 80] [outer = 0x0] [url = about:blank]
01:03:36 INFO - GECKO(1066) | --DOMWINDOW == 5 (0x12343d020) [pid = 1071] [serial = 13] [outer = 0x0] [url = about:blank]
01:03:36 INFO - GECKO(1066) | --DOMWINDOW == 4 (0x12343d7a0) [pid = 1071] [serial = 16] [outer = 0x0] [url = about:blank]
01:03:36 INFO - GECKO(1066) | --DOMWINDOW == 12 (0x128bb9000) [pid = 1066] [serial = 13] [outer = 0x0] [url = about:blank]
01:03:39 INFO - GECKO(1066) | [Child 1069, Main Thread] WARNING: No active window: file /builds/worker/workspace/build/src/js/xpconnect/src/XPCJSContext.cpp, line 662
01:03:39 INFO - GECKO(1066) | ++DOCSHELL 0x112f25000 == 1 [pid = 1071] [id = {c1a70205-a8d8-fb4c-8d78-6d962bd7b067}]
01:03:39 INFO - GECKO(1066) | ++DOMWINDOW == 5 (0x12343d020) [pid = 1071] [serial = 19] [outer = 0x0]
01:03:39 INFO - GECKO(1066) | [Child 1071, Main Thread] WARNING: No active window: file /builds/worker/workspace/build/src/js/xpconnect/src/XPCJSContext.cpp, line 662
01:03:39 INFO - GECKO(1066) | ++DOMWINDOW == 6 (0x11c6ad800) [pid = 1071] [serial = 20] [outer = 0x12343d020]
01:03:39 INFO - GECKO(1066) | [Child 1071, Main Thread] WARNING: No active window: file /builds/worker/workspace/build/src/js/xpconnect/src/XPCJSContext.cpp, line 662
01:03:39 INFO - [1063, Main Thread] WARNING: No active window: file /builds/worker/workspace/build/src/js/xpconnect/src/XPCJSContext.cpp, line 662
01:03:39 INFO - GECKO(1066) | ++DOMWINDOW == 7 (0x1234a7400) [pid = 1071] [serial = 21] [outer = 0x12343d020]
01:03:39 INFO - GECKO(1066) | ++DOCSHELL 0x123d31800 == 2 [pid = 1071] [id = {8aab27c5-20ee-b54a-a579-5905763e6ef4}]
01:03:39 INFO - GECKO(1066) | ++DOMWINDOW == 8 (0x1234be100) [pid = 1071] [serial = 22] [outer = 0x0]
01:03:40 INFO - GECKO(1066) | ++DOMWINDOW == 9 (0x11c6ac800) [pid = 1071] [serial = 23] [outer = 0x1234be100]
01:03:41 INFO - GECKO(1066) | --DOMWINDOW == 14 (0x113ce4400) [pid = 1068] [serial = 159] [outer = 0x0] [url = https://example.org/browser/browser/components/uitour/test/uitour.html]
01:03:41 INFO - GECKO(1066) | --DOMWINDOW == 13 (0x113b22800) [pid = 1068] [serial = 168] [outer = 0x0] [url = https://example.org/browser/browser/components/uitour/test/uitour.html]
01:03:41 INFO - GECKO(1066) | --DOMWINDOW == 12 (0x113b1e800) [pid = 1068] [serial = 170] [outer = 0x0] [url = about:blank]
01:03:41 INFO - GECKO(1066) | --DOMWINDOW == 11 (0x10cce0c00) [pid = 1068] [serial = 167] [outer = 0x0] [url = about:blank]
01:03:41 INFO - GECKO(1066) | --DOMWINDOW == 10 (0x113b22000) [pid = 1068] [serial = 162] [outer = 0x0] [url = https://example.org/browser/browser/components/uitour/test/uitour.html]
01:03:41 INFO - GECKO(1066) | --DOMWINDOW == 9 (0x113b1e400) [pid = 1068] [serial = 164] [outer = 0x0] [url = about:blank]
01:03:41 INFO - GECKO(1066) | --DOMWINDOW == 8 (0x113b26400) [pid = 1068] [serial = 165] [outer = 0x0] [url = about:blank]
01:03:41 INFO - GECKO(1066) | --DOCSHELL 0x113b5a800 == 2 [pid = 1068] [id = {e9ac33b3-6345-034e-890d-8af87e7e49b7}] [url = https://example.org/browser/browser/components/uitour/test/uitour.html]
01:03:41 INFO - GECKO(1066) | --DOCSHELL 0x10cc22800 == 1 [pid = 1068] [id = {207b889c-792d-104b-8b0c-5392b52cdacb}] [url = about:blank]
01:03:42 INFO - GECKO(1066) | --DOMWINDOW == 12 (0x12a8a2400) [pid = 1069] [serial = 88] [outer = 0x0] [url = about:blank]
01:03:42 INFO - GECKO(1066) | --DOMWINDOW == 11 (0x129faa800) [pid = 1069] [serial = 86] [outer = 0x0] [url = about:reader?url=https%3A%2F%2Fexample.org%2Fbrowser%2Fbrowser%2Fcomponents%2Fuitour%2Ftest%2Fuitour.html]
01:03:42 INFO - GECKO(1066) | --DOMWINDOW == 10 (0x12b515800) [pid = 1069] [serial = 82] [outer = 0x0] [url = about:blank]
01:03:42 INFO - GECKO(1066) | --DOMWINDOW == 9 (0x1230a9800) [pid = 1069] [serial = 85] [outer = 0x0] [url = https://example.org/browser/browser/components/uitour/test/uitour.html]
01:03:42 INFO - GECKO(1066) | --DOMWINDOW == 8 (0x119adf400) [pid = 1069] [serial = 84] [outer = 0x0] [url = about:blank]
01:03:42 INFO - GECKO(1066) | --DOCSHELL 0x12a8cd800 == 2 [pid = 1069] [id = {a9df242f-f3e5-574e-90d8-291602ccaf71}] [url = about:blank]
01:03:42 INFO - GECKO(1066) | --DOCSHELL 0x123085000 == 1 [pid = 1069] [id = {303a089b-ab18-864c-83e4-91476391fb37}] [url = https://example.org/browser/browser/components/uitour/test/uitour.html]
01:03:42 INFO - GECKO(1066) | --DOMWINDOW == 7 (0x129f3c980) [pid = 1069] [serial = 90] [outer = 0x0] [url = https://example.org/browser/browser/components/uitour/test/uitour.html]
01:03:42 INFO - GECKO(1066) | --DOMWINDOW == 6 (0x129f3c7a0) [pid = 1069] [serial = 87] [outer = 0x0] [url = about:blank]
01:03:42 INFO - GECKO(1066) | --DOMWINDOW == 8 (0x11c6a9400) [pid = 1071] [serial = 14] [outer = 0x0] [url = about:blank]
01:03:42 INFO - GECKO(1066) | --DOMWINDOW == 7 (0x1234a3c00) [pid = 1071] [serial = 15] [outer = 0x0] [url = about:blank]
01:03:42 INFO - GECKO(1066) | --DOMWINDOW == 6 (0x11c6af800) [pid = 1071] [serial = 17] [outer = 0x0] [url = about:blank]
01:03:42 INFO - GECKO(1066) | --DOMWINDOW == 5 (0x1234acc00) [pid = 1071] [serial = 18] [outer = 0x0] [url = about:blank]
01:03:43 INFO - TEST-INFO | started process screencapture
01:03:43 INFO - TEST-INFO | screencapture: exit 0
01:03:43 INFO - Buffered messages logged at 01:03:35
01:03:43 INFO - Entering test bound setup_test
01:03:43 INFO - Leaving test bound setup_test
01:03:43 INFO - Entering test bound test_benignPage
01:03:43 INFO - Load a test page not containing tracking elements
01:03:43 INFO - Buffered messages logged at 01:03:39
01:03:43 INFO - TEST-PASS | browser/components/uitour/test/browser_contentBlocking.js | Info panel shouldn't appear on a benign page -
01:03:43 INFO - Leaving test bound test_benignPage
01:03:43 INFO - Entering test bound test_tracking
01:03:43 INFO - Load a test page containing tracking elements
01:03:43 INFO - Buffered messages logged at 01:03:40
01:03:43 INFO - Console message: [JavaScript Warning: "The resource at “http://trackertest.org/” was blocked because content blocking is enabled." {file: "http://tracking.example.org/browser/browser/base/content/test/trackingUI/trackingPage.html" line: 0}]
01:03:43 INFO - Buffered messages finished
01:03:43 INFO - TEST-UNEXPECTED-FAIL | browser/components/uitour/test/browser_contentBlocking.js | Timeout waiting for popup at anchor: Intro panel should appear -
01:03:43 INFO - Stack trace:
01:03:43 INFO - chrome://mochikit/content/browser-test.js:test_ok:1314
01:03:43 INFO - chrome://mochitests/content/browser/browser/components/uitour/test/head.js:waitForCondition/<:39
01:03:43 INFO - setTimeout handlerchrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest_setTimeoutShim:684
01:03:43 INFO - chrome://mochitests/content/browser/browser/components/uitour/test/head.js:checkCondition:30
01:03:43 INFO - setTimeout handler
chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest_setTimeoutShim:684
01:03:43 INFO - chrome://mochitests/content/browser/browser/components/uitour/test/head.js:checkCondition:30
01:03:43 INFO - setTimeout handlerchrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest_setTimeoutShim:684
01:03:43 INFO - chrome://mochitests/content/browser/browser/components/uitour/test/head.js:checkCondition:30
01:03:43 INFO - setTimeout handler
chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest_setTimeoutShim:684
01:03:43 INFO - chrome://mochitests/content/browser/browser/components/uitour/test/head.js:checkCondition:30
01:03:43 INFO - setTimeout handlerchrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest_setTimeoutShim:684
01:03:43 INFO - chrome://mochitests/content/browser/browser/components/uitour/test/head.js:checkCondition:30
01:03:43 INFO - setTimeout handler
chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest_setTimeoutShim:684
01:03:43 INFO - chrome://mochitests/content/browser/browser/components/uitour/test/head.js:checkCondition:30
01:03:43 INFO - setTimeout handlerchrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest_setTimeoutShim:684
01:03:43 INFO - chrome://mochitests/content/browser/browser/components/uitour/test/head.js:checkCondition:30
01:03:43 INFO - setTimeout handler
chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest_setTimeoutShim:684
01:03:43 INFO - chrome://mochitests/content/browser/browser/components/uitour/test/head.js:checkCondition:30
01:03:43 INFO - setTimeout handlerchrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest_setTimeoutShim:684
01:03:43 INFO - chrome://mochitests/content/browser/browser/components/uitour/test/head.js:checkCondition:30
01:03:43 INFO - setTimeout handler
chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest_setTimeoutShim:684
01:03:43 INFO - chrome://mochitests/content/browser/browser/components/uitour/test/head.js:checkCondition:30
01:03:43 INFO - setTimeout handlerchrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest_setTimeoutShim:684
01:03:43 INFO - chrome://mochitests/content/browser/browser/components/uitour/test/head.js:checkCondition:30
01:03:43 INFO - setTimeout handler
chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest_setTimeoutShim:684
01:03:43 INFO - chrome://mochitests/content/browser/browser/components/uitour/test/head.js:checkCondition:30
01:03:43 INFO - setTimeout handlerchrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest_setTimeoutShim:684
01:03:43 INFO - chrome://mochitests/content/browser/browser/components/uitour/test/head.js:checkCondition:30
01:03:43 INFO - setTimeout handler
chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest_setTimeoutShim:684
01:03:43 INFO - chrome://mochitests/content/browser/browser/components/uitour/test/head.js:checkCondition:30
01:03:43 INFO - setTimeout handlerchrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest_setTimeoutShim:684
01:03:43 INFO - chrome://mochitests/content/browser/browser/components/uitour/test/head.js:checkCondition:30
01:03:43 INFO - setTimeout handler
chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest_setTimeoutShim:684
01:03:43 INFO - chrome://mochitests/content/browser/browser/components/uitour/test/head.js:checkCondition:30
01:03:43 INFO - setTimeout handlerchrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest_setTimeoutShim:684
01:03:43 INFO - chrome://mochitests/content/browser/browser/components/uitour/test/head.js:checkCondition:30
01:03:43 INFO - setTimeout handler
chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest_setTimeoutShim:684
01:03:43 INFO - chrome://mochitests/content/browser/browser/components/uitour/test/head.js:checkCondition:30
01:03:43 INFO - setTimeout handlerchrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest_setTimeoutShim:684
01:03:43 INFO - chrome://mochitests/content/browser/browser/components/uitour/test/head.js:checkCondition:30
01:03:43 INFO - setTimeout handler
chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest_setTimeoutShim:684
01:03:43 INFO - chrome://mochitests/content/browser/browser/components/uitour/test/head.js:checkCondition:30
01:03:43 INFO - setTimeout handlerchrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest_setTimeoutShim:684
01:03:43 INFO - chrome://mochitests/content/browser/browser/components/uitour/test/head.js:checkCondition:30
01:03:43 INFO - setTimeout handler
chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest_setTimeoutShim:684
01:03:43 INFO - chrome://mochitests/content/browser/browser/components/uitour/test/head.js:checkCondition:30
01:03:44 INFO - GECKO(1066) | --DOMWINDOW == 11 (0x116676d40) [pid = 1066] [serial = 18] [outer = 0x0] [url = chrome://global/content/resetProfile.xul]

Flags: needinfo?(ewright)
Assignee

Updated

2 months ago
Flags: needinfo?(ewright)

Comment 5

2 months ago
Pushed by ewright@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/ca2f86087d3f
Delay showing the Privacy-UI onboarding by 30 min for new users. r=johannh

Comment 6

2 months ago
bugherder
Status: ASSIGNED → RESOLVED
Closed: 2 months ago
Resolution: --- → FIXED
Target Milestone: Firefox 67 → Firefox 68
Assignee

Comment 7

2 months ago

Comment on attachment 9062359 [details]
Bug 1548626 - Delay showing the Privacy-UI onboarding by 30 min for new users.

Beta/Release Uplift Approval Request

  • User impact if declined: In 67 new users will have ETP turned on. For those users they will most likely receive the privacy onboarding UI on the first page they visit. This is not a good experience, and more detrimental than helpful. We want to delay showing the privacy onboarding until the profile is at least 30 min old. If this is not landed for 67, we will need to turn off the privacy onboarding using a pref in 67.
  • Is this code covered by automated tests?: No
  • Has the fix been verified in Nightly?: No
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): Simple patch. Adds a pref with a delay amount, and checks that delay is fulfilled. Easily verifiable by changing the delay pref.
  • String changes made/needed: none
Attachment #9062359 - Flags: approval-mozilla-beta?

Comment on attachment 9062359 [details]
Bug 1548626 - Delay showing the Privacy-UI onboarding by 30 min for new users.

Approved for our beta branch.

Attachment #9062359 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Assignee

Comment 9

2 months ago

steps to test:
start Firefox with a new profile
go to about:preferences#privacy and check that third-party tracking cookies are being blocked. Change to "strict" or change this setting in "custom" to turn it on.
go to google.com, or another page using third party tracking cookies

ER:
the shield will show up in the URL bar
the content blocking UI tour should not show up

go to about:config
change browser.contentblocking.introDelaySeconds to 10
navigate to a page with third party tracking cookies, or refresh google.com

ER:
the shield will show up in the URL bar
the content blocking UI tour will now show up.

Instead of changing the pref to 10 seconds, you can also wait 30 min, then refresh the page or navigate, the tour should then show up.

You need to log in before you can comment on or make changes to this bug.