Commit Graph

313 Commits

Author SHA1 Message Date
Constantin S. Pan 1b0f6c0b21
Increase the token refresh timeout to 10 sec (#1584) 2017-12-21 14:14:07 +01:00
Mark Rowe c2de29ab0c Fix an issue where `Realm.open` would complain about the Realm already
being open with a different schema version

In order to correctly open read-only synchronized Realms, `Realm.open`
would open the Realm without specifying a schema or schema version, wait
for any remote changes to be downloaded (if appropriate), and then
re-open the Realm with the specified schema and schema version. This
would lead to an exception about the Realm being open with a different
schema version if the Realm had previously been opened with a different
schema version, due to the way `RealmCoordinator` caches information
about the schema of open Realms.

We address this by making two changes:
1. `Realm.open` for non-synchronized Realms no longer goes through
`_waitForDownload`. This means the dance described above where the Realm
is opened twice is not used for local Realms.
2. `_waitForDownload` no longer keeps the `Realm` alive until after its
callback has returned. It instead keeps the `SyncSession` alive. This is
sufficient to avoid the connection being torn down and having to
reconnect when `_waitForDownload`'s callback later opens the Realm with
the correct schema and schema version, while also allowing for
`RealmCoordinator`'s cached information to be cleared when the
schemaless Realm is closed prior to the Realm being reopened.

In addition, tests have been added that reproduced the problem in both a
local and sync context.
2017-12-18 14:54:08 -08:00
Yavor Georgiev 4e6cb299b3
Add disableFormatUpgrade to Realm configuration (#1566) 2017-12-14 07:53:03 +01:00
Kenneth Geisshirt aed1ea104b
Adding property Realm.isClosed. (#1560)
* Adding property Realm.isClosed.
2017-12-13 10:09:26 +01:00
Kræn Hansen 70004b9304 Checking the content-type of authentication responses (#1556)
* Checking the content-type of authentication responses
* Adding a changelog entry
* Fixing changelog typos and line endings
2017-12-07 10:36:24 +01:00
Thomas Goyne 8faf94918b Use the sync label as the multiplex identifier 2017-11-16 16:36:58 -08:00
blagoev c68c3983cf format the code 2017-11-14 11:08:40 +02:00
blagoev 9bcfa35bba fix js code 2017-11-14 08:58:21 +02:00
blagoev ba2309a540 revert the promise resolve 2017-11-13 23:31:33 +02:00
blagoev 3e65994474 remove debug code 2017-11-13 22:53:27 +02:00
blagoev c3ac7ac81d fix iOS code 2017-11-13 22:52:50 +02:00
blagoev f10df2164c fix RN Android debugger 2017-11-13 14:19:59 +02:00
blagoev 7b49cf89ef android debugger looper fixes 2017-11-13 14:16:46 +02:00
Mark Rowe 848a5b1c09 Expose an object's internal object ID, and allow fetching an object by its object ID (#1460)
* Expose an object's internal object ID, and allow fetching an object by its object ID
* Throw an exception if methods related to object IDs are used on non-synced Realms.
* Use `std::stoull` to ensure we can return the entire range of possible values.
* Add tests for _objectId() / _objectForObjectId().
* Adding change log
* Skip ObjectIdTests.testSynced for non-Node.
2017-11-08 11:22:59 +01:00
Kenneth Geisshirt e81d8589ae
Post-release feedback on client reset (#1372) (#1459)
* Post-release feedback on client reset (#1372)
* Using error.name instead
2017-11-06 13:51:33 +01:00
Kræn Hansen 1de8fbbf39 Update index.d.ts (#1458) 2017-11-03 16:02:34 +01:00
Kenneth Geisshirt d858c4e87a Updating documentation of realmAtPath 2017-11-01 14:44:40 +01:00
Michel Albers 0a43df6860 remove uneccessary blank line 2017-10-25 18:16:59 +02:00
Michel Albers f98eb7a4ec Fix "realm constructor not defined" in JS remote debugging mode 2017-10-25 18:16:23 +02:00
blagoev 0b5aa68c62 Revert "Merge pull request #1409 from realm/kneth/bugfix/invalid-token"
This reverts commit 4055c9e047, reversing
changes made to d6b3fcb8b1.
2017-10-17 00:51:47 +03:00
blagoev 863e80643b Merge branch 'master' into fix-partial-sync-config-ts-definition 2017-10-16 15:17:19 +03:00
blagoev f534d64382 fix partial in ts definitions 2017-10-16 12:48:07 +03:00
Kenneth Geisshirt 7e85220e47 Merge branch 'kneth/bugfix/invalid-token' of github.com:realm/realm-js into kneth/bugfix/invalid-token 2017-10-13 18:18:05 +02:00
Kenneth Geisshirt 28c51335d2 Ugly hack. 2017-10-13 18:12:30 +02:00
Kenneth Geisshirt fca7cd4566 wip 2017-10-13 14:39:28 +02:00
Mark Rowe 5ea64ef4b3 Merge pull request #1402 from realm/mar/simplify-wait-for-download
Remove configuration handling from Realm._waitForDownload
2017-10-11 09:56:49 -07:00
Mark Rowe 718ee3296c Fix how _waitForDownload is treated by the RPC code. 2017-10-11 09:29:53 -07:00
Kenneth Geisshirt 6bc5a45272 Merge pull request #1403 from realm/tg/skip-analytics-modules
Check for REALM_DISABLE_ANALYTICS earlier in submit-analytics.js
2017-10-11 15:19:56 +02:00
Thomas Goyne 643c19ea75 Add support for aggregates on arrays of primitives (#1401)
* Fix an unused variable warning in js_sync.hpp
* Add support for aggregates on arrays of primitives
* Update documentation and typescript declarations
* Update collection.js
2017-10-11 14:54:52 +02:00
Mark Rowe 0249722a02 Remove configuration handling from `Realm._waitForDownload`
There's no reason for `_waitForDownload` to be responsible for
constructing a new Realm instance when we can instead use the
constructor for that. This eliminates the potential for different
handling of the Realm configuration between `_waitForDownload` and `new
Realm`, which was responsible for various issues (#1391, #1392, #1393).
In turn, this requires that `_waitForDownload` become an instance method.

In addition, we update `Realm.openAsync` and `getSpecialPurposeRealm` to
delegate to `Realm.open` rather than reimplementing equivalent logic
themselves.

Finally, the private mechanism for registering a download progress
handler as part of the sync configuration (`_onDownloadProgress`) is
removed in favor of the public API (`progress()` on the promise returned
by `Realm.open`).
2017-10-10 21:16:23 -07:00
Thomas Goyne f4b96a1782 Check for REALM_DISABLE_ANALYTICS earlier in submit-analytics.js
Node's `require()` is synchronous and somewhat slow, so importing the modules
for submit-analytics.js ends up being about half of the runtime of
`require('realm')`. With this change, when analytics is disabled, nearly all of
the time spent on `require('realm')` (~100ms on my machine) is spent in
node-pre-gyp-related functionality for loading the native module.
2017-10-10 16:27:32 -07:00
Ashwin Phatak 4bcef8baff Add support for bulk updates (#808) 2017-10-10 16:25:47 +05:30
blagoev 5c9b254b4a fix sync error (#1379)
* fix sync error
2017-10-04 11:29:32 +02:00
blagoev aefd81ccf7 Kneth/fix partial sync (#1383)
* fix typo in subscribeToObjects
* Fix partial sync test
* Swap error and result order in callback
* Use correct url
2017-10-04 11:28:50 +02:00
Kenneth Geisshirt 19d05c2021 Merge `master` into `2.0.x` (#1377)
* Add 'deleteRealmIfMigrationNeeded' to configuration to delete a Realm if migration needed (#502)
* Minor update due to changes in objec store
2017-10-03 13:37:21 +02:00
Kenneth Geisshirt 53fec37e84 Frozen results during iteration. (#1368)
* Frozen results during iteration.
* Adding a note about iterators are frozen.
2017-10-02 23:15:19 +02:00
Kenneth Geisshirt 7c5572b451 Removing deprecated setAccessToken(). (#1371) 2017-10-02 21:03:29 +02:00
Kenneth Geisshirt feb59ae859 Partial sync (#1361) 2017-10-02 20:29:36 +02:00
Kenneth Geisshirt fe121ea27b Client reset (#1341) 2017-10-02 19:44:24 +02:00
blagoev 33c4a886d0 Merge pull request #1367 from realm/getGrantedPermissions-docs-fix
Get granted permissions docs fix
2017-10-02 18:20:08 +03:00
blagoev f4d32eba06 Pr review 2017-10-02 17:10:58 +03:00
blagoev 9fde587211 throw Error object always 2017-10-02 13:29:53 +03:00
blagoev b4bc50aacf Fix error message handling 2017-10-02 11:52:45 +03:00
blagoev b8fc18e7e9 Fix RPC server to include exception message 2017-10-02 11:15:28 +03:00
blagoev 49f65cd4da fix RPC server to handle exceptions in requests and return them as son values 2017-10-01 12:24:23 +03:00
blagoev 6e016b3e69 Remove dead code 2017-10-01 12:23:04 +03:00
blagoev 4a73b242af fix docs and TS definitions 2017-10-01 08:50:31 +03:00
blagoev 6349d22f55 Merge branch '2.0.x' into kneth/v1_v2-upgrade 2017-09-30 17:21:24 +03:00
Kenneth Geisshirt e109e32ac4 Merge branch 'master' of github.com:realm/realm-js into kneth/master-to-2.0.x 2017-09-30 09:55:14 +02:00
blagoev 6d9f85759e Fix IncompatibleSyncedRealm support 2017-09-29 21:43:04 +03:00