Error when installing Hosted Chrome Extension - google-chrome-extension

I built a chrome extension. I don't want to host it (yet) in the chrome webstore. I want to self host it. I have packaged the .crx, and deployed it to my localhost. Here is the code I use to serve it:
app.get('/myext.crx', function(req, res){
var file = __dirname + '/public/myext.crx';
res.download(file);
});
Then I have an anchor tag that points to the file:
Install <strong>myExt for Chrome</strong>
When it downloads, it has the correct content-type header (per the instructions http://developer.chrome.com/extensions/hosting.html). Here is the info from the Network tab in Chrome Devtools when I click the anchor:
**Response Headers**
Connection:keep-alive
Content-Description:File Transfer
Content-disposition:attachment; filename=myext.crx
Content-type:application/x-chrome-extension
Date:Sat, 14 Dec 2013 07:09:46 GMT
Transfer-Encoding:chunked
X-Powered-By:Express
It all looks good, but Chrome still shows me the yellow banner error saying "Apps, extensions, and user scripts cannot be added from this website".
Am I missing a setting in the manifest? Can someone tell me what the issue is? Does it have anything to do with the fact that I am serving on localhost and the "homepage_url" and the "update_url" both point to my actual domain name?
Anyone, please.
UPDATE
It downloads the file, but gives me the aforementioned error. If I open Tools > Extensions and then drag the file from the bottom of Chrome onto the Extensions page, it won't install it. Nothing happens. HOWEVER, if I open a Finder window and drag it from the Finder window onto Tools > Extensions page, it installs fine.
Not sure if this info helps or not.

Chrome is starting to block extension installs that are not from the Chrome Web Store. If you don't want an extension to be fully published in the CWS, you can limit the audience with the publish to test accounts or accessible by URL only features.

Related

How to open app in the Enterprise Browser?

I have a website with a payment link like this: sumupmerchant://pay/1.0?affiliate-key=aa&app-id=bb&total=0&currency=EUR&title=cc and when i open this URL in Google Chrome on my android device, it opens the app which is installed on the device. The Enterprise Browser doesn't open it (it shows a webpage not available error). Is there anyone who knows if it's possible to open another app from within the enterprise browser?
If it was possible to use the Chrome browser then i would but it's not possible since we have a webapp which needs this browser to make a connection with a Zebra printer.
Thank you in advance.
Pim
Is this Zebra's Enterprise Browser? If so, although you can't open apps by clicking on links there is an Intent API available and you could say something like this:
<script type="text/javascript" charset="utf-8" src="ebapi-modules.js"></script>
var params = {
intentType: EB.Intent.START_ACTIVITY,
action: 'pay',
appName: 'com.company.sumupmerchant',
data: {"afilliate_key":"aa", "app-id":"bb","total":"0","currency":"EUR","title":"cc"}
EB.Intent.send(params);
I'm not sure exactly how to launch your app via Intent, the above is just a guess. More on the Intent API at https://techdocs.zebra.com/enterprise-browser/2-5/api/Intent/

I am getting 'remoteurl' error while uploading manifest file in app store

I am creating web add in. i am loading .aspx page in task pane.
when i am uploading it in app store to test in some others system .its giving me error
This app can't be installed. The IconUrl value '~remoteAppUrl/Images/Add-on_64px.png' isn't a correctly formatted URL
how i can test web add in in some others system
<DesktopSettings>
<SourceLocation DefaultValue="~remoteAppUrl/SaveEmail.aspx"/>
<RequestedHeight>250</RequestedHeight>
</DesktopSettings>
The SourceLocation URL and all icon assets must be a valid https address in order to properly install to Exchange.

How to launch Microsoft Edge browser with gulp-open?

Currently using the NPM package gulp-open to open the desired browser via gulp. It is working for chrome, firefox and internet explorer, however not with the Microsoft Edge browser.
My gulp task:
return gulp.src(base.app)
.pipe(open({
uri: 'localhost/' + cwd + "/app/" + path_base,
app: browser // chrome, iexplore, firefox
}));
I have tried with the following for the edge browser MicrosoftEdge, edge, Edge, microsoft-edge. Maybe it has something to do with the fact that you can't even open the edge browser from the system with a double click?
Edge can be found on the file system here: C:\Windows\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\MicrosoftEdge.exe
Running it via the CLI also works like this (from here):
$ start microsoft-edge:http://www.cnn.com
How to open it via the gulp-open package?
I was wondering this myself, and I got the answer from the author stevelacy
You can see in the issue
As he says you can open any program as long as it is listed in the PATH. The IE worked for me as 'iexplore'.
You can find more info in this thread. https://superuser.com/questions/113345/how-to-launch-internet-explorer-from-the-command-prompt
The answer comes late, but I hope it is useful to some visitor.
cheers

After deletion of chrome extension remove some html elements from website

Hi I am new to chrome extension. I have build the basic chrome extension and I want to install it using inline installation. I followed the following link :
https://developer.chrome.com/webstore/inline_installation#already-installed
All is working properly. I want to check if extension is already installed or not so I referred the above document, whenever user install the extension at that time we are appending the new div using content script to my installation page on website. If that div is present it means the extension is already installed.
Following code is added in my content_script of chrome extension for appending the div whenever the extension is installed:
var isInstalledNode = document.createElement('div');
isInstalledNode.id = 'extension-is-installed';
document.body.appendChild(isInstalledNode);
Then my installation page can check for the presence of that DOM node, which signals that the extension is already installed:
if (document.getElementById('extension-is-installed')) {
document.getElementById('install-button').style.display = 'none';
}
But I am facing one problem, whenever I deleted my extension from settings/extensions, still the div is present on extension's installation page.
Is their any provision to remove the div when my extension is deleted or removed from browser?
You can't catch the uninstallation event for your own extension, though there is an management.onUninstalled, it is used for listening to other extensions/apps. See following answer for more details:
How to listen to uninstallation event in javascript from a chrome extension?
I just come up with two workarounds, one is creating another extension to listen to the uninstall of your first extension; another one is using runtime.setUninstallURL to visit a URL upon uninstallation, you can do something in server if you want.
BTW, for isInstalledNode, you needn't/shouldn't set the id, since there may be other elements in the webpage with the same id, you just need to create the node and use document.body.contains(isIntalledNode) to check if it exists.

What is wrong with this chrome extension?

I have downloaded this chrome extension https://github.com/jeffreyiacono/penalty-blox
When I load it via load unpacked extension it gives me this error
1.manifest_version key must be present and set to 2
I solved it via adding manifest_version in manifest.json
2.After this when I reload it,The icon is coming but when I click on it nothing is working(looks like background.html is not working)
What changes should I do so that it workes perfectly?

Resources