This also includes fixes noted during client build:
* return authoritative, server provided ChannelID to Kotlin layer
* use authoritative ChannelID when storing records
* normalize "channel_id" var names where appropriate
* fix missspellings in comments
* double check that fetching subscriptions w/ same UAID&CHID return same sub info
* tests more closely match real usage (use GUID like values)
* deleting all subscriptions also deletes UAID and Auth from meta-data
* bottleneck db in tests so we can switch between file and memory based
Closes#978, #980
* Prevent reqwest from being compiled into anything other than non-megazords and tests
* Detect if the non-megazord backend got compiled in taskcluster
* Changelog entry for reqwest megazord removal
bug: store meta-data for push component in the database.
Push now stores uaid and the server secret auth in a table in the
push.db. the meta_data table allows any key/value data to be stored to
allow for additional future values (if needed).
Closes#905
Add -DNDEBUG=1 back in.
Addressed review comments.
Updated changelog. Fixed additional options.
Had to go back to THREADSAFE=1 since the SQLCipher configure script overwrites it.
* Define conversions to/from protobuf types
* Define bookmark message types
* Add method of getting 'shallow' tree info
* Properly provide parent/position for items
* Add the rust side of the Bookmarks FFI
* Kotlin bookmarks FFI
* Copy xcode project over from logins to start places ios ffi
* places ios: C bindings for places
* protobuf setup for places ios (and docs)
* Fix some things that were annoying me about BookmarkRootGuid, and move it to it's own file
* Add a bookmarks FFI function to return all bookmarks with the requested URL
* Clean up leftover logins stuff in places ios
* Implement swift bookmarks API
* Fix bad comment and missing null check in kotlin bookmarks
* Try and add places to the iOS megazord (hit issue with msg_types name collision)
* Rename msg_types to be unique, finish integration with iOS megazord
* Finish documenting how to pass protobuf data back and forth for swift
* Comment tweak and change canEdit -> isRoot
* Small tweaks to the swift API (some renaming, change class => struct, etc)
* Don't require type in update (since it can't be changed), and handle errors better
* Undo struct -> class change since it subtly broke things
* Respond to feedback from justin
* Allow requesting a only the first level of folder children
* connUseAfterApiClosed -> connUseAfterAPIClosed
* WIP iOS tests
* Make iOS tests build
* Improve path handling for iOS
* Fix megazord test setup and document the weird testing steps that were needed
* Fix failing iOS tests
* Move protobuf-returning functions into their own file
* Add searchBookmarks function
* Use a sealed class and data classes in the kotlin API
* Require that callers of getBookmarksTree pass in the root and whether or not to fetch recursively, rather than using the most expensive possible default
* rename deleteBookmark => deleteBookmarkNode
* Use InterruptScope in the reader bookmark methods
* Fix rebase issue
* Allow interrupt() on iOS
* Use changes from #788 to make places xcode project build much faster
* Change `extern` to `public`, use fewer protobuf types in the rust because they make testing it painful
* More tests of new rust code
* Expose relevant errors over the FFI, and document them (also, fix the kotlin doc formatting)
* fix 'its' being wrong basically everywhere
* Fix many doc typos
* Use FfiStr in bookmarks
* Fix doc nit
* Make missing titles come through as '' for better API consistency
* Tests for the rest of the new rust functions
* Clarify doc nit
* Changelog entry for bookmark ffi
* Expose runMaintenance to Swift
* Handle NoItem => NoSuchGuid
* Rename places::storage::bookmarks::public to places::storage::bookmarks::public_node
* Lina's review feedback
* This is a proof-of-concept for how we might manage connections.
It is currently in a good enough state to see if the idea is worth pursuing.
At a minimum, and before landing, we'd:
* split the schema.rs changes into its own PR - they aren't strictly needed
for what this patch does.
* Probably move PlacesAPI into its own source file, and better consider
threading considerations - the PlacesAPI instance will end up being called
from multiple threads (although the stuff we hand out shouldn't be)
* Manage the "sync" connection similarly to how we manage the "write"
connection. The PlacesAPI object is probably also where the sync "store"
objects can live (as currently we create brand new stores each sync, which
isn't as optimized as it should be)
* FFI changes needed to support this - this would be a breaking change, but
shouldn't be too difficult to manage.
* Lots of other cleanup - I figured I'd get comments on the general approach
before spending much time cleaning things up.
So by all means, offer all suggestions, but the main thing I'd like from this
is general approval that we should go ahead with this.
* Flesh out the Api more, including the Kotlin side of the fence
* First cut at Thom's feedback
* Fix nit: IOError => IoError
* Return writer connection to API when finished with it, ensure there's only one in kotlin
* Avoid duplication of rustCall
* Detect closing a connection on a different API than the one that opened it.
* Tests for PlacesApi::close_connection
* Fix busted benchmarks
* Address review feedback
* Changelog entry for connection types refactor
* Document thread-safety of places API