Commit Graph
166 Commits
Author SHA1 Message Date
Paul Beusterien a621e59217 Merge 6.11.0 (#4134) 2019-10-22 11:35:29 -07:00
Konstantin Varlamov a59abed15a Firestore podspec: avoid adding Firestore headers to sources (#4054)
See #4035: a certain combination of pods can lead to a broken build. The underlying issue is that CocoaPods generate a header map that includes headers from _all_ the pods in a project. A header map maps short file names to full paths and is unable to handle collisions; thus, in a CocoaPods-based build, if one pod contains a header with a common name, and the other pod tries to import a header with the same short name by relying on header maps (without specifying a longer path), the header from one pod may end up getting erroneously picked up by the other pod.

In that particular case, `SVGKit` is relying on header maps and trying to import `Document.h`, which, for reasons described above, happens to pick up `document.h` from Firestore. However, since header maps cannot handle collisions in general, this could manifest with other pods as well.

The workaround is to avoid adding Firestore header files (except the public ones) to sources.

See https://github.com/facebook/react-native/issues/14326, which describes the same problem.

Fixes #4035.
2019-10-14 14:48:27 -04:00
Ryan Wilson bbcac27b72 Release 6.10.0 (#4022)
* Update versions for Release 6.10.0

* Cherrypick #3983 and include Database in release. (#3986)

* Remove log argument that causes SocketRocket crash (#3983)

* Add FirebaseDatabase to release.

* Update CHANGELOG with version.

* Cherrypick for #3984 along with CHANGELOG update. (#3988)

* Fix race condition in FIRComponentContainer instance creation (#3984)

* Fix race condition in FIRComponentContainer instance creation

Reported in #3967. Users sometimes seeing a crash when multiple threads
concurrently try to create Firestore instances. By inspection I found
that there's a race here where two threads can check for presence in the
cache, see nothing, proceed to creation, both store a value in the cache,
and both return their copies. This would lead to two Firestores being
created for a single App.

This replaces `dispatch_sync` on a serial queue with good old
`@synchronized` blocks. `dispatch_sync` will self-deadlock if called
from a thread already on the queue while `@synchronized` allows
recursion.

No new tests are added because several tests like
`testDependencyDoesntBlock` already cover this case.

* format

* Update Core CHANGELOG

* Update Core CHANGELOG again

* Fix merge from CHANGELOG
2019-10-09 12:10:33 -04:00
Paul Beusterien 01f49c3f79 Use at least Protobuf 3.9.2 (#3916) 2019-09-24 10:29:51 -07:00
Paul Beusterien fb353c22d4 Merge 6.9.0 (#3907)
* Update versions for Release 6.9.0

* Fix unbalanced background task creation in GDTCCTUploader (#3838) (#3839)

* Add Manifest

* dependency version update

* Cherry picks for 6.9.0 (#3871)

* fixed "expiclitlySet" typo. (#3853)

* Mark unused variables (#3854)

* Mute FCM deprecated warnings with Xcode 11 and min iOS >= 10 (#3857)

* Add a third slash to make sure generated docs include these comments.b/13812238 (#3846)
2019-09-23 10:41:33 -07:00
Maksym Malyhin 89a276928c Merging the 6.8.0 release into master (#3783)
* Update versions for Release 6.8.0

* RemoteConfig fix pod spec lint (#3715) (#3716)

* ABTesting: add protos to private headers.

* RemoteConfig: #import <FirebaseABTesting/ExperimentPayload.pbobjc.h>

* ./scripts/style.sh

* Remote Config `pod spec lint` fixes (#3717) (#3718)

* Fix ExperimentPayload.pbobjc.h imports

* RemoteConfig tests: add missing headers to spec.

* Revert ExperimentPayload.pbobjc.h import for ABTesting sources.

* Add FDL to M55 (#3724)

* Remove references to UIWebView from DynamicLinks to comply with Apple "ITMS-90809: Deprecated API Usage" (#3723)
* Add FDL to M55

* Fix accessing a destroyed object (#3721) (#3725)

This was caused by running under Asan with XCode 11. Apparently, previous versions of XCode cannot catch it (which is why Travis is passing, apparently).

Also:
* enable "Detect use of stack after return" option for Asan. AFAIU, it can only be enabled in the scheme. It's already enabled for unit tests, this PR additionally enables it for integration tests;
* make Asan failures fail Travis build. They were originally not considered blocking due to some sporadic failures. I haven't seen those for some time, and worst case scenario, we can revert this change.

* Cherry pick GDT changes for 6.8.0 and increment versions (#3770)

* Release 6.8.0: cherry pick of #3764 and #3766 (#3772)

* Gate access to cached instances. (#3766)

* Gate access to cached instances.

This is causing an issue in #3728. Hopefully this will fix it, but no
repro is available yet to test. There's still an underlying race
condition where a `creationBlock` could be called twice for a component
that is supposed to cache the instance returned, but that should be
addressed in a follow up PR.

* Review feedback.

* Iterate from array copy in `latestExperimentStartTimestampBetweenTimestamp:` (#3764)

* Release 6.8.0 cherry pick: conflicting Dynamic Links changelog changes. (#3790)

* Update FDL CHANGELOG (#3781)

* Issue number, not PR number (#3785)
2019-09-06 15:19:25 -04:00
Paul Beusterien 62af87557d Merge 6.7.0 patch 1 (#3666) 2019-08-23 10:06:48 -07:00
Paul Beusterien d70c873654 Release 6.7.0 (#3646) 2019-08-21 15:41:58 -07:00
Gil d99c6c307d Upgrade LevelDB to 1.22 (#3637) 2019-08-21 08:11:21 -07:00
Gil aefd4323a2 Remove Objective-C immutable sets and maps (#3590)
* Remove Firestore/third_party/Immutable

* Update podspec and sync_project

* Project updates
2019-08-19 09:09:20 -07:00
Paul Beusterien 24a58ad86a Release 6.6.0 (#3518) 2019-08-07 11:03:41 -07:00
Paul Beusterien 35b9f31af2 Update versions for Release 6.5.0 (#3388) 2019-07-19 10:33:02 -07:00
Maksym Malyhin 3238603bbb Update versions for Release 6.4.0 (#3324) 2019-07-09 18:24:15 -04:00
Gil bc29da64e3 Put the need to include Firestore/Source/Public in the podspec (#3288)
This removes the need to munge the pods project after the fact and makes
it so that customers can click through to our headers too.
2019-07-02 09:19:10 -07:00
Ryan Wilson 3374daafd8 Merging the 6.3.0 release into master (#3217)
* Update versions for Release 6.3.0

* Revert "Raise exception when log into Facebook using OAuth.  (#3138)" (#3208) (#3209)

This reverts commit 393d060710.
2019-06-19 16:28:25 -04:00
Gil de7eb4f2e0 Migrate FSTServerTimestampValue to FSTDelegateValue (#3174)
* Migrate FSTServerTimetsampValue to FSTDelegateValue

* Make ServerTimestamp use FSTFieldValue for previous value

This makes it possible integrate the FSTServerTimestampValue changes
earlier.
2019-06-13 22:07:45 -07:00
Paul Beusterien fdbdbb489a Update versions for Release 6.2.0 (#3134) 2019-06-04 09:39:57 -07:00
Gil 2c03297030 Handle new cert bundle name in gRPC-C++ (#3037)
* Bump to gRPC-C++ 0.0.9

This release includes https://github.com/grpc/grpc/pull/19082 which
changes the certificate bundle name to make it possible to have voth
gRPC-C++ and gRPC in the same project.

* Defer loading bundles until needed.

* Handle certificante bundle rename in gRPC-C++ 0.0.9
2019-05-23 10:51:46 -07:00
Maksym Malyhin 39fe9ddd68 Merging the 6.1.0 release into master (#3049)
* Update versions for Release 6.1.0

* Release 6.1.0 - cherry pick of #3007 (#3011)

* 6.1.0 manifest updated. FirebaseInAppMessaging bumped to 0.14.1

* Early return from sending analytics events in instance ID is nil (#3007)
2019-05-21 18:58:06 -04:00
Paul Beusterien 8ed545bd2c Resolve merge conflicts from release-6.0.0 branch (#2958)
* Update versions for Release 6.0.0

* Update FirebaseSDKs.textproto with new fields. (#2818) (#2834)

* Update FirebaseSDKs.textproto with new fields.

* Update message about strip_32bits flag.

* GULAppDelegateSwizzler - proxy APNS methods separately (#2835) (#2858)

* Cherry-picks for M47 RC5 (#2882)

* fix race condition checkin is deleted before writing during app start (#2860)

* GoogleUtilities min ios version from 6 to 8 (#2876)

* Put secret and oauth credentials into the private headers for now. (#2916) (#2919)

* Add missing Messaging weak_framework dep (#2921) (#2930)
2019-05-07 11:35:58 -07:00
Marek Gilbert 706ce02527 Update podspec exclusions for new Abseil upstream 2019-05-06 09:06:21 -07:00
Paul Beusterien 417cfd7cd7 Bump FirebaseCore to 6.0.0 (#2755)
* Bump FirebaseCore to 6.0.0

* FirebaseInstanceID to 4.0.0

* FirebaseInAppMessaging is a dep too
2019-04-08 16:33:01 -07:00
Paul Beusterien 1dd5dfa991 Merge 5.20.1 back to master (#2691) 2019-04-01 06:35:28 -07:00
Paul Beusterien 145c111d1a Minimum osx to 10.11 (#2680) 2019-03-29 16:26:27 -07:00
Paul Beusterien 17f9064cd0 Release 5.20.0 (#2677) 2019-03-29 11:04:13 -07:00
Gil 2e8b9181fa Port FSTUsageValidation to C++ (#2670)
* Port FSTUsageValidation to C++

* Add an error log level
2019-03-28 13:19:28 -07:00
Gil 10ef887d51 Upgrade gRPC-C++ to 0.0.8, enabling experimental tvOS support (#2648) 2019-03-27 13:51:18 -07:00
Gil 811251d710 Exclude sub-packages of abseil that are problematic (#2597) 2019-03-20 13:48:51 -07:00
Paul Beusterien ef6c538748 Release 5.19.0 (#2589)
* Update versions for Release 5.19.0

* update the changelog (#2583)

* Revert #2491 (#2582)
2019-03-19 17:29:18 -07:00
Ryan Wilson 9848883d69 Release 5.18.0 (#2477) 2019-03-05 15:29:36 -08:00
Ryan Wilson 4209aeaa3c Merging the 5.17.0 release into master (#2416)
* Update versions for Release 5.17.0

* Fix the tag in the FIAM podspec.

* Update dependencies for FIAM.

* Updated the FirebaseCore version.

* Fix FIROptions version.

* Temporarily remove FIAM version deps for pod linting.

* Create umbrella header for FIAM (#2392)

This causes an issue when building the zip file - similar to #1857

* Remove FIAM from 5.17.0 release.
2019-02-21 21:29:31 -05:00
Gil 45866ee427 Merge release 5.16.0 (#2306)
* Update versions for Release 5.16.0
* Cherry-picking changes for M41 RC1 (#2277)
* Bump gRPC-C++ pod dependency to 0.0.6 (#2274)
* Update changelog for Dynamic Links to v 3.4.0 (#2272)
* Fix Firestore certificate loading in M41 (#2289)
* Stop bundling gRPC certificates with Firestore (#2279)
  * Remove references to roots.pem
  * Remove gRPCCertificates-Firestore.bundle
* Fix size warning in local_serializer.cc
* Suppress documentation warnings in gRPC
* strip extra references to macOS
* Reference updated Carthage docs and backport CHANGELOG (#2291)
* Carthage cert change
* Backport CHANGELOG updates from cl/230001317
2019-01-23 14:16:17 -08:00
Konstantin Varlamov 97c35f7f87 Stop bundling gRPC certificates with Firestore (#2279)
* Remove references to roots.pem
* Remove gRPCCertificates-Firestore.bundle
2019-01-18 10:54:27 -08:00
Paul Harter 2c03cf16f7 Example of Firestore working in macOS app (#2241)
Besides adding a new macOS example to the project, this:
* Adds a search for roots.pem in root of main bundle
* Accepts swiftformat 0.37 in `style.sh`
* Extends the travis_wait from the default 20 mins to 45 to allow for building iOS and macOS.
2019-01-17 12:37:42 -08:00
Konstantin Varlamov 2e44ab0974 Bump gRPC-C++ pod dependency to 0.0.6 (#2274) 2019-01-16 19:31:13 -05:00
Paul Beusterien 3990f6d0c5 Update FirebaseCore deps to 5.2 (#2255)
* SpecsStaging for Firestore
2019-01-14 11:19:52 -08:00
rsgowman 020eb60193 Simplify Serializer [En|De]code*() methods to no longer [de]serialize… (#2013)
Now, we use the re-worked nanopb deserializer (that mallocs). This also
had the advantage of moving the C++ serialization code closer to the
other platforms.

Still TODO:
- Reorder the methods within the files to resemble the other platforms.
2019-01-07 17:18:13 -05:00
Benoit St-Pierre dd9c760c07 Release 5.15.0 (#2195)
* Update versions for Release 5.15.0

* Create 5.15.0.json

* Update CHANGELOG for Firestore v0.16.1 (#2164)

* Update the name of certificates bundle (#2171)

To accommodate for release 5.14.0.

* Fix format string in FSTRemoteStore error logging (#2172)

* Update CHANGELOG.md

* Update 5.15.0.json
2018-12-17 19:57:13 -05:00
Ryan Wilson 3cd4e9c71f Update versions for Release 5.14.0 (#2145) 2018-12-05 07:56:36 -05:00
Konstantin Varlamov 16af0f13d7 Prefer roots.pem from gRPC-C++, but fall back to Firestore bundled ones if necessary (#2106)
gRPC-C++ versions up to and including 0.0.3, and also 0.0.5, don't bundle `roots.pem` in the podspec. gRPC-C++ 0.0.4 and, presumably, the currently not-yet-released 0.0.6 do. Firestore currently also bundles this file under the same bundle name, which leads to build errors when both Firestore and gRPC-C++ try to add the file into the build (only shows during archiving).

For transition, this PR:
* renames the Firestore bundle to avoid naming clash;
* changes the loading code so that it first tries to load certificates bundled with gRPC-C++ (versions 0.0.4 and 0.0.6+), but falls back to those bundled with Firestore if necessary.

At a later point, Firestore should be changed to not bundle the certificates altogether.
2018-11-22 16:10:55 -05:00
Konstantin Varlamov 1a28f17c50 Pin gRPC-C++ version to exactly 0.0.5 (#2105)
While gRPC-C++ is in its 0.* versions, any new version could potentially contain breaking changes. Make sure we only upgrade at our own pace.
2018-11-21 15:19:39 -05:00
davidair 20a0bda002 Release 5.13.0 (#2101)
* Update versions for Release 5.13.0

* Revert premature api changes (#2097)

* Revert "Add warning for deprecated API to indicate that the passed in domain name's scheme will deduced as https (#2078)"

This reverts commit ceb839293e.

* Revert "Allow setting the domainURIPrefix for custom domain names/paths when creating dynamic links (#2071)"

This reverts commit d917bac047.

* Revert "Minor edits: change domain names in test app plist, fix warnings."

This reverts commit 15f5d46807.

* Revert "Fix style. Run ./scripts/style.sh"

This reverts commit 0e16e6c863.

* Revert "Allow for custom domains in the FDL iOS SDK"

This reverts commit 5e33153f70.

* Version is still 3.2.0
2018-11-20 17:23:55 -05:00
Konstantin Varlamov 8b1efabd82 gRPC: replace Objective-C implementation with the new C++ implementation (#2068)
* Revert "Revert "gRPC: replace Objective-C implementation with the new C++ implementation (#1968)" (#2030)"

This reverts commit ea567dca47.

* gRPC: fix bugs found during testing (#2039)

All in `GrpcStream`:
* make sure there are no pending completions when "finish" operation is enqueued;
* always finish gRPC calls;
* when connectivity changes, reset not just the calls, but the underlying channel as well.

* Revert "Partially revert "Update CHANGELOG for Firestore v0.14.0 (#2025)" (#2031)"

This reverts commit b2437b80f6.

* Update changelog for v0.15.0.

* gRPC: add gRPC wrapper classes to CMake build (#2015)

* add a C++ equivalent of `FIRFirestoreVersionString`. This eliminates the only Objective-C dependency of `grpc_connection.mm` and allows making it a pure C++ file;
* open-source `binary_to_array.py` script and use it in the build to embed `roots.pem` certificate file from gRPC into the Firestore binary. The embedded char array is then used to load certificate at runtime.

* Revert local change -- do not enable sanitizers by default
2018-11-13 11:51:06 -08:00
Gil f250f50c53 Update abseil to master@{2018-11-06} (#2058)
* Update abseil-cpp to a new upstream

Update to 7990fd459e9339467814ddb95000c87cb1e4d945 master@{2018-11-06}

* Re-apply -Wcomma fix

* Update add_subdirectory for Abseil

* Remove references to Firestore/Port (which longer exists)

* Fix ABSL_HAVE_THREAD_LOCAL when targeting iOS 8 in Xcode 10

* Clean up abseil warnings

* Clean up a Firestore format string warning.

* Exclude third_party/abseil-cpp from whitespace checks
2018-11-09 10:27:31 -08:00
Paul Beusterien e77ba8c776 Release 5.12.0 (#2051)
* Update versions for Release 5.12.0
* Add missing nanopb flag
* Isolate Firestore nanopb messages in C++ namespaces (#2046)
* Add C++ namespaces and use C++ linkage for nanopb-generated sources.
* Regenerate nanopb sources as C++
* Add generated C++ nanopb sources to the podspec
2018-11-06 13:26:50 -08:00
Gil 7e5befc303 Isolate Firestore nanopb messages in C++ namespaces (#2046)
* Add C++ namespaces and use C++ linkage for nanopb-generated sources.
* Regenerate nanopb sources as C++
* Add generated C++ nanopb sources to the podspec
2018-11-05 05:50:53 -08:00
Paul Beusterien 5026453d76 Add missing nanopb flag (#2042) 2018-11-02 12:11:35 -07:00
Gil ea567dca47 Revert "gRPC: replace Objective-C implementation with the new C++ implementation (#1968)" (#2030)
This reverts commit a514bd957a.
2018-11-01 08:37:32 -07:00
Konstantin Varlamov a514bd957a gRPC: replace Objective-C implementation with the new C++ implementation (#1968)
* add support for SSL disabled to `GrpcConnection` (unfortunately, there
  currently is no way to verify this change actually works);
* make gRPC calls using the C++ implementation:
* make `FSTRemoteStore` create C++ streams instead of their Objective-C
  counterparts;
* port https://github.com/firebase/firebase-js-sdk/pull/1041: streams
  are now never recreated, only restarted;
* make `FSTDatastore` delegate server calls to the C++ implementation;
* port `MockWatchStream` and `MockWriteStream` to C++ (`FSTMockDatastore` is
  still in place, because `Datastore` is not fully ported yet);
* no longer generate Objective-C gRPC service definitions from protos;
* remove all references to Objective-C gRPC client;
* check in gRPC root certificates file and load it at runtime (the check-in part
  is temporary until gRPC-C++.podspec provides the certificate). This makes SSL
  work.
2018-10-25 20:13:03 -04:00
Gil 7d5add30ed Force Firestore to conform to C99 and C++11. (#2001)
Note that c++0x is how Xcode spells c++11.

Also fix an issue where we were accidentally using a C++14 feature.
2018-10-25 10:59:42 -07:00