Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Use Executor::CreateSerial PiperOrigin-RevId: 316809187 * Fix future crash that cause unity editor to crash second time enter play mode. FutureProxyManager still grabs FutureHandle that supposed to be cleaned up and released. Force release them during proxy manager's destructor. PiperOrigin-RevId: 316809477 * Fix integration test caused by curl http2 default setting PiperOrigin-RevId: 317136423 * Pin the Firestore pod used by the open source repo to the version from 6.26.0 PiperOrigin-RevId: 317141369 * Project import generated by Copybara. PiperOrigin-RevId: 317141369 * Add unit tests for the Firebase libraries PiperOrigin-RevId: 317141369 * Add empty workflow to manually trigger. * Add a user callback executor for android. Also fixes a flaky test because assertion is some times done before expected remote event arrives. PiperOrigin-RevId: 317154095 * Migrating deprecated aliases for absl::StrSplit, and the corresponding predicates. See b/158478280 and go/absl-cleanup-lsc for more details. This change was produced using rename_function with the spec: rename { rename_spec { new_header: "third_party/absl/strings/str_split.h" old_name: "strings::Split" new_name: "absl::StrSplit" } } Additionally, a global find/replace was done on: strings::AllowEmpty -> absl::AllowEmpty strings::SkipEmpty -> absl::SkipEmpty strings::SkipWhitespace -> absl::SkipWhitespace Tested: TAP sample presubmit queue http://test/OCL:317011231:BASE:317041434:1592460837225:fc71f604 PiperOrigin-RevId: 317399788 * Incremented version numbers to 6.15.1 PiperOrigin-RevId: 317402209 * Automated g4 rollback of changelist 317154095. *** Reason for rollback *** Not ready for release yet *** Original change description *** Add a user callback executor for android. Also fixes a flaky test because assertion is some times done before expected remote event arrives. *** PiperOrigin-RevId: 317736475 * Automated g4 rollback of changelist 314233757. *** Reason for rollback *** Not ready for release yet *** Original change description *** [C++] Provide a default executor with settings on iOS *** PiperOrigin-RevId: 317791137 * Fix a missing call to `ClearListeners` in ~FirestoreInternal. Also fix a memory leak during listener unregistration PiperOrigin-RevId: 318538053 * Enable full stack traces for crashes in unit tests Fix leaks in firestore_test that the HeapChecker found. Test with `blaze test -c dbg` to get line numbers in stack frames. PiperOrigin-RevId: 318644593 * Hooked up Persistence into Realtime Database. PiperOrigin-RevId: 318885157 * Automated g4 rollback of changelist 317736475. *** Reason for rollback *** re-roll cl/317154095 SKIP_FIRESTORE_KOKORO_BUILD_TEST=true *** Original change description *** Automated g4 rollback of changelist 317154095. *** Reason for rollback *** Not ready for release yet *** Original change description *** Add a user callback executor for android. Also fixes a flaky test because assertion is some times done before expected remote event arrives. *** *** PiperOrigin-RevId: 318891491 * Removed errant include. PiperOrigin-RevId: 318899934 * Automated g4 rollback of changelist 317791137. *** Reason for rollback *** Re-roll cl/314233757 SKIP_FIRESTORE_KOKORO_BUILD_TEST=true *** Original change description *** Automated g4 rollback of changelist 314233757. *** Reason for rollback *** Not ready for release yet *** Original change description *** [C++] Provide a default executor with settings on iOS *** *** PiperOrigin-RevId: 318938740 * Fix issues with event accumulation in Firestore C++ integration tests There are several related flaws fixed here: * The mutex in TestEventListener was not applied consistently, leading to data races that showed up as strangely failing tests on forge. * The result of FirestoreIntegrationTest::Await was implicitly trusted to produce some results, but this isn't the case when it times out. In this error case the caller would read uninitialized memory almost immediately after, leading to crashes before the log message about the timeout had necessarily been writen. * The result of FirestoreIntegrationTest::Await was implicitly trusted not to produce more results than requested, but this didn't always happen either. This would cause failures where a test would request `n` events, and use the last `n` that arrived, skipping extra events. Now the EventAccumulator ensures that it consumes events in sequence. PiperOrigin-RevId: 318943435 * Fix test warm-up Certain tests include a warm-up step to ensure that the backend was actually available, but only waited for any event. Unfortunately this doesn't work, because when the server is unavailable, the SDK will serve a from-cache event indicating the document doesn't exist. Change all these to wait for a from-cache: false event, guaranteeing that the server is actually available and confirming the document doesn't exist. PiperOrigin-RevId: 318948824 * Implement type map for public to internal types This simplifies the specification of promises, cleanup functions, and converters, since they now only need to specify the public type. PiperOrigin-RevId: 318960642 * Split PromiseFactory out of WrapperFuture This makes promise creation more closely match iOS and paves the way for removing WrapperFuture altogether. Use PromiseFactory in all internal type implementations instead of extending WrapperFuture and then dDelete WrapperFuture. PiperOrigin-RevId: 319025783 * Remove LastResult implementations PiperOrigin-RevId: 319034882 * Fix enabling debug logging from Unity in iOS. Previously, setting FirebaseFirestore.LogLevel to LogLevel.Debug would get bumped back to LogLevel.Info as an unexpected side effect of creating of a new firebase::App object. The apparent effect to users was that enabling debug logging had no effect. This made it challenging to debug issues with customers because they were unable to collect valuable debug logs when using iOS as their platform. PiperOrigin-RevId: 319056991 * Cleanup listener callbacks on `DocumentReference` and `Query`. This CL is the last in a series described in cl/312713181, cl/317397413, and resolves b/156024690. In this CL the new pattern for managing listener callbacks implemented in `FirebaseFirestore.ListenForSnapshotsInSync()` is being applied to all other places where we expose listeners (i.e. `Query` and `DocumentReference`). PiperOrigin-RevId: 319089024 * Migrate const std::string& parameters to absl::string_view. THIS CHANGE IS BELIEVED SAFE Templated asynchronous code can change the lifetime of string data as a result of this change; however, the most common uses of these (lambdas and callbacks) are excluded from this change. Further, your TAP tests pass. go/string-ref-to-string-view-lsc Tested: TAP --sample ran all affected tests and none failed http://test/OCL:319219698:BASE:319213711:1593616691507:a583f044 PiperOrigin-RevId: 319286243 * Avoid double deletion of internal objects during cleanup. This has been observed during cleanup when a DocumentReferenceInternal is destroyed, its Future API can end up deleting orphaned Future APIs that contain Futures holding the containing `DocumentReference`. PiperOrigin-RevId: 320260380 * Avoid empty statement warnings in Firebase assertions Wrapping macro bodies in do { } while(false) makes them into a statement that legitimately should be followed by a semicolon. PiperOrigin-RevId: 320272779 * Miscellaneous test-only fixes * Avoid dereferencing awaited pointers after Await has failed, preventing crashes after test timeouts. * Await `CollectionReference::Add`, preventing nondeterminism in tests. PiperOrigin-RevId: 320449430 * Delete C++ Firestore objects when C# has no more references to them. This was achieved by using the CppInstanceManager, which provides this functionality elsewhere in the Unity SDK. When running UIHandlerAutomated, this eliminates all 11 leaks from Firestore::GetFirestore(). PiperOrigin-RevId: 320609048 * Remove the unconditional calls to Firebase::Terminate() in test cleanup. These calls were present as a workaround for bugs in the Firestore destructor; however, since those bugs have been fixed the calls to Terminate() are now superfluous and, worse, can hide bugs. As a result, they are being removed. PiperOrigin-RevId: 320627333 * Change std:unique_ptr to UniquePtr This is causing Rapid build fail with error message like "error: no template named 'make_unique' in namespace 'std'; did you mean 'MakeUnique'?" Since we have our own implementation, we should use it consistently. PiperOrigin-RevId: 320681249 * Update Android deps to latest PiperOrigin-RevId: 320688041 * Make test failures in numeric transforms tests easier to read Previously, if the value was of the wrong type, you'd get a message like: Value of: snap.Get("sum").is_integer() Actual: false Expected: true Which would give no indication of what the actual type or value was. Now tests will fail like this: Expected equality of these values: snap.Get("sum") Which is: 1337 (Type::kDouble) FieldValue::Integer(value) Which is: 1337 (Type::kInteger) As an added bonus this also simplifies the calling code because now we can just assert that a value in a snapshot is equal to some expected value and GoogleTest will do the heavy lifting of printing the differences. One unsolved problem with this approach is how to handle equality within epsilon for floating point values. This turns out to be non-trivial without writing custom matchers, which is beyond the scope of what I wanted to tackle here. Instead of solving this I've changed the tests to use values that have an exact representation as doubles. This is easier to do for integral values than for fractional ones so the tests now use integer-valued doubles to achieve the same effect of cumulative addition as before. PiperOrigin-RevId: 321022746 * Add JNI Object wrapper and type conversion traits This is the first in a series of commits that aims to convert our JNI usage to a more modern approach while still remaining STLPort compatible. PiperOrigin-RevId: 321059370 * Add JNI ownership types These generate local and global reference subtypes of a given JNI wrapper that make it possible to automatically emit DeleteLocalRef and DeleteGlobalRef calls in the course of regular usage. PiperOrigin-RevId: 321175591 * Add FIREventScreenView and params PiperOrigin-RevId: 321183165 * Add another line in the generate constant header script The generated headers are currently missing a newline prior to @ifdef cpp_examples which is causing doc generation to fail. PiperOrigin-RevId: 321272103 * Add initial Env with minimal support for Strings PiperOrigin-RevId: 321475293 * Rework ToJni conversions to enable pass-through of JNI types Previously, all types needed to be in the JniTypeMap, but this was never intended to be the end state because it would require an entry for all subtypes of Object which couldn't scale. The new implementation based on ranked choice overload selection also resolves ambiguities. For example: unsigned char could be a uint8_t (which converts to jbyte) or the underlying type for jboolean. Absent the ranking, an argument of type unsigned char would resolve to multiple overloads and would be ambiguous. PiperOrigin-RevId: 321835773 * Add support for calling methods and getting fields. PiperOrigin-RevId: 322398533
- Loading branch information