Does an equivalent of 'chrome.storage' exist in safari? - google-chrome

I was looking for a way to share the localstorage accross multiple devices (same account), without needing a backend service. For chrome, I found their storage api, so you can sync data between different devices on your google account.
This is a very convenient feature, but does something like this also exist for safari?

I believe you could do this via creating an extension. Porting it to safari (I think this is supported). Then using the chrome storage using that extension. Depending on what you want to do with chrome storage, is what you want to make the chrome extension. So say you just want to store data, you could just create an extension that has an input. That saves that to a Local or Sync chrome storage. (Most likely local)

Related

indexedDB over multiple machines

I am currently working on an interaction event tracker for websites. One feature I am looking at adding is the capability to store specific values of elements on the pages and store them in the browser with indexedDb API.
As an extension, I would love to implement a cross-browser implementation so that I can carry the values with me across multiple machines (I use chrome on mac, personal and business machines). I know there are limitations to what indexedDB can do but isn't there a way to carry the indexedDB database between browsers till I am logged into the same account in Chrome?
Any help or direction will be truly appreciated!
I don't know if anyone got a chance to look into this but I found out that "storage" API allows you to do what I want, i.e, store data that sync over the cloud
User data can be automatically synced with Chrome sync (using storage.sync). Your extension's content scripts can directly access user data without the need for a background page.
I hope this helps anyone who goes down this path
https://developer.chrome.com/docs/extensions/reference/storage/

Is it possible to create a Google Chrome extension that can set my computer's network settings?

I have a device that uses Chrome browser for it's front end.
I would like to add a wizard to it, but I don't want to use up any more memory or storage space on the device, especially since the wizard will likely only be used once, during the initial device setup.
So, it is possible to create a Google Chrome extension that can access and change my computer's network settings, as long as I give it permission to do so, or is that completely out of scope for a Google Chrome extension?
Basically, I want the extension to walk the customer through the initial setup process, part of which includes configuring the computer's network settings to be compatible with the device's default network settings. At the end of the wizard, the extension would put the computer's network settings back to what they originally were.
Is it possible to create a Google Chrome extension that can access and change my computer's network settings, as long as I give it permission to do so [...]
No, no Chrome API provides this level of access. So an extension cannot do it on its own.
As wOxxOm mentions in a comment, it's possible to also provide a separate program (called Native Host) that an extension can start, then talk to it to do things outside of extension APIs. However, that complicates the deployment of such an extension: you can't add the host components to a Web Store app, you need a separate installer for it.
Presumably, you're targeting multiple OSes with the browser being an interface for your device; this further complicates your hypothetical "wizard" and its installer.
Perhaps the best you can do is clear documentation + an extension/webpage that can test connectivity and suggest troubleshooting steps.
Your requirement is not still clear.
But it is understood that you want to change the ip address settings through any app.which will store a basic setting saved.
it is possible for some specific area but I don't know what is your condition.

How to access stored values of other Chrome or Firefox extensions

I need a clarification regarding the Chrome local storage access. Say, I have designed two Chrome extensions - Extension1 and Extension2. I set a value val_ext1 in Extension1 and val_ext2 in Extension2 by calling "chrome.storage.sync.set".
I need to know whether I can access val_ext2 from Extension1 and val_ext1 from Extension2. If yes, then it will be helpful if someone can share some pointers on how to do the same. Additionally, I would also like to know whether is it the same for Mozilla extensions as well.
Chrome
No, this is not possible. chrome.storage.* is only accessible to the extension which stored the data. There is no API which would allow you to access data stored in a StorageArea.
If you want to gain access to that data, you will need to use Cross-extension messaging. However, this requires both extensions to be written to facilitate doing so. This is unlikely to be the case for an extension which you do not control.
Firefox
In this regard (and in most other ways), Firefox WebExtensions have the same restrictions as Chrome extensions.
Other types of Firefox extensions are significantly more capable than WebExtensions/Chrome extensions. Using any of the other types of Firefox extensions, you should be able to write code which will grant you access to data stored in a different WebExtensions' StorageArea data. The WebExtensions APIs are primarily written as JavaScript. Other types of Firefox extensions have the ability, if they choose, to modify the JavaScript that is shipped with Firefox. Thus, while there is not a specific API available that would allow you to do so, you could write an extension to do it, even if that requires that extension to modify the JavaScript code which ships with Firefox.1 Obviously, modifying the stock Firefox code should not be your first choice of how to accomplish something, but it may be what is needed to accomplish what you desire.
One of my extensions modifies the stock Firefox code in order to change a value in one file from being defined as a const to being configurable via an options page. In that particular extension, the code is completely replaced. However, it is also possible to programmatically change portions of the Firefox code.

Chrome Profiles for Syncing Locally Stored Extension Data Between Browsers

Curious if anyone's seen/heard anything on the ability to use Chrome Profiles to allow synchronization of data contained within extensions between computers.
Put another way, I would like the ability to synchronize / access localStorage from multiple computers signed in with the same browser profile.
Nothing from Google on this now, AFAIK. Anyone know any differnetly?
Chrome has an experimental API that allows syncing of data. Hopefully it will be in stable within the next couple of months.

How to synchronize Chrome extension data on different computers?

I have an extension where users maintain a list of links. It would be nice to have this data synchronized between computers (at work and at home). What are the possible solutions?
Chrome has extension synchronization option but I am not sure if it synchronizes data or not (I would be surprised if yes). Even if it does, not everyone would want all their other extensions be synced.
I can store my links in a special bookmark folder and use built-in bookmark synchronization, but in this case all bookmarks would be synchronized too (not all users would want that either I think).
Any external sites I can use? Something easy to use and linked to a google account?
(I don't want to build my own site for this)
Edit: As of Chrome 20 and above you can use chrome.storage module to save to the cloud.
chrome.experimental.storage.sync.set({'settingAlwaysOn': true}, function() {
console.log('Saved option in the cloud');
});
Before Chrome 20
You're right, the Chrome Sync for extensions options (in settings) does not synchronize extension data. The only way to synchronize those data is through a third party.
Since you ruled out the usage of Bookmarks, which makes sense if users don't want bookmarks to be synchronized.
Everytime you persist data through storage (Web SQL Storage, localStorage, IndexDB), you grab that object, and serialize it into JSON (via JSON.stringify), and you send it to some online service such as Google Docs.
That would be quite tricky for Web SQL Storage and IndexDB, you would have to do your own importer and exporter. For localStorage it is pretty simple, since its a key/value pair.
It requires some work to link it to a Google Account (such as Docs) you would have to use OAuth and do the plumbing to connect your extension to the service. Once your connected, it is not that difficult to maintain the state.
Good luck :)
Chrome 20 supports chrome.storage.sync API. It seems to fit your requirements perfectly.