Commit Graph
94 Commits
Author SHA1 Message Date
Chuan Ren 899b49bf5f Revert "Add OIDC nonce support (#4051)" (#4068)
This reverts commit c2bc304ad9.
2019-10-14 15:41:21 -07:00
Chuan Ren c2bc304ad9 Add OIDC nonce support (#4051) 2019-10-14 11:24:06 -07:00
Chen Liang 564e33834d use repo-root relative path for unit test files (#3515) 2019-08-07 17:00:01 -07:00
Chuan Ren a55467a225 Unify naming of keychain services and user defaults (#3473) 2019-07-31 13:24:16 -07: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
Chuan Ren 69fad8d60a Migrate auth api tests to a dedicated firebase project (#3318) 2019-07-09 09:36:22 -07:00
Sebastian Schmidt 143caf95a3 Storage: Add List API (#3176) 2019-06-13 12:01:29 -07:00
Paul Beusterien d2fd372aa9 DynamicLinks test_spec (#3115) 2019-05-31 15:43:49 -07:00
Chuan Ren 34f551f5fa Update sample app deployment target to iOS 8.0 (#3078) 2019-05-24 14:23:52 -07:00
Paul Beusterien a9c454491c Stop conditional compilation for GoogleUtilities testing (#3058) 2019-05-23 07:06:26 -07:00
Chen Liang 88871d5b3e kill assertion code (#3028) 2019-05-20 13:55:21 -07:00
Chuan Ren df5f7961d5 Sample app refactor (#2872) 2019-04-23 12:08:39 -07:00
Chen Liang c59c5d62d7 remove FIRMessagingRegistrar class (#2853) 2019-04-17 14:56:16 -07:00
Maksym Malyhin 76aa880853 GULAppDelegateSwizzler - proxy APNS methods separately (#2835) 2019-04-17 17:35:14 -04:00
Chuan Ren 43b3dc629e Set Swift back to version 4.2 (#2742) 2019-04-05 16:46:49 -07:00
Chuan Ren dae3442966 Remove deprecated APIs (#2723) 2019-04-05 14:35:15 -07:00
Maksym Malyhin cd507af559 Auth - use GULAppDelegateSwizzler (#2710) 2019-04-05 10:46:56 -04:00
Yue-Wang-Google b30d00515b Implement oauth secret token in headful-lite. (#2663)
* Implement oauth secret token in headful-lite. This is useful for Twitter sign in.

* Deprecate TwitterAuth{Provider,Credential}. OAuth sign in flow is now the recommended way to sign in with Twitter.

* Add update OAuth credential to AuthDataResult. Developer can access the secret token from that.
2019-04-04 10:47:52 -07:00
Chen Liang ec2399683b Remove useMessagingDelegateForDirectChannel property (#2711) 2019-04-04 09:46:29 -07:00
Maksym Malyhin 267e9a6ece FIRMessagingRemoteNotificationsProxy updated to use GULAppDelegateSwizzler (#2683) 2019-04-04 09:26:12 -04:00
Chuan Ren deac5de20b Project restruct (#2712) 2019-04-03 13:06:58 -07:00
Paul Beusterien 145c111d1a Minimum osx to 10.11 (#2680) 2019-03-29 16:26:27 -07:00
Chen Liang 0091515b98 add image on notification support (#2644) 2019-03-26 20:15:34 -07:00
Paul Beusterien 714bb34bc3 Revert #2491 (#2582) 2019-03-18 16:28:18 -07:00
Chen Liang 8061301cb9 File directory for tvOS should change from NSApplicationSupportDirector to NSCachesDirectory (#2496) 2019-03-13 08:57:47 -07:00
Chen Liang 681a5740b0 Add image on notification support (#2491)
This is official image notification support for FCM. Now an image can be rendered in notification when user enable service extension and calling the extensionHelper API.
2019-03-11 14:36:40 -07:00
Chen Liang 032f0bfa28 Adding unit tests for InstanceID tvOS support (#2483) 2019-03-07 10:07:22 -08:00
Chen Liang 00168257df Make FCM and InstanceID compatible with tvOS (#2428) 2019-03-05 11:57:10 -08:00
Yue-Wang-Google 2e77efd786 Generic IDP support (#2405) 2019-02-22 21:23:17 -08:00
Paul Beusterien d232d1c30c Restore FIRInstanceIDWithFCMTest.m (#2417) 2019-02-21 20:16:45 -08:00
Paul Beusterien 42c5ae17fc Open source InstanceID (#2414) 2019-02-21 10:51:38 -08:00
Chuan Ren 593774b1b6 E2e tests split (#2401) 2019-02-18 18:10:01 -08:00
Chuan Ren b3f2abcb1e Split auth api tests into multiple cases (#2399) 2019-02-18 17:41:59 -08:00
Chuan Ren c09966e636 Split Auth unit tests (#2396) 2019-02-15 10:34:55 -08:00
Chuan Ren 38df2e0a71 Remove swift sample for Auth (#2371) 2019-02-11 17:47:12 -08:00
Paul Beusterien 0074c79bc5 Update CI to use CocoaPods 1.6.0 (#2360) 2019-02-07 15:47:06 -08:00
Ryan Wilson 5982981e12 Prevent Messaging and IID singleton usage during tests. (#2250)
* Prevent Messaging and IID singleton usage during tests.

* Remove other uses of static Messaging instance.

* Removed usages of messagingForTests.

* Remove unused imports, unify testing code.

* Use local import path instead of framework import.
2019-01-28 18:05:16 -05:00
Chuan Ren 663225526e Add support of Game Center sign in (#2127) 2018-11-30 17:30:22 -08:00
Benoit St-Pierre 67ece3fe35 Revert "Add Firebase Source to Header Search Path" (#2123)
* Revert "Custom fdl domain (#2121)"

This reverts commit ebea1eff17.

* Revert "enable disabled passed integration test (#2120)"

This reverts commit 48e5f7a33b.

* Revert "Wire together LRU GC (#1905)"

This reverts commit 305f87215e.

* Revert "Fix build under linux/gcc (#2116)"

This reverts commit b0a4b6c827.

* Revert "Implement PatchMutation::ApplyToLocalView (#1973)"

This reverts commit f66b5b5b2a.

* Revert "Add Firebase Source to Header Search Path (#2114)"

This reverts commit 0540361852.
2018-11-27 07:53:50 -05:00
Benoit St-Pierre 0540361852 Add Firebase Source to Header Search Path (#2114)
This resolves the annoying Xcode errors that claim `FIRAppInternal.h` can't be found.

It also makes it *much* easier to "Jump to definition" now.
2018-11-22 17:32:13 -05:00
Benoit St-Pierre 54659e8d99 Database Interop Rollforward (#2095)
* Register Database with Interop

+ Add AuthInterop dependency
+ Have Database register with Interop component container
+ Add weak dependency on Auth
~ Cleaned up imports

* Use Interop for Auth token fetching

+ Use macro to get auth component
~ Change `getTokenForcingRefresh:withCallback:` call to use Interop component version of Auth
~ Clean up imports

* Implement necessary protocols

+ Added FIRComponentRegistrant and FIRDatabaseNilProtocol to FIRDatabase

* Squash of my previous local commits for Database Interop

Register Database with Interop:

  + Add AuthInterop dependency
  + Have Database register with Interop component container
  + Add weak dependency on Auth
  ~ Cleaned up imports

Use Interop for Auth token fetching:

  + Use macro to get auth component
  ~ Change `getTokenForcingRefresh:withCallback:` call to use Interop component version of Auth
  ~ Clean up imports

Implement necessary protocols:

  + Added FIRComponentRegistrant and FIRDatabaseNilProtocol to FIRDatabase

Clean up Database tests:

  - Removed all unnecessary header files
  ~ Ran style.sh across all the tests

Cleaned Up project file:

  Some header removals were missed in the last commit.

Sorted some test files

Fix Database Fake App Tests:

  + Added container property
  + Added an Auth fake in the container
  + Added the Shared utils files to the necessary targets
  + Added a missing XCTest reference in a test that didn't compile for me

* Revert "Squash of my previous local commits for Database Interop"

This reverts commit c0d0421237.

* Cleaned Up project file

Some header removals were missed in the last commit.

* Sorted some test files

* Fix Database Fake App Tests

+ Added container property
+ Added an Auth fake in the container
+ Added the Shared utils files to the necessary targets
+ Added a missing XCTest reference in a test that didn't compile for me

* PR Feedback Changes

+ Created new FIRDatabaseComponent class to encapsulate instance creation
+ Updated FAuthTokenProvider to only use an auth instance rather than an app.

* PR Feedback Follow-Up

- Removed FIRDatabase registration code

* pod deintegrate

* Move instance management

Somes tests may still be out of date.

* Fix Auth integration test

* pod deintegrate -- again

* PR Feedback

* PR Feedback

Added the FIRComponentLifecycleMaintainer protocol to FIRDatabaseComponent

* Update Firebase/Database/Api/FIRDatabaseComponent.m

Missed some small changes

* Get integration tests compiling

* Fix some tests

* Fixed more tests

Component needs to be cacheable in order to get the appWIllBeDeleted callback.

* Update target memberships

* Revert project file changes

* Add FIRAuthInteropFake for broken targets

* PR feedback

* Spacing and Style

* Moved `instances` to ivar

* Simplify FIRDatabaseDictionary

It's now keyed on the URL with the app being implied since each app will get its own `FIRDatabaseComponent`

* Fix Database Integration Tests

Have the FakeApp cache DB instances
Use the Full host/URL path to cache DB instances
Simplified shared scheme

```
Test Suite 'Database_IntegrationTests_iOS.xctest' passed at 2018-11-20 07:09:30.520.
	 Executed 326 tests, with 0 failures (0 unexpected) in 66.251 (66.528) seconds
Test Suite 'All tests' passed at 2018-11-20 07:09:30.522.
	 Executed 326 tests, with 0 failures (0 unexpected) in 66.251 (66.530) seconds
```

* Clarify defaultApp use
2018-11-22 06:44:42 -05:00
Chuan Ren a1966bb639 Add test for verify iOS client (#2096) 2018-11-19 15:34:18 -08:00
Benoit St-Pierre 50d27eb6ac Revert "Database Interop (#1865)" (#2093)
This reverts commit 4090195f15.
2018-11-19 09:52:42 -05:00
Benoit St-Pierre 4090195f15 Database Interop (#1865)
* Register Database with Interop

+ Add AuthInterop dependency
+ Have Database register with Interop component container
+ Add weak dependency on Auth
~ Cleaned up imports

* Use Interop for Auth token fetching

+ Use macro to get auth component
~ Change `getTokenForcingRefresh:withCallback:` call to use Interop component version of Auth
~ Clean up imports

* Implement necessary protocols

+ Added FIRComponentRegistrant and FIRDatabaseNilProtocol to FIRDatabase

* Squash of my previous local commits for Database Interop

Register Database with Interop:

  + Add AuthInterop dependency
  + Have Database register with Interop component container
  + Add weak dependency on Auth
  ~ Cleaned up imports

Use Interop for Auth token fetching:

  + Use macro to get auth component
  ~ Change `getTokenForcingRefresh:withCallback:` call to use Interop component version of Auth
  ~ Clean up imports

Implement necessary protocols:

  + Added FIRComponentRegistrant and FIRDatabaseNilProtocol to FIRDatabase

Clean up Database tests:

  - Removed all unnecessary header files
  ~ Ran style.sh across all the tests

Cleaned Up project file:

  Some header removals were missed in the last commit.

Sorted some test files

Fix Database Fake App Tests:

  + Added container property
  + Added an Auth fake in the container
  + Added the Shared utils files to the necessary targets
  + Added a missing XCTest reference in a test that didn't compile for me

* Revert "Squash of my previous local commits for Database Interop"

This reverts commit c0d0421237.

* Cleaned Up project file

Some header removals were missed in the last commit.

* Sorted some test files

* Fix Database Fake App Tests

+ Added container property
+ Added an Auth fake in the container
+ Added the Shared utils files to the necessary targets
+ Added a missing XCTest reference in a test that didn't compile for me

* PR Feedback Changes

+ Created new FIRDatabaseComponent class to encapsulate instance creation
+ Updated FAuthTokenProvider to only use an auth instance rather than an app.

* PR Feedback Follow-Up

- Removed FIRDatabase registration code

* pod deintegrate

* Move instance management

Somes tests may still be out of date.

* Fix Auth integration test

* pod deintegrate -- again

* PR Feedback

* PR Feedback

Added the FIRComponentLifecycleMaintainer protocol to FIRDatabaseComponent

* Update Firebase/Database/Api/FIRDatabaseComponent.m

Missed some small changes

* Get integration tests compiling

* Fix some tests

* Fixed more tests

Component needs to be cacheable in order to get the appWIllBeDeleted callback.

* Update target memberships

* Revert project file changes

* Add FIRAuthInteropFake for broken targets

* PR feedback

* Spacing and Style

* Moved `instances` to ivar

* Simplify FIRDatabaseDictionary

It's now keyed on the URL with the app being implied since each app will get its own `FIRDatabaseComponent`
2018-11-19 07:36:05 -05:00
Paul Beusterien 57ba70503b Delete deprecated files (#2038) 2018-11-01 15:39:10 -07:00
Sebastian Schmidt 77f1bee060 Adding AppCode Diff (#1996) 2018-10-24 13:47:36 -07:00
Paul Beusterien 8680441341 Remove cruft from project file (#1975) 2018-10-21 15:14:45 -07:00
Paul Beusterien 81fb6a03ef Remove need for [FIRApp configure] in Messaging unit tests (#1927)
* Remove need for [FIRApp configure] in Messaging unit tests
* Add missing file to test target
2018-10-10 15:24:04 -07:00
Paul Beusterien 467354a58f Do Messaging's Analytics logging via Interop (#1902) 2018-10-09 16:34:06 -07:00
Paul Beusterien e2cae239bc Remove testing workaround (#1848)
* Turn off -all_load to workaround Analytics duplicate symbol bug b/116139404
2018-09-19 15:25:24 -07:00