Google Chrome extension development environment - google-chrome

As the title suggests I'm looking for a better Chrome extension development environment. I'm using Sublime Text 2 for my IDE, which is fine. The problem lies with testing the extension. Right now, when I need to test the code I've written I first have to launch Chrome with the –enable-easy-off-store-extension-install parameter. Then I need to package it through Chrome as an .crx file. Finally I have to drag and drop the file into Chrome and manually install it. Obviously this can get very time consuming very quickly.
I know I can test an extension as an unpacked extension, but this causes permission errors which is a problem since I need to perform CORs. Is there a better way to test extensions in Chrome?

Related

How to test local changes to Chrome Extension

I am trying to fix a bug in a Chrome extension. I installed the extension from the web store. I found the error. I opened the installed files and made changes that may or may not fix the problem locally. I saved the changes. Now Chrome complains and says "This extension may have been corrupted."
I have no idea if the change will work. I do not want to go through the build process and upload the modified extension to the web store just to test a three line change.
How do I get Chrome to just use the modified extension? Or can I just ignore the "This extension may have been corrupted" error?
I think I figured it out. I was seeing the "This extension may have been corrupted" error because I made the changes in place, meaning directly in "${LOCALAPPDATA}\Google\Chrome\User Data\Default\Extensions${extension_dir}". When I instead made the changes to my Perforce workspace directory and used the "Load Unpacked" feature to install the extension from there it worked.

chrome extension reload on file change

I've been searching for-ever!
I`m working on windows and ubuntu, mostly on windows.
I searched the web for lot's of external libraries such as opn, open etc' but none of these could open this URL:
chrome://extensions
I want to put in the the script tag inside package.json
or in my build.js script
so that every time after I run "npm run build"
the chrome://extensions page will reload and also the additional page I`m testing on.
I once was able to do that exactly, but I lost that solution.
part of the problem is that I can't open chrome:
the ':' symbol is not recognized in the OS as valid protocol or something and it is escaped from chrome address bar if executed from command line.
I have tried many solutions.
I am not happy with the different resolutions proposed in the research I've made in Stack.O.
reloader as an extension is out of the question I want a script.
your kind help.
Assaf.
Clerc - for Chrome Live Extension Reloading Client
I built Clerc for exactly this purpose. npm run build won't be enough though. You need to hook up a LiveReload compatible server to watch for file changes, and clerc will listen for the reload messages.
Edit: Oh sorry. I missed the part where you said "reloader is out of the question". I still think this is your best option though.

Chrome extension warning, tutorial for unpacked extension on windows

There's this extension popup warning "Disable developer mode extensions" which shows up on every browser start, even on the dev-channel.
This is annoying beyond belief, but what is even worse, is that there is no clear step by step tutorial on how to allow the automatic execution of an unpacked extension via policies, which they say is the only way to remove the popup.
So, is it even possible to remove the popup for unpacked extensions which resides in a directory on the windows desktop?
How do I go about configuring the computer in such a way that the browser won't bug me on every new browser launch?
There is no intention to pack this extension until it has been fully developed and debugged.
You can't do it without building your own Chrome or hacking the chrome.dll
Here is one example, don't know if it works anymore.

Apps, Extensions and scripts cannot be added from this website

I'm trying to add the Rapid Interface Builder extension to chrome using the rib.crx file I downloaded from https://01.org/rapid-interface-builder/downloads/2012/rib-preview-1-chrome-extension
Unfortunately, every time I open the crx file with chrome I get the following error:
Apps, Extensions and scripts cannot be added from this website.
Any ideas on how to fix this?
Instead of opening the file, you have to: extract it (crx are zip files), then visit chrome://extensions, enable developer mode, and load unpacked extension.
The reason for this is: lots of people try to abuse chrome apps/extensions to install nasty applications to your browser. So Chrome tries to make it impossible to automatically side-load these apps without you making sure that is really what you want to do.
So.. typical caveats of installing software apply when using this approach.
You can now also just drag-and-drop the .crx file onto the chrome://extensions page and it will install, too.
Edit 2019-01-10: Make sure to enable Developer mode for extensions. If this was not enabled, refresh the chrome://extensions page after enabling it.
Edit 2018-08-24: This works on Windows, too.
Edit:
This doesn't work on Windows. Verified on OSX and ChromeOS. From what I've read, this will work on Linux, too.~
(I initially experienced the same problem you described.*)
This solution worked for me in Windows 10 (build th1511) x64:
Open Chrome as you normally would.
Go to the "Extensions" page (chrome://extensions; or click Menu button at top right corner → From 'More tools' drop down menu select 'Extensions').
Drag and drop the .crx file onto the extensions page in Chrome -onto the list of extensions.
You should see a dialog stating "Drop here to install". This must be present. (If you do NOT see this, reposition your mouse - it may be too far to the side of the page.)
It should load successfully and you should see the extension in the list immediately afterward.
*I received the same error you described when attempting to load the .crx file (packed extension) by right-clicking/double-clicking it and selecting "Open With" "Chrome", and by dragging/dropping the file onto a regular webpage in Chrome.
In the Extensions page, just enable Developer mode. From there you can drag and drop any .crx file there and installation prompt will follow suit.
Open Chrome with this parameter --enable-easy-off-store-extension-install, then go to extensions and enable Developer mode. Now you can install .crx files without any problem.
go on extension, and your first step is on developer mode, 2 step update extensions, and last drop IDM extension file on google chrome.

Re-enabling extension installs

I found the new change that you can't install Chrome extensions/userscripts without saving them and dragging them into Chrome quite annoying. As such I have set forth to revert this to the old way it was.
I read the documentation here: http://www.chromium.org/administrators/policy-list-3#ExtensionInstallSources that says to add a registry key and so I have done, as shown below. However when attempting to install an extension I still get an error that they can only be installed from the Chrome webstore. Did I add the registry entries wrong or something?
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\ExtensionInstallSources]
"1"="http://*"
"2"="https://*"
This answer is obsolete as of Chrome 36
Instead of editing the registry, you can also make Chrome to behave in the old way via the --enable-easy-off-store-extension-install flag.
Under Windows, create a shortcut to your Chrome executable. Then edit the shortcut, and append --enable-easy-off-store-extension-install to "Target". See the screenshot below:
Some observations:
I've added the --enable-easy-off-store-extension-install flag after chrome.exe.
After starting Chrome, I visited a website that links to a .crx file that is not hosted in the Chrome web store.
Because of the flag, Chrome 20 doesn't show the "Extensions, apps, and user scripts can only be added from the Chrome Web Store" message any more. Instead (see bottom), Chrome asks me whether it's OK to install the extension - exactely as before.
This command line switch also works for Chromium/Chrome, under Linux and OSX.
If you ever find yourself in the situation where the --enable-easy-off-store-extension-install flag doesn't work (e.g. future version?) or you don't want to use it, then there is an alternative method.
You can install extensions with a plain vanilla install of Chrome by dragging .CRX extension files onto the Extensions panel in Settings.