-
Notifications
You must be signed in to change notification settings - Fork 43
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
recording: do not rotate the session id for hybrid SDKs #253
Conversation
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.
Consider moving these checks directly in PostHogSessionManager? We can encapsulate there and just add a guard isEnabled
to each of its methods. This way we centralize the logic and avoid to remember adding this check every time we interact with session manager in the future.
good point, done |
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.
Left a minor comment. LGTM
@@ -46,7 +46,17 @@ import Foundation | |||
timeNow - sessionLastTimestamp > sessionChangeThreshold | |||
} | |||
|
|||
private func isiOSNativeSdk() -> Bool { | |||
// postHogSdkName will be set to eg posthog-react-native if not | |||
postHogSdkName == postHogiOSSdkName |
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.
Is it safe to compute this once? Depends on when postHogSdkName
is assigned, but after that it probably won't be changing value
// postHogSdkName will be set to eg posthog-react-native if not
private let isiOSNativeSdk: Bool = postHogSdkName == postHogiOSSdkName
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 session manager is a singleton that is created before the SDK is initiated so in this case the only "safe" way is every time.
Before moving the check from PostHogSDK to here, I computed only once because I knew the new value was already assigned.
So sadly not.
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.
Could be a lazy var that's calculated the first time it's accessed. If that won't work either then it means that some sessions may be cleared or rotated as well unintentionally
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.
Yep, and that's what I want to avoid since the bug is exactly about that, so it's ok to pay the performance cost which is minimal, and if the bug is solved, I can look into making this better.
💡 Motivation and Context
Relates to https://github.com/PostHog/posthog-js-lite/pull/307/files
💚 How did you test it?
📝 Checklist