Pass data among users through a Chrome Extension - google-chrome-extension

New to chrome extensions. I want to develop an extension where users can drag and drop text or urls to their extension and it automatically syncs up and displays on another user's extension. Should I be using a server to push/pull data to?

Basically: yes. Provided APIs do not give you the power to interact between users.
Chrome provides a concept of sync storage, but it's only to syncing small amounts of data between browser sessions of the same user.
You may want to use chrome.identity to avoid the hassle of making a separate login for your users.

Related

Chrome extension - Where to save big data

I'm a developer of an extension with more than 15000 active users.
Many users ask for a sync feature.
Well, I have done some calculations and found out that each user has about 8 MB data to sync.
It is more than 100 GB.
Where they can be saved?
The extension is free and there is no way to monetize it to pay for a server.
The Google Drive does not allow to save into App Data from extensions.
Are there another ways to save user's data outside user's browser?
Google has no service to save data of its users?
You CAN save into Google Drive's appFolder from an extension. See the documentation. It has a quite comprehensive RESTful API.
Why not just just use Google Chrome's built in sync feature and use the chrome.storage API to store, retrieve, and track changes to user data?

Develop a task-specific web browser

I want to build a task-specific web browser. For example, when the user uses that browser, the program should give options like these:
What is your interest today? Please select from the following:
computer science
data science
web development
psychology
biology
social media
etc.
After the user selects their interest, the browser should allow the user to search or study only those selected content types, so the user cannot get diverted from their task. The purpose of this browser is to avoid time-wasting. Because whenever someone tries to study or do some professional work, they get diverted by opening social media tabs and movies.
Which programming language will be suitable for making this browser?
You could do this by making a custom version of an existing browser, as guest271314 suggested, but that would require far more effort than necessary. All you need to make is a browser extension, such as a Firefox Add-on or a Chrome Extension. Browser extensions are usually written with JavaScript, HTML, and CSS. Each browser needs to have an extension made individually, but you can usually share a lot of the code between them. Read the linked documentation for help creating an extension for each browser.
There are already existing browser extensions like you describe that prevent you from visiting sites that you put on a list ahead of time, such as StayFocusd and WasteNoTime. Maybe you just want to use one of those extensions instead of writing a new one.

How to limit the number of users that can download my chrome extension?

I developed a Chrome extension, and I want to publish it privately.
Is it possible to set a download limit (number of user that can download)?
For example, I set a domain for an organization, how I set the number of allowed downloads?
Also, is it possible to know who is downloading my chrome extension?
You can't set a limit on the number of downloads, but you can explicitly list accounts if you select "publish to testers" option.
It can be a fixed list or a Google Group you manage.
So, you could set up a group and control membership yourself. That way you both limit and know who is downloading.
With any other publishing option it's impossible to my knowledge to either limit or track downloads using the Web Store only (since you mention a domain, this may be different for Google Apps domains, but I doubt it).
Alternatively, you could impose a limit/tracking in the extension itself, by requiring a sign-in in the extension (for example, with the chrome.identity API). Note that:
it's probably going to be annoying for users,
once downloaded, a tech-savvy user can modify your extension to remove any such checks unless a big chunk of your logic is server-side.

Can a Chrome extension launch new Chrome windows under different user profiles?

Is there an API for a Chrome extension to launch and control new Chrome windows under different user profiles?
My understanding is that while an extension may be run under multiple user profiles simultaneously, these instances are isolated; they cannot communicate directly and an extension in one profile cannot access the windows/tabs/processes/etc of another profile. Is this the case?
It seems like the best way to launch and control Chrome windows under multiple profiles is to use an approach based on the Remote Debugger API such as the ChromeDriver project.
For context, I'm interested in writing a tool to manage and launch predefined "bundles" of multiple Chrome windows, each with different URLs and screen positions, and each under a different profiles. The attached screenshot shows an example desired state: three browsers, each in a separate profile, each at a different URL, with different devtools states, organized in a specific screen layout. It is conceptually similar to tmuxinator.
If I wanted to provide a Chrome-based UI for designing and managing these presaved layouts, it seems that I would need to provide a native shim that invokes new Chromes via chromedriver, and communicate with them via native messaging. Is there a more direct API that I am missing?
It seems that the proposed Profile Extension API would do exactly what I'm interested in, but I don't see any discussion on the apps-dev#chromium.org list.
If chrome allowed this it would be a huge security hole.
Chrome extensions are installed per user account so they shouldnt be able to see anything from other accounts.

Use Autoupdating in Google Chrome Web Store

I'm making an extension for Google Chrome and I use code for autoupdating. This is because the extension isn't yet in Google Chrome webstore. But in a few days I will upload it to the Webstore and Google says you can use the Webstores autoupdating. But if I don't want to use that, will my app still update by my own server, like the way it does now?
Thanks in advance!!
I agree that docs are not very clear about this:
If you publish your extension using the Chrome Developer Dashboard,
you can ignore this page. You can use the dashboard to release updated
versions of your extension to users, as well as to the Chrome Web
Store.
But, I've tested it myself and your update_url setting in manifest.json will be overridden when you publish your extension via Chrome Web Store (CWS). In other words, publishing to CWS means that you can't use self hosted autoupdating anymore.
The reasons for that, that I could think of, may be as follows:
CWS wants to keep track of each extension stats (i.e. number of users using each extension)
privacy concerns (people don't want you to track them when they update extension)
security concerns (each extension update must go through CWS verification process)
If you want to track people (please don't) use Google Analytics on i.e. background page of your extension.

Resources