-
Notifications
You must be signed in to change notification settings - Fork 417
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pixel retrying #3358
Pixel retrying #3358
Conversation
* main: Ensure toast closures are called on the main thread (#3347) Update survey builder OS version (#3348) BSK - Add feature flag for SKAN API (#3356) Remove checking for negative attribution case (#3355) C.S.S Bump (Via BSK) (#3346) Update Onboarding gradients (#3350) Alessandro/onboarding copy and private search options (#3349) Onboarding Intro - Add choose address bar position (#3340)
error: nil, | ||
includedParameters: [.appVersion, .atb], | ||
withAdditionalParameters: [:], | ||
onComplete: { _ in }) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Error handling here could be improved by sending a write failure pixel
…torage` usage. Still to do: update PersistentPixel to use a simple dispatch queue for access control, we shouldn't need the lock any more.
This queue uses a date check to prevent duplicate calls from triggering duplicate processing events. If two events are queued one after the other, the second one will return early because of this check.
# By bwaresiak # Via GitHub * main: Improve unit tests reliability (#3430) # Conflicts: # Core/PixelFiring.swift # DuckDuckGoTests/MockPixelFiring.swift
Tests do not yet pass, this will be fixed in the next commit.
* main: Remove `SubscriptionFeatureAvailability` from `AppDependencyProvider` (#3447) Release 7.141.0-2 (#3451) Do not notify the FE on experiment activation (#3450) point to bsk branch (#3444) bump bsk for content blocker rules fix (#3445) speculative fix for set bars visibility crashes (#3442) Release 7.141.0-1 (#3443) Fix browsing menu bottom offset when bar location set to bottom (#3440) Properly handle responses that should trigger download action (#3407)
stub { request in | ||
request.url?.absoluteString.contains(Pixel.Event.forgetAllPressedBrowsing.name + "_d") == true | ||
} response: { _ in | ||
return HTTPStubsResponse(data: Data(), statusCode: 200, headers: nil) | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The stubs in this test file weren't actually being used this entire time, since each test is using a mock pixel sender – as a result, these tests were not really testing anything. I've changed them to instead look at the pixel names sent to the mock.
These base functions are not themselves thread-safe, but are always expected to run on the `fileAccessQueue`. A dispatch precondition has been added to ensure this. The reason for not making the base functions thread-safe is that some operations expect to call both of them in a single operation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great job Sam, left one more comment around some warnings, but overall it's approved :)
# By Daniel Bernal (4) and others # Via Daniel Bernal (1) and others * main: Pixel retrying (#3358) Remove `voiceSearchHelper` from `AppDependencyProvider` (#3452) Update AutoClearSettingsViewController to use DI for app settings (#3448) Bump BSK (#3441) Remove `SubscriptionFeatureAvailability` from `AppDependencyProvider` (#3447) Release 7.141.0-2 (#3451) Do not notify the FE on experiment activation (#3450) point to bsk branch (#3444) bump bsk for content blocker rules fix (#3445) speculative fix for set bars visibility crashes (#3442) Release 7.141.0-1 (#3443) Fix browsing menu bottom offset when bar location set to bottom (#3440) Properly handle responses that should trigger download action (#3407) Add Events Firing for Phishing Detection Settings: Point to BSK (#3423) DuckPlayer: Temporary Fix for Watch In Youtube (#3437) Add 'Open in New Tab' support for DuckPlayer (#3431) update BSK dependency (#3434) Release 7.141.0-0 (#3435) Add error handling to contrainer removal (#3424) Prevent autofill prompt crash for edge case where a context menu is also visible on screen (#3417) # Conflicts: # DuckDuckGo.xcodeproj/project.pbxproj # DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
Task/Issue URL: https://app.asana.com/0/72649045549333/1208300963176861/f
Tech Design URL:
CC:
Description:
This PR adds pixel retrying behavior for a small set of pixels.
Steps to test this PR:
dryRun
mode or simulate a failed error call by adding an error toPixel.swift#240
- adjust the following steps based on which path you take (i.e., enabling Airplane Mode to test real pixel call failures, or removing the fake error and rebuilding)m_netp_controller_start_attempt
andm_netp_controller_start_success
pixels (note: even if you're offline, it's expected to see the success pixel, as the success pixel only reports the request we send to the OS to start the VPN, which is not affected by connectivity)Persistent pixel retrying
in the logs and then search for the pixel names (m_netp_controller_start_attempt
,m_netp_controller_start_success
)Definition of Done (Internal Only):
Copy Testing:
’
rather than'
Orientation Testing:
Device Testing:
OS Testing:
Theme Testing:
Internal references:
Software Engineering Expectations
Technical Design Template