Commit Graph
34 Commits
Author SHA1 Message Date
square c917c87165 fixed "expiclitlySet" typo. (#3853) 2019-09-14 07:22:44 -07:00
Maksym Malyhin f2536cf71f FirebaseApp: send Core Diagnostics data on appDidBecomeActive (#3437)
* FIRApp: send CoreDiagnostics data on appDidBecomeActive.

* ./scripts/style.sh

* Renaming.

* FIRAppTest: stub  FIRCoreDiagnosticsConnector to avoid invoking FIRCoreDiagnostics methods in the tests.

* Run ./scripts/style.sh

* Rename to `logCoreTelemetry`
2019-07-29 06:56:09 -04:00
Michael Haney 783ee5b126 Implement Firebase CoreDiagnostics (#3129)
* Implement CoreDiagnostics interop

For use by FirebaseCore.

Please pay special attention to the changes in FIRApp, I've replaced passing FIRApp in the notification with a data object that will eventually replace the same information that FIRDiagnostics extracted.

* Add CoreDiagnosticsInterop to the Example Podfile

* Style and xcodeproj updates

* Update Podfiles that dep on FirebaseCore

So that they also have a dep on FirebaseCoreDiagnosticsInterop

* ran pod deintegrate to remove unintended xcodeproj changes

* Fix Podfile paths

* Add FCD to if_changed and travis.yml

* Fix building with Firestore

* Style

* Whitespace

* Fix a changed internal API

* Make pod paths consistent

* Restore connectivity_monitor_noop.cc style

* Remove logging prior to [FIRApp configure]

Also remove sendLogsWithServiceName:version:

* style

* Remove nil checks from diagnostics data

* Put back some deleted symbols

* Restore the sendLogsWithServiceName:version: method, but as a no-op

* Restore the original version of sendLogs...

* Allow an unused parameter

* Remove obsolete nsnotificationcenter related stuff

* Whoops, missed the header change.

* Final changes to support FIRCoreDiagnostics

These changes are necessary because FIRCore has a hard dep on FIRCoreDiagnostics (FIRCD) and FIRCoreDiagnosticsInterop.

Components can't be used because FIRCD would need to have a hard dep on FIRCore to get access to FIRLibrary, FIRComponent, FIRComponentContainer, and FIRComponentCreationBlock and this would create a dep cycle. So, an extern has been put into the interop lib and the variable is implemented in the connector class inside of FIRCore, but it's unset. FIRCD actually sets that variable in +load, allowing use of FIRCD.

FIRCD can also be removed as a dependency with no ill effect by end users setting the environment variable DISABLE_FIREBASE_DIAGNOSTICS=1

* Add nanopb and project generation infrastructure

* Convert FIRCoreDiagnostics to canonical nanopb, and move to OSS.

* Remove custom build steps for CoreDiagnostics

* Addressing review comments

* Update versions, tags, and port the relevant unit tests for FIRCD

* Version and platform fixes

* Fix podspec expected tags

* A hack to solve a chicken-and-egg problem with pod lib linting.

* Heartbeat implementation

* FIRDiagnosticsDateFileStorageTests

* Fix tests for non-iOS platforms

* Heartbeat tests

* Fix initialization.

* Cleanup Installation ID.

* Fix testProtoPopulation.

* Merge conflict fix

* Typo fix.

* Remove FIRCore dep from FIRCD unit tests and move symbols to interop

* Run ./scripts/style.sh

* Typo

* #ifdef comment

* File license header.

* Import FIRDiagnosticsDateFileStorage.h using relative path.

* FIRDiagnostics -> FIRCoreDiagnostics

* Docs syntax

* Docs

* Docs typo

* Add shared variables to the interop lib

I know this goes against the convention, but it's actually the only way to resolve this very unique problem.

* Fix comment

* Style

* Removed lib version passing.

* Remove env checking for conditional deps

* Style

* Address whitespace issues

* Add copyright notice

* Add new deps to Podfiles

* Fix trailing space

* Some changes to fix working in an extension.

* Fix type in Podfile

* GDT: begin/end background task only for iOS and TVOS applications.

* Fix typo

* Style

* Stop sharing kFIRService strings across pods

* Travis test

* Change all TARGET_OS_TVOS macros to TARGET_OS_TV

TARGET_OS_TVOS doesn't exist.

Also macro out a UIApplication reference.

* style

* Update all Podfiles with deps on FIRCore

* Fix trailing whitespace

* Update Firestore cmake

* Fix FIAM build break (#3254)

* Additional cmake changes

* Fix linker issue with deprecated CoreDiagnostics (#3257)

* Adding more deps to cmake

* Fix linker error (#3266)

* Rerun only IAM tests

* whitespace

* No xcpretty or frameworks run

* Fix typo

* Revert "No xcpretty or frameworks run"

This reverts commit afc1abba37.

* Revert "whitespace"

This reverts commit fd06955a56.

* Revert "Rerun only IAM tests"

This reverts commit 98ce07600f.

* Run travis on this branch

* Add support for expanding PODS_TARGET_SRCROOT in CMake (#3267)

* Fix a few things that should have been splatted but weren't

* Define PODS_TARGET_SRCROOT in CMake for compatibility with CocoaPods

* Compile pods we depend upon with looser settings

* Rename the nanopb dependency to match what CMake actually has

* Make #include <nanopb/pb.h> work

Remove the old way of #include <pb.h> once we change the Firestore
nanopb generator to match.

* Fix warnings that fail the build

* Remove typed enum and fix a comment.

* Fix an import

* Change a line so it's not altered by Copybara

* More changes to stop copybara from altering the wrong sources

* Remove trailing whitespace

* Fix copybara modifying python.

* Add additional field in firebasecore.proto (#3273)

* Remove the dependency on interop to populate a shared variable.

* style

* Create travis jobs for FirebaseCoreDiagnostics (#3245)

* Create travis jobs for FirebaseCoreDiagnostics

And update the pod lib lints for GDT.

Remove the mph-master branch before merging to master.

* Add support for FIRCD to if_changed.sh

* Adjust tests

* Unavailable init methods should not be nullable (#3276)

* Allow firestore api to work with Codable objects + ExplicitNull + Integration tests (#3261)

* Convinience api for codables

* Integration Tests

* ExplicitNull implementation

* Update to CocoaPods 1.7.3 (#3280)

* Import GULLoggerLevel.h via public framework header (#3277)

* 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.

* Ensure Storage initializer doesn't get called (#3294)

* FIROptions.appGroupID introduced (#3293)

* Use a consistent set of dependencies on all platforms (#3289)

* Use a consistent set of dependencies on all platforms

* pod install for uniform dependencies

* Store the coerced base value in the BaseMutation (#3292)

* In card message: set the text color on the body text view (#3286)

* In card message: set the text color on the body text view

* Fix bug where card messages in test app were showing up with two of the same buttons

* Revert change to text color

* [docs] add missing semicolon (#3305)

Add missing semicolon to code example

* Add explicit Foundation import. (#3309)

This is causing issues when building an XCFramework.

* Pass the correct compiler flag for CoreDiagnostics. (#3312)

* Pass the correct compiler flag for CoreDiagnostics.

When CoreDiagnostics is open sourced, we'll need to ensure that the
right compiler flag is passed. This doesn't add support for Carthage yet
but allows the frameworkbuilder to pass the flag for carthage as well.
An update to the zipbuilder to allow for carthage will follow shortly.

* Remove accidental change.

* Fix and rewrite sync_project.rb (#3296)

* Fix and rewrite sync_project.rb

Ever since we added multiple platforms, removing a file has been broken.
This fixes that issue.

Also, rewrite target synchronization to make more sense. Essentially now
there's one diff between the filesystem and the groups and then an
explicit diff is done between project files and target contents.

* Run sync_project.rb on post-install

* pod lib linting should output something every minute while running

* DEBUG: This commit should be reverted

* DEBUG: This commit should be reverted

* DEBUG: This commit should be reverted

* Remove mph-master from travis

* Fix constant name conflic between old and new diagnostics (#3329)

* Rename kFIRDiagnosticsHeartbeatDateFileName -> kFIRCoreDiagnosticsHeartbeatDateFileName to avoid conflicts with FIRDiagnostics.

* Travis: temporary add `mph-master` to run tests.

* Rempve mph-master again

* Fix imports in FIRCDConnector

* Fix another import

* Fix yet another import

* Attempt to read crashing test logs from disk

* Implement printing of failed/crashed test logs.

* Print only crashed tests, rmdir between runs

* Revert reading crashing log changes

* Write CHANGELOG for all new FIRCD associated libraries

* Change all GUL deps to >= 6.2

* Revert ZipBuilder changes and do some last bits of cleanup

* Remove an assertion and populate an error instead
2019-07-18 09:54:06 -07:00
Paul Beusterien 79e9fcd5e7 Fix data collection switch unit tests (#2939) 2019-05-06 08:03:00 -07:00
Maksym Malyhin e04b6ba953 FIRApp - validate app name using NSCharacterSet (#2906) 2019-04-26 20:10:20 -04:00
Paul Beusterien 76a003f4c8 Clean up unused Core error codes (#2737)
* Core patches can only be 2 digits
2019-04-08 06:58:49 -07:00
Ryan Wilson 626bfb513c Remove FIRAnalyticsConfiguration from Public header. (#2728)
* Remove FIRAnalyticsConfiguration from Public header.

We haven't removed it entirely yet because we need to make changes
within Analytics to verify that the global data collection switch is
still honored and tested well. This can wait until after the breaking
change because the header and code will be internal after this change.

* Fixed incomplete comment.

* Remove self importing header.
2019-04-07 22:49:54 -04:00
Maksym Malyhin 2ac4f6d4bc Avoid using NSRegularExpression in FIRApp (b/65122393) (#2529) 2019-03-15 11:38:48 -04:00
Paul Beusterien 7c53489e03 Travis to Xcode 10.1 and clang-format to 8.0.0 (tags/google/stable/2018-08-24) (#2222)
* Travis to Xcode 10.1
* Update to clang-format 8
* Update clang-format homebrew link
* Work around space in filename style.sh issue
2019-01-02 09:27:31 -08:00
Paul Beusterien 943141e0cd Use registerLibrary for pods in Firebase workspace (#2137)
* Add versioning to Functions and convert to FIRLibrary
* Convert Firestore to FIRLibrary
* Point travis to FirebaseCore pre-release for its deps
* Update user agent strings to match spec
2018-12-13 08:36:08 -08:00
Benoit St-Pierre bc0855048a Clean up FIRAuth bits from FIRApp (#2110)
* Clean up FIRAuth bits from FIRApp
2018-12-07 09:31:10 -05:00
Ryan Wilson 4c50de65d4 Reduce singleton usage in FIRApp tests. (#1995)
* Reduce singleton usage in FIRApp tests.

There have been some issues while creating new tests of conflicts with
mocks of classes and instances, this should alleviate some of those
conflicts in the future.

* Remove bad style changes.

* Use default app name flag instead of local variable.
2018-10-24 11:03:54 -04:00
Ryan Wilson ef5949d6a8 Remove unnecessary notification flag (#1993)
* Remove unnecessary notification flag.

This was added when the Google pod could configure Firebase but the
Google pod is deprecated and can only work with Firebase 3.X. These
flags and conditional checks can be safely removed.

* Resolve issues from commit split.

* Style fixes.
2018-10-24 07:17:12 -04:00
Ryan Wilson 8de5cb2834 Wrap diagnostics notification in collection flag check. (#1979)
* Wrap diagnostics notification in collection flag check.

Some of the diagnostics notifications were missed and not covered by
the data collection flag.

* Remove redundant notification call, move Core diagnostics API call.

* Removed configure with no options test.
2018-10-23 13:29:13 -04:00
Ryan Wilson 1d484d33a7 Rename global data collection switch. (#1560) 2018-07-23 10:34:16 -07:00
Ryan Wilson 79f663d5ea Add Auth interoperability library. (#1501)
* Add Auth interoperability library.

This allows other SDKs to retrieve the user ID and fetch a new
Auth token in a type-safe way through the Core container.

* Remove unnecessary import.

* Add missing copyright.

* Resolve comments.

- Remove unnecessary umbrella header.
- Move to version 1.0.
- Add tvOS support for app lifecycle changes.

* Move public interop headers to private.

* Add public_header_files too.

* Moved headers back into public.

* Shorten Interoperability and Interoperable to Interop.

* Add AuthInterop to travis linting.

* Fixed tag format in AuthInterop.podspec.

* Add AuthInterop path to Firestore Podfile.
2018-07-11 17:40:25 -04:00
Ryan Wilson 8d399c78bd Better mocking for Core Unit Tests (#1467)
* Better mocking for Core Unit Tests

This includes NSNotificationCenter and NSUserDefaults to prevent
flaky tests and unit tests interfering with each other.

* Share variable for intervals being set.
2018-06-27 06:42:09 -07:00
Ryan Wilson 503d2debdd Add conformance to data collection switch for Analytics. (#1296)
* Add conformance to data collection switch for Analytics.

* Fix method documentation per PR comments.
2018-05-21 21:49:57 -04:00
Ryan Wilson 08f447cd3f Add global data collection switch. (#1219)
* Addition of global data collection switch.
* Added Messaging conformance to data switch.
  Also formatted code.
* Move data collection flag internal until all SDKs conform to it.
* Formatting in response to code review.
2018-05-14 10:02:25 -07:00
Ryan Wilson b8fdf48833 Remove old FIROptions constructor. (#615) 2018-04-09 12:16:57 -04:00
Benoit St-Pierre e281a2135b Deflake tests 2018-02-26 14:40:00 -05:00
Benoit St-Pierre 6f5eebb77f PR feedback 2018-02-26 13:58:28 -05:00
Benoit St-Pierre 34dd1dbfd9 Add tests for useragent
Tests a variety of simple use cases.
2018-02-26 13:25:26 -05:00
Sebastian Schmidt 03ab86499f Running scripts/style.sh 2017-12-10 22:58:23 -08:00
Paul Beusterien 3418244cd5 Disable FirebaseCore Test deprecation warnings (#545) 2017-12-08 07:31:31 -08:00
Paul Beusterien 73869c741f Fix warnings in FirebaseCore Unit Tests (#544) 2017-12-07 14:30:46 -08:00
Paul Beusterien da9308408d Use brackets for module imports (#487) 2017-11-22 09:19:10 -08:00
Paul Beusterien 3e592526ec Buildable and interoperable source pods (#444) 2017-11-21 17:02:22 -08:00
Marek Gilbert 360f7bed25 Result of clang-format with AllowShortFunctionsOnASingleLine: None 2017-08-02 11:07:57 -07:00
Marek Gilbert e4af03818c Formatting updates based on the latest clang-format
clang-format version 5.0.0 (tags/google/stable/2017-06-22)
2017-08-02 09:52:48 -07:00
Paul Beusterien 0abd344434 Add clang-format options and script; apply to FirebaseCore (#151) 2017-07-27 11:02:39 -07:00
Ryan Wilson 11d004105e Add method to check if defaultApp is configured. (#139)
This lets other SDKs check if the default `FIRApp` is set up without
accessing it, which causes unnecessary log messages to appear.
2017-07-17 14:31:01 -04:00
Paul Beusterien 053b2f11ea Use modulemap to fix exposure of FirebaseCore's internal headers (#121) 2017-07-10 14:57:03 -07:00
Paul Beusterien 98ba64449a Initial 2017-05-15 12:27:07 -07:00