Skip to content

Merge 7.0.0 to dev #209

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

Merged
merged 193 commits into from
Dec 17, 2020
Merged

Merge 7.0.0 to dev #209

merged 193 commits into from
Dec 17, 2020

Conversation

DellaBitta
Copy link
Contributor

Merging code from main branch (6.16.0 release) to dev.

  • Resolved 123 merge conflicts.

wu-hui and others added 30 commits June 18, 2020 14:52
PiperOrigin-RevId: 316809187
…lay mode.

FutureProxyManager still grabs FutureHandle that supposed to be cleaned up and released. Force release them during proxy manager's destructor.

PiperOrigin-RevId: 316809477
PiperOrigin-RevId: 317141369
PiperOrigin-RevId: 317141369
Add empty workflow to manually trigger.
Also fixes a flaky test because assertion is some times done before expected remote event arrives.

PiperOrigin-RevId: 317154095
…g 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
PiperOrigin-RevId: 317402209
*** 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
*** Reason for rollback ***

Not ready for release yet

*** Original change description ***

[C++] Provide a default executor with settings on iOS

***

PiperOrigin-RevId: 317791137
Also fix a memory leak during listener unregistration

PiperOrigin-RevId: 318538053
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
*** 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
PiperOrigin-RevId: 318899934
*** 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
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
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
This simplifies the specification of promises, cleanup functions, and
converters, since they now only need to specify the public type.

PiperOrigin-RevId: 318960642
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
PiperOrigin-RevId: 319034882
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
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
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
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
 - Replaced std mutex with our own app mutex in app/src/heartbeat_date_storage_desktop.cc.
 - Removed heartbeat code from Android builds.
@google-cla
Copy link

google-cla bot commented Dec 16, 2020

We found a Contributor License Agreement for you (the sender of this pull request), but were unable to find agreements for all the commit author(s) or Co-authors. If you authored these, maybe you used a different email address in the git commits than was used to sign the CLA (login here to double check)? If these were authored by someone else, then they will need to sign a CLA as well, and confirm that they're okay with these being contributed to Google.
In order to pass this check, please resolve this problem and then comment @googlebot I fixed it.. If the bot doesn't comment, it means it doesn't think anything has changed.

ℹ️ Googlers: Go here for more info.

@google-cla google-cla bot added cla: no and removed cla: yes labels Dec 16, 2020
@google-cla
Copy link

google-cla bot commented Dec 16, 2020

We found a Contributor License Agreement for you (the sender of this pull request), but were unable to find agreements for all the commit author(s) or Co-authors. If you authored these, maybe you used a different email address in the git commits than was used to sign the CLA (login here to double check)? If these were authored by someone else, then they will need to sign a CLA as well, and confirm that they're okay with these being contributed to Google.
In order to pass this check, please resolve this problem and then comment @googlebot I fixed it.. If the bot doesn't comment, it means it doesn't think anything has changed.

ℹ️ Googlers: Go here for more info.

Copy link
Contributor

@vimanyu vimanyu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: end of file new lines
LGTM otherwise.

}

afterEvaluate {
generateReleaseBuildConfig.enabled = false
}

apply from: "$rootDir/android_build_files/extract_and_dex.gradle"
extractAndDexAarFile('admob_resources')
extractAndDexAarFile('admob_resources')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit:newline at end of file

}

afterEvaluate {
generateReleaseBuildConfig.enabled = false
}

apply from: "$rootDir/android_build_files/extract_and_dex.gradle"
extractAndDexAarFile('app_resources')
extractAndDexAarFile('app_resources')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit:newline at end of file

@@ -59,4 +59,4 @@ afterEvaluate {
}

apply from: "$rootDir/android_build_files/extract_and_dex.gradle"
extractAndDexAarFile('google_api_resources')
extractAndDexAarFile('google_api_resources')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit:newline at end of file

@@ -55,4 +55,4 @@ afterEvaluate {
}

apply from: "$rootDir/android_build_files/extract_and_dex.gradle"
extractAndDexAarFile('invites_resources')
extractAndDexAarFile('invites_resources')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit:newline at end of file

@@ -0,0 +1,18 @@
#ifndef FIREBASE_FIRESTORE_CLIENT_CPP_SRC_IOS_FIREBASE_METADATA_PROVIDER_DESKTOP_H_
#define FIREBASE_FIRESTORE_CLIENT_CPP_SRC_IOS_FIREBASE_METADATA_PROVIDER_DESKTOP_H_
Copy link
Contributor

@sunmou99 sunmou99 Dec 16, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems the file name doesn't consist with the path. Looks like a desktop files under ios path?

@google-cla
Copy link

google-cla bot commented Dec 16, 2020

We found a Contributor License Agreement for you (the sender of this pull request), but were unable to find agreements for all the commit author(s) or Co-authors. If you authored these, maybe you used a different email address in the git commits than was used to sign the CLA (login here to double check)? If these were authored by someone else, then they will need to sign a CLA as well, and confirm that they're okay with these being contributed to Google.
In order to pass this check, please resolve this problem and then comment @googlebot I fixed it.. If the bot doesn't comment, it means it doesn't think anything has changed.

ℹ️ Googlers: Go here for more info.

@google-cla google-cla bot added cla: no and removed cla: yes labels Dec 16, 2020
@DellaBitta
Copy link
Contributor Author

nit: end of file new lines
LGTM otherwise.

Yep, the end of file problems came straight out of the internal repo. I'm working on a CL to push buid fixes made here back into the internal repo. I'll be sure to add new lines to these files. Thanks!

@google-cla
Copy link

google-cla bot commented Dec 17, 2020

We found a Contributor License Agreement for you (the sender of this pull request), but were unable to find agreements for all the commit author(s) or Co-authors. If you authored these, maybe you used a different email address in the git commits than was used to sign the CLA (login here to double check)? If these were authored by someone else, then they will need to sign a CLA as well, and confirm that they're okay with these being contributed to Google.
In order to pass this check, please resolve this problem and then comment @googlebot I fixed it.. If the bot doesn't comment, it means it doesn't think anything has changed.

ℹ️ Googlers: Go here for more info.

@google-cla google-cla bot added cla: no and removed cla: yes labels Dec 17, 2020
@DellaBitta
Copy link
Contributor Author

@googlebot I fixed it.

@DellaBitta DellaBitta merged commit d3a8bcc into dev Dec 17, 2020
@DellaBitta DellaBitta deleted the merge-m83 branch December 17, 2020 16:29
@google-cla
Copy link

google-cla bot commented Dec 17, 2020

We found a Contributor License Agreement for you (the sender of this pull request), but were unable to find agreements for all the commit author(s) or Co-authors. If you authored these, maybe you used a different email address in the git commits than was used to sign the CLA (login here to double check)? If these were authored by someone else, then they will need to sign a CLA as well, and confirm that they're okay with these being contributed to Google.
In order to pass this check, please resolve this problem and then comment @googlebot I fixed it.. If the bot doesn't comment, it means it doesn't think anything has changed.

ℹ️ Googlers: Go here for more info.

@google-cla google-cla bot added cla: no and removed cla: yes labels Dec 17, 2020
@firebase firebase locked and limited conversation to collaborators Jan 17, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants