how quickly does sync occur in the background?
Which sync service provides the fastest updates? Dropbox or iCloud? I ask because it has happened sometimes that I'll have made a new entry in the OS X entry of 1P, and then later (not minutes later, but perhaps hours) I'll try to access that entry on my iPhone6S in Mobile Safari via 1P extension, and I'll find that it is missing. I then have to open 1P for iOS, sync occurs, and all is well. Obviously, this is not an optimal situation! I'm aware that background sync is controlled by the OS, is there a way to mitigate this problem? Does iCloud sync work better in this regard or is the problem the same regardless of the sync type?
1Password Version: 6.3.1
Extension Version: Not Provided
OS Version: 9.3
Sync Type: Dropbox
Comments
-
@odysseus: There isn't really a good answer to this question, as it will depend on many different factors, most of which entirely outside of 1Password: ISP, sync server, routing, network congestion, location, etc.
Anecdotally from my own experience, I think that in worst case scenarios (lots of data to sync at once, slow connection, etc.) 1Password Teams/Families is fastest, with iCloud next and Dropbox following. Dropbox has a slight disadvantage here (especially with a lot of items) because it is file based. The others are specifically optimized for database transactions.
However, in the specific case you describe, iCloud will always have the advantage, because your data syncs even if 1Password hans't been launched, and then the app can simply read it when you open it. The others can only send and receive data when the app is open, and for a short time after you switch away from it. I hope this helps! :)
0 -
Thanks. So this is true for the app extension as well? I'm experiencing the problem where I can't use an item to perform a login via 1P in Safari, so I'm not actually launching 1P in this case …
0 -
The extension does not perform a sync. Unless you've launched the main app it may not have the latest data unless you are using 1Password Families or 1Password for Teams. In many cases the extension doesn't "live" long enough to perform a sync, so we have not implemented syncing within it.
Thanks!
Ben
0 -
But with iCloud, the 1P database is being updated in the background anyway, isn't it?
0 -
odysseus,
You're correct. The sync data is being updated by iCloud even when 1Password is not running, yes. But 1Password needs to run to pull that sync data in and merge it with its local cache.
Ben
0 -
And the 1P extension can't do this? (I've verified that it doesn't when I updated my 1P entries from a different machine) This isn't really as involved as a sync, is it?
0 -
@odysseus: The 1Password browser extension is merely an extension of the app itself, which can be used to facilitate saving and filling in the browser, since it isn't possible for the app to integrate directly. No data is stored in the extension. The 1Password extension gets data from the app on request, and it isn't actually possible for extensions to access data outside the sandbox. Otherwise you can bet there would be a lot of malicious extensions out there trying to steal people's data or hold it for ransom! :dizzy:
0 -
Thank you for explaining the developer's point of view and the restrictions imposed by sandboxing. However, from my point of view, there are sometimes situations where the most recent data is not available to the 1P extension in the browser, which apparently requires one to launch the 1P app manually so that a sync can take place. Not only is this highly inconvenient, but under certain circumstances, it is impossible.
Can anything be done to insure that the latest data is available to the 1P extension?
0 -
there are sometimes situations where the most recent data is not available to the 1P extension in the browser, which apparently requires one to launch the 1P app manually so that a sync can take place.
That is correct.
Can anything be done to insure that the latest data is available to the 1P extension?
At the moment there is not. However we may be able to address this in a future update, particularly if Apple improves the extension API such to better enable this.
Sorry I don't have the answer you were hoping for right at the moment, but I hope that answers your question!
Ben
0 -
@odysseus: Indeed, and just to be clear, we're in agreement that it would be preferable to have the data available in the extension without launching the app. But currently apps cannot stay running in the background for long, and can only do certain things for a short while before iOS kills them, so it isn't possible to "listen" for changes to keep the data up to date...and frankly that would be pretty bad for battery life. Apple made the right call there. However, perhaps in the future they'll be able to solve this problem by making it possible for extensions to "wake up" the apps to run a background process (say, to check for sync updates). Here's hoping. :)
0 -
Surely the way to do it isn't to poll, but for the OS to notify the app that changes have been made.
0 -
@odysseus: iOS can do that with iCloud to some extent since it's built into the OS, but with Dropbox 1Password has to connect to the server to get updates, and it has to be running — if only in the background — for that to happen. Definitely something that would be useful though.
0 -
I'm using iCloud for sync now.
0 -
For most apps, yup, this is perfectly reasonable. However, 1Password's data is encrypted and in order to sync we must be unlocked. So 1Password doesn't sync in the background for this reason.
We do listen for iCloud's push notifications to sync when new data is available though! It just requires that the app be running and unlocked for us to be able to actually sync.
Hope that helps clear up a little bit of how it's more complicated to do for 1Password :)
0