* update nanopb from 0.3.9.5 to 0.3.9.6
This fixes issues building firestore SDK with Python3.
Interestingly, latest version 0.4.2 still errors during the build
but 0.3.9.6 works. The git commit for this fix in nanopb
https://github.com/nanopb/nanopb/commit/63f8e5e4946a5f8f0211b454bd37187871c3d023
* Update generated sources
* updating just nanopb dependency version
nanopb updated from 0.3.9.5 to 0.3.9.6
(pod version 1.30905.0 to 1.30906.0)
* Add missing source specifier
* Generated files for protos using nanopb 0.3.9.6
* removed unnecessary whitespaces in files generated by protoc
* using more qualified relative paths for header includes
* Changelog
Co-authored-by: Marek Gilbert <mcg@google.com>
Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
* Remove Protobuf dependency, add struct-ish class that mimics ABTExperimentPayload
* Remove a lot of the compiler errors, but not all of them. We need to figure out how RC serializes the NSData objects passed to FIRExperimentController in updateExperimentsWithServiceOrigin:
* Add ABTExperimentPayload class that replaces generated proto, refactor classes that depend on it
* Add unit testing class for ABTExperimentPayload
* Updates to ABTExperimentPayload API, tests for ABTConditionalUserPropertyTest, add tests for ABTExperimentPayload
* Update podspec to pull in testing resources
* Add utility class for parsing test files. Use it in ABTExperimentPayloadTests
* Fix FIRExperimentController tests
* Better documentation
* Run scripts/styles.sh
* Fix whitespace
* Remove protobuf imports
* Bump pod spec version for ABT SDK, depend on new ABT SDK in RC. Fix up RemoteConfigExperiment to use new ABTExperimentPayload object
* scripts/style.sh
* Update In-app messaging to use new ABTExperimentPayload class, which involves extending the ABTExperimentPayload initializer to accept different values for overflowPolicy and experimentStartTime
* Delete test payload
* Revert scripts/check_imports.swift
* Better initialization tags for ABTExperimentLite
* Update CHANGELOGs
* Remove private headers in podspec, use integerValue to parse integers
* Refactor ABTExperimentPayload header into Private headers. Fix integer types for millisecond metadata
* scripts/styles.sh
* Fix integer parsing
* Fix copyrights
* Fix CHANGELOG typo:
* Add private_header_files to public_header_files
* Try just using NSInteger for experimentStartTimeMillis
* Bump FIAM dependency on ABTesting
* Use long long for milli parameters (32-bit apps)
* Use longlong in test timestamps
* Don't cast to nsnumber in tests
* Use in64_t
* Fix Test Overflow
* Bump major version on ABT SDK
* Bump ABTesting version in Firebase.podspec
Co-authored-by: Paul Beusterien <paulbeusterien@google.com>
* Update versions for Release 6.23.0
* Add FIAM to release manifest (#5383)
* Don't leak upload packages or deadlock on lifecycle events (#5382) (#5384)
* Don't leak upload packages or deadlock on lifecycle events
GDTCORUploadPackages would call targetToStorage in -initWithTarget. When this method was running during app terminate, this would cause a deadlock because calling targetToStorage is re-entrant while GDTCORRegistrar is sending lifecycle events to all the instances it's tracking.
NSTimer's invalidate method is also called whenever a package is completed, retried, or expired, without regard to the presence of a package handler.
A unit test is added to ensure that GDTCORUploadPackage's are not leaked by a retain
TSAN caught no issues
* Don't mark GDTCORUploadPackage -init as unavailable
Co-authored-by: Michael Haney <mikehaney24@users.noreply.github.com>
* FIAM bump podspec version to 0.19.3 (#5386)
* M69: add FIS. (#5412)
* M69: add FIS.
* Bump FIS version to 1.2.0
Co-authored-by: Michael Haney <mikehaney24@users.noreply.github.com>
* Update versions for Release 6.21.0
* Libraries should save state if a completion block is requested (#5147) (#5148)
* Libraries should save state if a completion block is requested
Currently, the onComplete block of sendXEvent:onComplete: is invoked when the event bytes are written to disk. However, if the app crashes before a lifecycle event occurs (trigger GDTCORStorage to serialize to disk), that event if effectively lost because the metadata has all been lost. This change triggers the saving of state of GDTCORStorage and prioritizers (if they implement it) if an onComplete block has been given.
* Remove RC from M67 (#5157)
* Revert "Migrate from using IID SDK for Remote Config to the new FIS SDK (#5096)" (#5156) (#5159)
This reverts commit 887ff82494.
* Only delete events when package was successfully delivered (#5172) (#5173)
* Only delete events when package was successfully delivered
* Add unit test to check that retrying a package delivery doesn't delete an event file
Co-authored-by: Michael Haney <mikehaney24@users.noreply.github.com>
Co-authored-by: Maksym Malyhin <mmaksym@google.com>
* Depend on FIRInstallations instead of IID, load an installations object into FIRInAppMessagingPrivate.h
* Bootstrap FIRInAppMessaging.h with an instance of FIRInstallations
* Update FIRIAMClientInfoFetcher to use FIRInstallations method to grab FID and FIS Token
* Call new client info fetcher method
* Fix up tests
* Change nullability for FIRInstallations object, handle null case
* More verbose comments in FIRIAMClientInfoFetcher, call completion in case that FIS token is fetched, but FID fails
* Throw error and call completion if Firebase Installations object is not created
* Send FIS token with method fetch requests
* Add test class for FIRIAMClientInfoFetcher
* Refactor FIRIAMClientInfoFetcher to get a FIRInstallations object injected
* Add unit testing for fetchFirebaseInstallationDataWithProjectNumber: in FIRIAMClientInfoFetcher
* Streamline unit tests, add case for nil FirebaseInstallations, clean up comments that were left in
* Parse out experiment payload for experimental FIAMs and store it on FIRIAMMessageDefinition
* Fix bugs in parsing experimental payload
* Add nullable experiment payload to FIAM message definition. Add method in FIRExperimenmtController to validate running experiments and call this when new messages are fetched from FIAM backend
* Add and document new ABT methods, update FirebaseInAppMessaging.podspec to depend on ABT
* Clean up deprecated public message initializers, add experiment payload to private initializers
* Activate experiment for experimental messages upon impression
* Clean up activateExperiment API
* Add experimental payload to all message definition initializers
* Add unit test coverage for new ABT methods
* Add test coverage for parsing experimental messages
* Verify experiment payload gets passed to message superclass
* Scripts/style.sh
* Update Podfile for UI test app to include AB Testing SDK
* Add back deprecated initializers for now, these are needed for the test app
* Test for non-nil experiment payload
* Use mutable array directly, better memory usage
* Bump ABTesting podspec version, depend on new ABT in FIAM
* Remove mentions of FIREventOrigins.h
* Remove experiment payload from public API, hide it in private
* Scripts/style.sh
* Fix comment indentation, allow for FIAM to depend on minor version updates of ABTesting
* Move ABTExperimentPayload import to private header
* Update versions for Release 6.18.0
* Forward declare class to fix linting. (#4935)
* Revert "Forward declare class to fix linting. (#4935)" (#4937)
This reverts commit 64bbf378bb.
* Move display SDK source and resources into FIAM SDK
* Change files prefixed with FID to be prefixed FIRIAM
* Restructure example apps in firebase-ios-sdk directory
* Fix directory structure for FIAM
* Move proto files into base directory
* Fix up proto files
* Move unit test files to Firebase/InAppMessaging/Tests
* Move FIRIAMSDKModeManagerTests and require app host in podspec
* Move sample apps to tests folder
* Add empty repo for FIAMDisplay that generates a warning
* Fix up functional tests app
* Fix up default UI test app
* Re-generate protos
* Add warning to remove display pod
* Remove display podspec from .travis.yml
* Remove trailing whitespace
* Fix import in test app
* Add changes to point to the default test app
* Wrap iOS version conditionals
* Add line in podspec about deprecation
* Delete whitespace in podspec
* Delete pods section in project file
* Update changelog with consolidation info
* Fix indentation in podspecs
* Fix some import issues
* Fix indent on FirebaseInAppMessaging.podspec
* Delete FirebaseInAppMessagingDisplay, update podfile for external test app
* Update podfiles, bump iOS min version to 9, remove iOS 9 checks in FIRIAMActionUrlFollowerTests
* Add line in CHANGELOG referencing deletion of display sdk pod
* Remove unused podfile
* Update min version on Podfiles to iOS 9
* Add back FirebaseInAppMessagingDisplay.h
* Add iOS support message to CHANGELOG.md
* Wrap necessary deprecated iOS 9 call
* Update versions for Release 6.15.0
* Update podspec dependencies for M62 (#4640)
* Cherry-picks for M62. (#4650)
* Include GoogleUtilities in the release manifest.
* Crashlytics fix header import ordering issue (#4649)
Co-authored-by: Sam Edson <samedson@google.com>
Co-authored-by: Ryan Wilson <wilsonryan@google.com>
* 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
* 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)
* Update versions for Release 6.3.0
* Revert "Raise exception when log into Facebook using OAuth. (#3138)" (#3208) (#3209)
This reverts commit 393d060710.
* Add card scene to storyboard, use IBDesignable rounded corners view
* Use IBdesignable rounded corners view for modal message
* Add card message type
* Parse card message type, add new fields for secondary actions and landscape URLs to view model classes
* Display a really basic card message
* Naive landscape image loading (needs error handling)
* Quick bug fix
* Wire up Display to show cards
* Wire up Display to show cards
* Fix tablet width
* Pick right image for orientation
* Remove placeholder image sizing constraints at build time
* Add more test functionality
* Better image sizes
* Size message image out
* Switch to body text view rather than body label
* Make the body text view scrollable. Set correct text color on button.
* Hook up buttons and text color
* Include action URL in messageClicked callback
* Fix action URL
* Update pod specs
* Update message clicked delegate to pass an action object, not just the actionURL
* Change podspec versions back, hook up background color
* Don't animate scroll to top on scroll view
* Fix text scrolling bug
* Fix portrait and landscape fetching code. Fix background color bug
* Flesh out FIRIAMMessageContentDataWithImageURLTests
* Fix up FIRIAMFetchFlowTests
* Fix up FIRIAMMessageClientCacheTests
* Fix up FIRIAMMessageDisplayForTesting
* Fix fetching in FIRIAMMessageContentDataWithImageURL
* Tests for message parsing
* Fix up view controllers for banner, modal, image only. Add a view controller for testing card
* Add required vertical compression resistance for primary and secondary action button
* Add UI tests for card view controller
* Add back deprecated messageClicked: method, call it if the newer method isn't implemented. Make all display delegate methods optional.
* Run scripts/styles.sh
* Documentation cleanup
* Fix style in FIRIAMMessageContentDataWithImageURLTests.m
* Add missing copyright notices
* Bump versions of both FIAM SDKS
* Remove default.profraw
* Address some logging punctuation nits. Cancel landscape image load if portrait image load fails.
* Add missing error flow in image fetch. A few comment nits.
* Shorten up init method for CardDisplayMessage
* Documentation updates
* Deintegrate cocoa pods
* Include landscape image data in test image load class
* Fix Swift naming for InAppMessagingAction in UItests
* Remove card message initializer from public API, place into a private header
* Mark some properties on the card object as readonly that should've been already, Find a way to initialize a card message in the UI tests.
* Bump dependency on InAppMessaging given changes
* Bump versions in podspecs for both SDKs
* Make all view model properties for message subclasses readonly
* Revert changes to other message subclasses
* Make card view model properties readonly
* Run styles.sh
* 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)
* 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.