-
Notifications
You must be signed in to change notification settings - Fork 578
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
Aqs sdk processinfo #5488
base: main
Are you sure you want to change the base?
Aqs sdk processinfo #5488
Conversation
#5397) Introduces a new SessionDataService that is bound to by each process and used to deliver session-ids.
Co-authored-by: jrothfeder <[email protected]>
Created a SessionLifecycleService class which contains all the service-side code, and a SessionLifecycleClient object which handles the connection to the server and the sending and receiving of events.
Avoid changing the api surface. Having `val`s at the file level causes Kotlin to generate a public class with the filenameKt which adds a public class to the public api surface: "The public api surface has changed for the subproject firebase-sessions: error: Added class com.google.firebase.sessions.SessionDatastoreKt [AddedClass]". So we have to put them in a class or companion object.
…ance` so it can be accessed from a bound service. (#5407) Co-authored-by: jrothfeder <[email protected]>
Make `SessionGenerator` injectable. Also made `WallClock` an object to avoid needing to pass it around. Moved `collectEvents` out of SessionGenerator since it will need to be handled in the service.
Co-authored-by: jrothfeder <[email protected]>
…ave vimean superpowers. (#5413) Co-authored-by: jrothfeder <[email protected]>
Using the SessionGenerator to generate new sessions and create SessionDetails instead of directly creating UUID session ids in the service. Also updated the boundClients queue to be a LinkedBlockingQueue to avoid ConcurrentModificationExceptions if a client binds while a message is being handled by the server.
Made SessionsSettings injectable. Also removed SessionMaintainer.
Co-authored-by: jrothfeder <[email protected]>
This will make it safe to call `Firebase.app` any time from anywhere in this SDK.
#5427) … the FirelogPublisher handle the full SessionEvent creation since that's only relevant to Firelog.
#5431) … the MainLooper which is the application main thread and so could interfere with things there. Also fixes issue with missing import.
#5434) …and use the same Messenger instance for every client. This makes sure that all state manipulation happens on the same looper, so we can get rid of the LinkedBlockingQueue or worry about volatile booleans.
Co-authored-by: Mila <[email protected]> Co-authored-by: Rodrigo Lazo <[email protected]> Co-authored-by: Greg Sakakihara <[email protected]> Co-authored-by: David Motsonashvili <[email protected]> Co-authored-by: David Motsonashvili <[email protected]> Co-authored-by: Vinay Guthal <[email protected]> Co-authored-by: cherylEnkidu <[email protected]> Co-authored-by: Mark Duckworth <[email protected]> Co-authored-by: Ehsan Nasiri <[email protected]> Co-authored-by: Rosalyn Tan <[email protected]> Co-authored-by: themiswang <[email protected]>
#5442) …e of new log lines.
#5443) …acks based on the sdk enablement in SessionsSettings.
#5452) …irebaseSessionsDependencies` can be accessed directly. --------- Co-authored-by: jrothfeder <[email protected]>
…ks (#5447) Co-authored-by: Jamie Rothfeder <[email protected]>
#5461) …e and managed by the Registrar in order to improve testability in the SessionLifecycleService.
Adds fake implementations for the newly added interfaces and creates a fake registrar installing our fake implementations.
#5468) … lifecycle events. We can't have the handler thread reacting to lifecycle events because: * There's no guarantee that an activity is ever started on a process, but we still want session ids pushed there (eg. service-only process) * There can be more than one activity per process and the first time one of those activities is stopped, the handlertthread will be stopped and so we'll have no thread to process the callback messages. Updated to use MainLooper
#5472) …t, and pulls the service binding into a different class to improve testability of the client.
Keep track of pending foreground before settings fetched to catch the first session in cold start with no settings cache.
#5481) … processes and crash behaviour with the SDK.
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
Release note changesThe following release notes were modified. Please ensure they look correct. Release Notesfirebase-perf### {{perfmon}} version 20.5.1 {: #performance_v20-5-1}
* {{changed}} Make Fireperf generate its own session Id.
#### {{perfmon}} Kotlin extensions version 20.5.1 {: #performance-ktx_v20-5-1}
The Kotlin extensions library transitively includes the updated
`firebase-performance` library. The Kotlin extensions library has no additional
updates. |
Coverage Report 1Affected Products
Test Logs |
No description provided.