Why does developing a firefox extension involve installing an sdk? - google-chrome

I'm currently trying to port a Chrome extension into a Firefox add-on, but the development process is incredibly different, and the part in particular that I find confusing is why I should have to install an SDK.
How are these two so different? Do Firefox add-ons run faster because they're precompiled? Why aren't firefox add-ons just HTML and javascript like (some) Chrome ones?
What's going on behind the scenes here that involves using so much command line just to get a firefox addon started?

The SDK exists to help developers build their extentions, but if you don't want to use it there is also a way.
You can use web extensions which as the wiki says have their benefits:
Porting add-ons to and from other browsers should be easier.
Reviewing add-ons for addons.mozilla.org should be easier.
WebExtensions must be compatible with multiprocess Firefox (Electrolysis).
Changes to Firefox's internal code should be less likely to break add-ons.
WebExtensions should be easier to use than the existing Firefox XPCOM/XUL APIs.
I don't have personal experience with web extension but it seems to be promising for someone who does not want to use SDK and the benefits ofthe web extensions are that they support an enrich manifest document and you only need to zip your extension and run it.
There are some examples on github to get started.

Related

What cross-browser technology do you use in your web applications to manipulate on client machines?

(I have a problem with Google Chrome improvements that will drop support for my current solutions.)
I work on project where I move desktop system to an Intranet web application.
The crucial requirements are:
to move desktop system to a web application
to reproduce every single functionality from the desktop system in the webapp
While 95% of work requires creating casual web application, there is one thing which is non-standard to handle: my application must perform some actions on the client computer. These includes:
connecting with libraries
launching desktop apps
file manipulation in background
The example scenario is to integrate my system with some machine in the lab. I have to integrate my web application with drivers on client computer via DLL (desktop app did this, so my app have to do this as well).
Theoretically scenarios of the desktop actions may vary and I just want to implement some interface that will handle all the "client-machine" job the desktop app has done, so there is no need to work on every single scenario (but of course every scenario should be tested).
My solution was Java Applet. It worked. But then Google Chrome decided to drop support for NPAPI plugins, so in September'15 Java plugin (and my applet) won't be supported (http://blog.chromium.org/2014/11/the-final-countdown-for-npapi.html).
So my another solution is Java Web Start. It works. But now Google Chrome decided to drop support for background operations of external protocols (https://code.google.com/p/chromium/issues/detail?id=348640), so from Google Chrome 45 my Java Web Start solution won't be supported.
(Both above solutions work on Firefox and IE.)
The question:
What other technology can I use to interact with a client machine from my web app?
Other remarks:
I am reluctunt to write my own PPAPI plugin or Chrome Extension - I prefer one solution working on all major browsers.
I know that StackOverflow community does not like discussions about technologies, so please focus on describing possible solution to my problem.
We struggled with a similar problem as we need to connect/access electronic devices over JNI->DLL. The only technology where this is currently possible are applets. Period. (And even that is tricky since certain combinations of browsers/java versions/operating systems do not work or have problems, but this is another story...)
There are web technologies like HTLM5, JScript which can replace some functionalities of applets however in certain scenarios (like yours) there is no current alternative available - and you named some of those:
connecting with libraries like *.dll, *.so etc.
file manipulations
launching applications
And doing that across browsers and operating systems!
Solutions?
Tell your users that certain browsers can't be used (like Chrome and
Opera Next)
Write individual plugins for each browser (which probably is beyond your budget ;-)
Did you consider writing standalone application(s) in form of an executable file? The user must download and run it however e.g. java or plugins also need to be installed. But then there is the security aspect of that (downloading an and executing an executable file) - certainly not an easy decision
Have a look at FireBreath 2 - (just read about it in some posts, however didn't try it)
There are lots of discussions on SO to this topic so take a read:
alternative technologies to replace applets
applet alternative launch from browser
alternatives to java applet to launch microsoft office applications
alternative-java-applet-network-drive-access
what are the alternatives for java applet to launch client programs using chrome
alternative of npapi plugins for flash java applet
python alternative to java applet
npapi alternative for live file editing
... and many, many more!

Clickonce: Appropriate for web site that is only supported in Chrome?

We are looking for an easy way for our users to download and install a small client widget (it is a windows app) used with our (much larger) web app.
Our web app is currently only supported in Chrome.
Our concern is that the clickonce support piece may be missing from most Chrome installs.
The questions:
-- Is clickonce really going to be useful in this situation?
-- What is the best option for "one click" download-and-install for Chrome on windows?
ClickOnce uses NPAPI which is being removed from Chrome. You will need to look at NaCl, Native Messaging or PPAPI instead of ClickOnce. There used to be browser extensions that you could use, however they have been removed from the store (or no longer work).
Using Chrome should not matter, so yes Click once will be useful in this situation.
The only thing you need to worry about is your clients using Windows and the appropriate version of the .net framework. I hope this helps.

Tech differences between chrome and firefox packages apps & other html5 apps in blackberry,tizen

Need to understand what are the basic technical differences between chrome and firefox packages apps & other html5 apps in blackberry,tizen.
All of them support apps in Html,Css,Js but where and how are they technically different
1.Can One app created for one platform be used for another without changes
2.If they cannot be used across then how easily can they be migrated
3.Are the differences only in manifest and main browser/os specific
I don't think there is an easy answer for this one. You'd have to probably study each platform's api layer and then do a comparison. Start with chrome.* and then research all the other platforms. If you do end up doing this, please publish your results as I'm sure many future HTML5 app developers would love to read your findings!
There are 2 type of web apps.
Hosted Apps : It can be publicly accessible Web server, just like any other website.
Packaged Apps : It can be packaged sucg as a zip,wgt and so on, instead of hosting it on a web server. The apps file extension is depends on the plaform. (chrome, firefox, bbx, tizen...)
Both kinds of Web Apps are support all of HTML, CSS, JavaScript, and so on.
One difference from a hosted app is that, a packaged app must specify a platform dependant metadata such as mainfest file. And there are different device apis. For example, firefox os provides their own web api for firefox app. Tizen also provides their own web device api for tizen application.
If one application is only standard API (HTML5), then all web platform supports it (Pacakaing may be differnet.). But if application also use non-standard api(like device api which is mentioned above), it couldn't reuse.

How can I develop a Google Chrome extension without constantly repacking it?

I remember reading about a way to develop a Google Chrome extension without constantly repacking it. In Firefox this is done by creating a soft link between the extensions directory and where your development directory is. I've forgotten the method to do this with Google Chrome and can't seem to find it when searching.
Also, if you know the answer to this question you've probably done some Chrome extension development, so I'll ask (as a bonus), what are the most valuable tools for developing a chrome extension - the ones that just make your life so much easier?
ps: The developer tools look nice. How can I log things inside a script (console.log?) and where do I see that output? Doesn't seem to be showing up here:
Enable developer mode on chrome://settings/extensions and hit load unpacked extension.
The most valuable tool for me is the build in developer tools.

What resources are required to develop apps for the Google Chrome WebStore

Is there a separate plugin in eclipse i would be needing to develop apps for the Chrome WebStore? Precise what resources and tools do i need to develop apps specifically for the WebStore?
There is no plugin in eclipse for Chrome extension/app development (you dont even need one actually). All you need is a Text-editor and Chrome.This might help you get started.