How can you get a screenshot from someone's web browser? - language-agnostic

I didn't think this was possible, but http://www.snapabug.com provides a service that uses screen capture technology to generate reports that helps you help your users. How are they able to do this??
Apparently, their service does not require any extra browser plugins or extensions. My guess is that it uses Flash, since this doesn't seem possible in JavaScript, and loading a Java applet is ridiculously slow.

SnapABug uses a Java Applet to get the screenshot of the Browser. A Java Runtime Environment is listed as one of the Technical Requirements.
This blog post details how the Java Applet captures the image from the browser.

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!

Chome extension - is any website detector chrome eextention?

Is there any chrome extention, which will detect any webste's cms (such: wp/ joonla), plateform such: php/asp etc.
even help to get any more information.
I need now such type detector.
Here are two extensions that will detect Javascript libraries or CMS frameworks that are being used by a site:
Frameworks and Appspector
You aren't going to find an extension that shows whether PHP or ASP are used because those are server-side technologies and they don't consistently send anything to the client that would enable an extension to detect with 100% accuracy that they are being used.

Silverlight vs. HTML for building Admin Panel?

I want to build admin panel for my site!
But, I'm puzzled between Silverlight and HTML.
I believe Silverlight give me greater control and easier from HTML
What do you advise me to use in terms of best, security, and strong controls?
thanks,
In spite of what everyone says, Silverlight (and even Flash) is not everywhere. There are still a lot of users and browsers that don't have or support Silverlight. Of course it will be a great application if built using Silverlight, but you cannot just ignore the ones who don't have it installed. If you go with Silverlight, you will still need to implement a simple HTML version of your Admin Panel.
Having said all of this, it really depends on your user base, scope of your application and the type of environment it is going to run in.
Guess it depends on your audience. For an admin panel, unless you need the maximum reach to various devices and operating systems, Silverlight is probably fine and will probably allow you to whip something together very quickly using RIA services or WCF Data Services.
As far as security goes - you'll want to secure your services the same way regardless of whether you're using a HTML or Silverlight client to access them. Basically, just never assume that your client is the only one accessing your services. Don't send any data down to the client that you wouldn't want exposed and don't trust any input from the client without validating it first. This is where RIA services can help as it can coordinate validation rules on the client and server.
I'm not really familiar with Silverlight so I can't judge anything about it. With regards to html I guess Its a better choice if you want it available in many browser. If you heard about html5 I think you'll have a second thought about it. Well it still base on your needs.

Get a stream from client microphone via web browser?

I want to implement something like voip communication that client doesn't need to install additional application, they just open the webpage and talk to a server. Is there anyway to access the audio stream from client microphone via web browser ? I don't want additional plugin like applet that user have to install.
I think flash can do this, but is there anyway else ?
Thank you,
Voteforpedro
Your four main options are:
Flash
Silverlight
ActiveX
Unsecure browser settings (e.g. javascript calling EXEs)
All of the above will be subject to various security limitations or require some acceptance by the end-user. I'm not even certain that the browser calling out to EXEs is even possible any more so it should be avoided at all costs.
Installing an ActiveX control will limit you to IE on Windows, so should probably be avoided. The user would have to agree to installing the ActiveX anyway.
Both Flash and Silverlight are cross-platform (Flash more so than Silverlight) but also require the user to agree to access to the Microphone/Webcam - this is done by the framework, not something you can control/influence. Obviously, if the user does not have Flash or Silverlight installed, you'd need to prompt the user that they need to install it!
As stated by #Oded, there are serious security and privacy issues related to microphone's and webcams, so do not expect future browsers to make this easier for you (e.g. the new family of HTML5 browsers).
There is no standard, I think flash is your best bet.
AS 3.0 Accessing a microphone.
There is no standard that gives you access to the client machine microphone.
I can imagine there are security implication to giving a browser such access, so don't expect to see anything soon, not without some sort of plug-in.
Chrome 11+ supports access to the microphone. Visit this page (with Google Chrome) and click on "Speech" and try it out. This is using Sencha Ext/Touch which is an open library. This specific addon to Sencha Touch is also open source and released here.
Edit: To clarify, this is JavaScript only. The user doesn't need to approve anything. But, it only works in Chrome and it uses Google voice recognition.
Good luck!

Anyone know about Rhomobile?

I read about http://rhomobile.com/ and I found this is great but I want to ask whether the application built with that would run in Browser or Natively on the device as this requires HTML and Ruby?
The application generated using Rhodes are pure Native application... And there is no need to install Ruby on devices as Rhodes will take core of it..
May be this URl is helpful :
http://itsallaboutruby.blogspot.com/2010/08/rhodes-framework.html
Abhishek
Both, actually.
Your application is a web application, but it doesn't run on the internet, it runs on a small webserver that is part of your application inside the phone. It also doesn't run in the browser, but rather in a native browser widget inside your application.
Since the webserver runs on the phone itself, it has access to all the native capabilities of the phone, so you can make HTTP calls to the webserver to capture sound from the microphone, shoot video with the camera, get the GPS location, get multitouch info and so on.