chrome extension: open an website with different account in each tab - google-chrome

I have several accounts for a website and currently I want to write an extension that I can open all the accounts simultaneously in chrome, each tab for one account.
So that means I want each tab with a separate cookie system, is it doable? If so please suggest the API I should use, thanks!

Go to Chrome Preferences. There is a Users section where you can add users. Each new user will have its own cookie jar, so you can log in to a site as many different users at once. It makes new chrome windows, but it seems you cannot drag a tab onto a window of another user.

According to Chrome documentation, you can modify HTTP headers (including cookies) in the onBeforeSendHeaders event handler. So, you need to store new cookies for every account by means of the onHeadersReceived event handler, and then substitute them for every tab in outgoing requests.
There even exists an extension which seems doing almost the thing you want - Chrome Cookie Switcher.
Also I have found an answer that may be helpful for your task: Associate a custom user agent to a specific Google Chrome page/tab.

I really don't think Chrome allows extensions to do this. If I recall correctly, extensions can inspect and block requests, but they can't modify them, such as changing cookies on the fly for each tab.
I suggest you use the --user-data-dir command-line option of Chrome. It allows you to keep several separate profiles, each in its own directory, and then you only need to start chrome with the proper option:
# run this command to use the first profile
google-chrome --user-data-dir=/home/binchen/my_chrome_profiles/my_profile_1
# run this command to use the second profile
google-chrome --user-data-dir=/home/binchen/my_chrome_profiles/my_profile_2
...
Each profile will be in its own Chrome window, with its own cookie store, instead of its own tab, but it's easier than writing an extension.
Lastly, if the website you're mentioning is Google, you can keep several Google accounts open at the same time.

Related

How to detect if chrome profile is in use chrome driver

We have an internal company utility that can open our internal sites through various browsers using the various browser drivers (iexplore, geckodriver, chromedriver).
One of the options for the chromedriver is to use the profile of logged-in Google users. However, it doesn't work if the profile is already in use from another instance of Chrome.
Anyone know of a way to detect if the profile of the currently logged-in user is in use? Then the utility can just skip adding that option into the list of arguments when we launch a browser.
I know there's a workaround for an individual computer, but as not everyone in the company will know how to set that up, it's okay if the instance doesn't automatically load the Google profile.

Sharing the Realtime Documents

I have created a playground application. I see that it creates shortcut files in my google drive. I tried to share it with incognito (because I want the doc to be available to anybody and do not know how to create another google account, so I log out into incognito). The shared link looks like https://drive.google.com/open?id=0B00--A0eRH1JLTdsX2t0LWw5RE0. But, incognito fails to view it. It says that "No preview avaialable" in what is supposed to be its google drive window and offers the log in
The key problem that I see is that playground application has the following structure, which comes from the official demo
function onAuthorized() {
function onFileLoaded(doc) {display(doc)}
gapi.drive.realtime.load(your_doc_id, onFileLoaded)
}
// App entry point -- start by authorization
gapi.auth.authorize({
client_id: rtClientId, scope: ['install', 'file'],
//user_id: userId,
immediate: !popup }, onAuthorized
);
which seems to demand authentication in the first place before displaying any doc. Authorization is problematic for the unsigned mode that I want my app to be available. I want to share a file and make it viewable to the general public, without the need to log in. This raises a question if incognito users are able to view or event edit my document. I also concern how to copy the doc to their account if desired: one thing is when you have created a file on your drive with my app, you can probably list the files and use drive.copy api to copy desired one and other thing when you want to copy a file that is not available on your google drive and the only thing you have is its id.
BTW, can you tell me which account to use for non-incognito testing from another account? If I create the document in one account I want to see how it looks/accessible from the another.
The Realtime API does not provide anonymous access by default. See https://developers.google.com/google-apps/realtime/faq#does_the_realtime_api_support_anonymous_access
"BTW, can you tell me which account to use for non-incognito testing from another account? If I create the document in one account I want to see how it looks/accessible from the another."
Use Chrome for one account. Use Firefox and other browsers for succeeding accounts.
Additional note:
Just so you have a clear understanding what Incognito is all about. What it can and cannot do so you don't mix things up.
How incognito mode works
What you view
Incognito is a mode that opens a new window where you can browse the
Internet in private without Chrome saving the sites you visit. You can
switch between an incognito window and any regular Chrome browsing
windows you have open. You'll only be in incognito mode when you're
using the incognito window.
Be careful. Incognito mode only prevents Chrome from saving your site
visit activity. It won't stop other sources from seeing your browsing
activity, including:
Your internet service provider Your employer (if you're using a work
computer) The websites you visit themselves What you've downloaded
Chrome won’t save a record of the files you download in incognito
mode. However, the downloaded files will be saved to your computer’s
Downloads folder, where you and any other users of your computer can
see and open them, even after you close your incognito tabs.

How to auto-login website in chrome with saved password

Chrome is auto-filling the credentials, but not log me in until I click login. How to automate? (windows, non-google websites).
Using the Chrome Identity API you can have Chrome (on desktop and Android) automatically attempt to log in the user when they hit your page, even if their session has expired.
Following is a workflow diagram of how it works, but the details can be found in the Google Authentication API: Let the user automatically sign back in section:
It is not the browser's responsibility to auto-login to websites. This is the responsibility of the website you are accessing. The browser can remember form data and auto-fill for you, as can various extensions like LastPass.
However, in order to actually auto-login, you must first login to the website you are trying to access and enable the option they provide, often called 'Remember me?'. The website would typically use a cookie to store the credentials (securely with a hash + salt), and if the cookie still exists (not cleared from the browser or expired), and the hash of real password in database matches the one in the cookie, the website will auto-login.
You could force the browser to try and auto-login with extensions, which are essentially macros. You could try Auto Login or iMacros extensions for this. I would generally avoid this though.
Anyone else stumbling into this thread from a google search.... you can do this with autohotkey. If you browse to yourbankhere.com and chrome fills in the user/pass, you can have autohotkey perform a mousemove then a mouseclick to click the login button.

Completely forget a single domain in Chrome

How do I completely remove all data about a single domain in Google Chrome? (in one action)
Use case:
I am developing an offline web application, and frequently need to 'start fresh' while testing
Chrome's "Clear browsing data" can only be limited to time, not domains
Removing a domain's pages in history does not remove service workers
App Cache doesn't work properly in Chrome's Incognito mode
Ideally, a UI button or keyboard shortcut would be best. Extensions are fine, if they work.
Please don't submit answer unless service workers are also removed (I know there are many solutions for cookies/cache etc).
thanks
Chrome now includes a 'Clear storage' function in the 'Application' tab of dev tools (using v52). Thanks Chrome!

right-click-then-open-with works but simple left-click does not

At some point in the last couple of days a bug seems to have materialised in my app's Google Drive integration, despite me not having changed anything, and usage remaining fairly constant.
When you left click one of the app's documents in Drive a new about:blank tab opens showing the app's icon and the text "Sorry, an error occurred while opening this file. Please try again. [XXXXX]" where [XXXXX] is a short string that seems to be different every time. The create new works fine, and if you use the right-click menu and open with it also works fine.
All of this makes me think that there is a bug in the latest javascript update to Google Drive's main interface.
In terms of debugging, in the apiconsole the app has...
The initiate oauth2 option unchecked
The allow multiple files option unchecked
Mobile browser support checked
24 mime-types, 61 primary extensions, and 1 secondary extension registered
If it is a bug as Claudio has mentioned, I believe Google Drive SDK documentation needs to be updated too, since 'open' action is described only for "Open With" option:
https://developers.google.com/drive/integrate-open
I'm wondering how to trigger the proper action when registred mime-type can be managed by more than one installed application? Is there a way to set the default open action - or the application which created it will be used as the default? What's happen if you reach the application web by typing the url (not from UI Drive UI create action) and save the content on Drive, since you may be already authorized to do it?