Ask Slashdot: Chromeless Cross-Platform Browser? 145
blakieto writes "Mozilla has the Prism project, which turned into Chromeless, which seems to have died [Note: last update was May 31]. I'm seeking a no-interface-what-so-ever cross-platform browser for use as a 'user interface host' to a self-hosted web app. Slight background: I've a professional market web app, with a large portion of the customer base unable to access public Internet connections. So, I want to make a version of my product self-hosted, with the web server and web app and everything necessary to run the web app locally installed on a user's machine. I have everything except a chromeless browser. Oh, and my customers are local police & highway patrol type organizations, most likely running an aged Windows box (probably IE6, too)."
Use Prism? (Score:5, Insightful)
I'm not sure I understand. Prism [mozillalabs.com] still exists, and it sounds like what you want, so I don't understand why you say it "turned into Chromeless."
It's also very easy to embed Internet Explorer in things. A friend of mine once "wrote a Web browser" in Macromedia Director using about six lines of code.
Re: (Score:2)
Chromeless is not dead (Score:3, Informative)
I'm not sure I understand. Prism [mozillalabs.com] still exists, and it sounds like what you want, so I don't understand why you say it "turned into Chromeless."
I think he meant this announcement [mozillalabs.com], that focus is shifting from Prism to Chromeless.
But, OP is wrong about "[Chromeless] seems to have died [Note: last update was May 31]" - yes, the last blogpost was May 31, but the last source code commit on github was less than a month ago. That doesn't sound 'dead' to me.
So Chromeless sounds like the way to go here, for what OP is looking for.
Re: (Score:1)
Re: (Score:2)
Re:Use Prism? (Score:5, Insightful)
Words Cross-Platform hint at this not being an option, nevermind IE's blatant disregard of standards.
How about the words, "Oh, and my customers are local police & highway patrol type organizations, most likely running an aged Windows box (probably IE6, too)"? Claiming you want something cross-platform is all well and good when you're trying to sound like a good Slashdotter, but when the facts are that your customers are all on Windows, it seems pointless to worry too much about it.
Re: (Score:2)
Pretty much my thought. If they have out-dated boxes, the odds that they'll do much more than click Next/Next/Next/Finish on an MSI to get your product up and running is close to nil. Writing a wrapper around IE is super simple, allows you to control the experience greatly. And since you control everything from web server to web page, you don't care what standards it supports as long as it supports your needs.
Re: (Score:2)
" it seems pointless to worry too much about it."
Right, cause there is 0% chance that they might want to use something different in the future.
Why not create a native application? (Score:5, Insightful)
While web applications are often a bad idea, this takes it to a whole new level of bad. Your users get none of the benefits of a web app, but many of the drawbacks.
If you care even the slightest about your customers and their experience, why not just provide them with a real native application that has the same functionality, in addition to a sensible UI and architecture?
Use a mature, cross-platform toolkit like wxWidgets or Qt, and you'll be able to support all sorts of Windows systems, in addition to many other platforms.
Re: (Score:3)
Can you say slow rube-goldberg machine (and just as fragile likely).
K.I.S.S.; keep it simple and don't add all that junk when you get nothing for it.
Mycroft
Re: (Score:3)
No mod points or I'd just mod up. Why add the extra overhead of a server and a browser to your app. And on older machines. Can you say slow rube-goldberg machine (and just as fragile likely). K.I.S.S.; keep it simple and don't add all that junk when you get nothing for it. Mycroft
Perhaps there are plans to turn the application into a network wide, integrated solution once the bugs are worked out and the security force has habituated. Think about it. He's programming for law enforcement-style organizations, and there's no way they're going to a) be able to shell out for an overhaul at once, and b) want to prove that the solution is workable on an individual level before linking it up. Or maybe there is no reliable connection, but network functionality will be built in.
In any case,
Do you remember back before 2000? (Score:4, Insightful)
People like yourself, who were apparently born after 2000, aren't aware than for decades we used networked native applications quite successfully. In fact, most users of those apps who are now stuck using web apps will say that they'd love to go back and use real applications again. Their productivity would rise immediately.
Sure, those systems didn't consist of "web browsers", "web servers", "HTML5", "JavaScript" and all of the other buzzwords that the ignorant today consider to be the only way to create networked applications. But these native apps did run on many different systems, and they could communicate with server software running locally or remotely. It was quite trivial to implement auto-update functionality, so that users always had the latest version. It was more than possible to ensure that the communications were done securely. Basically, anything a web app can do today could be (and was!) done using a native app in 1975, if not earlier.
You guys don't even need to look any further than your dear web browsers like Chrome and Firefox to see how all of the supposed benefits of web apps are just as easily realized when using native apps. Then there are the many benefits that only native apps offer, like much better data security and significantly better performance.
Re: (Score:1)
Basically, anything a web app can do today could be (and was!) done using a native app in 1975, if not earlier.
Except install on a machine without administrative privileges. Or is someone supposed to be going around and typing in passwords to elevate to run the automatic updater?
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
I would guess that this is only if you want to use the installer. If you have some way of updating the dll's all on the computers from a central location. It would be fine ?
Re: (Score:1)
Except install on a machine without administrative privileges.
Many applications can be written to install/run completely with user privileges. Though some platforms make this easier than others. A lot of apps I download for OS X, I just launch from the download location and only copy to /Applications when I know I want to use it long term. And even then, I can make the app owned by me so updates don't require admin privs.
Re: (Score:2)
Yea, but thanks to the Wintel revolution, we have Windows XP on P4's instead.
If you've got Linux or Unix, sure. But the OP doesn't. He has mostly aged Windows boxes, which hopefully run XP or 2K.
Re: (Score:2)
Re: (Score:2)
Back in those unix days, most people connected to a server using "telnet" and ran the application on there. There were certainly still a few of those around in the mid to late 1990s. Web based apps are a modern day equivalent of that.
home noexec (Score:3)
UNIX [...] allowed multiple users to use the same physical computer, and as part of this it gave each user their very own isolated "home directory".
It also allows the administrator to mount /home noexec.
Re: (Score:1)
Re: (Score:2)
Yeah really, I had a job previously where we'd have to do a lot of logging with a web app. Unfortunately, it would be slow, sometimes the entries would crash out and the app would often times be down when the router would crash.
I'd personally rather have just done the logs on paper in most cases, but that was against company policy.
Re: (Score:1)
People like yourself, who were apparently born after 2000, aren't aware than for decades we used networked native applications quite successfully.
Yes, and people like you, born in the 1990s, like to pretend they're actually older and smarter than people born in the 1980s. Don't worry, I've seen it all before.
Re: (Score:1)
Re: (Score:2)
Geez, sounds like someone was circumcised a little to tight.
Re: (Score:2)
* Only a Fascist would admit to being a "fan" of PCs and Sony
Or someone who doesn't go out of his way to irritate people, unless they're apple fanbois who don't know their PPC from their Nehalem ...
Re:Why not create a native application? (Score:5, Insightful)
So you don't have to have two different app development teams, one for your web projects and one for this project?
Because you want to make use of the javascript libraries you've developed for exactly this kind of app?
Because you have the whole app stack done and tested for web deployment and now you're selling a low end "single user" configuration?
Because you want to use the database platform you're used to and it doesn't happen to be embeddable like SqlLIte? And since you're running the database server anyway a web server's not so big a deail?
I could go on and on. I'm not saying this guy's approach make sense; I'm saying you can't pass judgment on it based on what he's told us.
Re: (Score:3)
Because you want to charge your customer for some crapy hunk of klugeware you build out of code snip-its you had laying around from other projects, instead of building something appropriate for their needs.
Re: (Score:2)
Hmmm. Perhaps one of the most important "needs" is "low cost". This is government, after all, and Americans have spoken clearly that they want SMALL GOVERNMENT. Well, this is the kind of crime enforcement computer system you get with small government. This is the very end result of voting for fiscal conservatives, who are just trying to maximize tax dollars. So not everyone can afford a system that will pay off in the long run, some of them have to do what the voters told them to do.
Re: (Score:1)
Americans want huge government. They just don't want to pay for it.
Re: (Score:2)
Then the inferior web application would be ditched.
That isn't so clear from the OP. Would you rather maintain versions of a program for Windows, Linux, Mac OS X, iOS, and Android, including the annual fees payable to Apple for access to the iOS platform, or would you rather maintain versions for Gecko and WebKit, with no annual fee?
Re: (Score:2)
Yea, exactly. And, provided you do your coding right, those versions can be one and the same. Perhaps some extra css for nonstandard features(like rotating text), but it could probably be done with a single version. And, honestly, compared to the VB applications that are probably in use(see http://www.thedailywtf.com/ [thedailywtf.com] ), it could easily feel snappy.
Re: (Score:2)
Re: (Score:1)
Re: (Score:2)
Re: (Score:1)
Re: (Score:2)
Re: (Score:2)
If it's what he knows, more to the point if it's all he knows, then it's the only idea.
Re: (Score:2)
When all you have is a Hammer, every screw is a nail.
Re: (Score:2)
Updates. Web apps always run at the latest version, desktop apps do not.
Re: (Score:1)
Updates. Web apps always run at the latest version, desktop apps do not.
This is false: suppose that a given Web application's releases are linearly ordered, that is to say, given any two distinct release versions, one is always "later" than the other. Then any hosting organization with sufficient resources can run twodistinct versions —at most one of these versions can be the "latest," contradicting your claim that "Web apps always run at the latest version."
I point this out because it's a red herring
Re: (Score:2)
Re: (Score:2)
Except the poster had to create a local app because said devices have no internet connection. Otherwise he'd just mandate that the web version be used instead.
So it's a desktop app, just fashioned after a static web app.
Also, updates may be easier to deploy, but there's often a lot of howling and screaming and such from existing users. You hear it every time Facebook changes anything. You also hear it when Netflix changed their interfac
Re: (Score:1)
Those who modded you up are idiots, and so are you. The summary explains that the app already exists and is a web app. He's only looking for a way to make it self-contained so it can be hosted on the client.
Re: (Score:1)
Re: (Score:2)
You may have OS and OS version independence, but you may not have web browser indepedence. And you can get quite a degree of OS version independence at least, and some OS independence and ease of installation/auto-update, especially if you use something like Java (which admittedly has its own disadvantages).
Server side crashes or failures can lose data, especially if your develoeprs are stupid. Porbably that's much rarer, but you do lose all your data at once. Client side crashes (or just unexpected browser
Re: (Score:1)
Easy (Score:5, Informative)
Use firefox with --chrome="path_to_your_homepage"
Re: (Score:2)
Use Portable Firefox and make your app portable as well. Installing sucks.
Re: (Score:3)
Re: (Score:2)
Re: (Score:1)
Re: (Score:2)
Firefox works as expected but i get a 302 error .co.nz works fine with FF5
my local google
firefox --chrome=www.google.co.nz
Java? (Score:1, Informative)
You can always use Java and it's Java display HTML. A single file (.jar) containing everything: server & browser. http://www.devdaily.com/blog/post/jfc-swing/how-create-simple-swing-html-viewer-browser-java. // timtux.net
Adobe Air 1.5+ (Score:2)
Re: (Score:2)
Wish I had mod points!
Anyway I agree -- Adobe made an excellent toolchain to do what you're asking, in the form of Adobe AIR.
HTML/CSS rendering or JS engine? (Score:2)
Are you more interested in the HTML/CSS rendering engine or in the JavaScript engine? That may determine whether you want to use something like Prism or Chromeless vs WebKit. My gut tells me you might find WebKit easier to embed and work with, but I don't know if Google or Apple are sharing their fantastic JavaScript engines, and your needs for speedy JavaScript will definitely play a role in your choice.
Re: (Score:2)
What we need is a HTML-less and javascript-less browser, that is capable of running a render engine, and a interpreter of choice.
It is nice that W3C cooks up abstractions for the world to use, but what if developers want to use their own?
Re: (Score:3)
I am replying to myself because it seems that Apple's speedy JS is indeed getting fed back to WebKit and Google's fast JS code is also open source. Hooray for a little research!
Re:Stop fighting Microsoft (Score:4, Insightful)
I'm not sure about this instance, but MS frequently requires that long to get the implementation right. Sometimes even longer, it's been like 16 years now and they have yet to get profiles right. It's absolutely inexcusable that after all this time I can't just copy or rename a profile more or less whenever I want without having to use special tools to do it.
Or how about the registry. Why they haven't given up on what was clearly a bad idea a long time ago is beyond me.
Re: (Score:2)
Or how about the registry. Why they haven't given up on what was clearly a bad idea a long time ago is beyond me.
They have given up on the registry. It's only included in Windows right now for backwards compatibility. Microsoft has been encouraging developers to stop using it for years now.
Many, many options (Score:1)
We're doing this at work, and we've weighed many options. Chrome's app mode, Prism, custom xulrunner app, embed IE, custom QtWebKit app; they all work, and with little effort. It's great how many options there are.
Chromless dead? (Score:2)
Re: (Score:1)
I have the same need (Score:2)
We are happily using prism for our customer's (also in law enforcement) whose IT department refuses to let them install "firefox". Right now prism is great but it would be nice to eventually get those ff ver 4 and ver 5 faster javascript interpreters (engines?).
I'm not sure if using --chrome would help us because I suspect I would have to use the firefox setup.msi file which would give away our secret as usually the IT department is the group going around installing our software on our user's machines. Un
Re: (Score:2)
OffByOne (Score:1)
It comes at a cost of lack of CSS, source and no update since 2006, though.
Prism is WebRunner (Score:1)
How about XUL? (Score:1)
Aieeee! (Score:2)
If they what they have now is IE, why not use IE? I mean, besides the horrible incompatibility.
Re: (Score:2)
Probably because it doesn't fit their needs as described in the question.
Re: (Score:2)
There are probably several ways to get IE with no interface. I've seen something that embedded the embeddable that way before, but I'm not sure where it is now.
MSHTML? (Score:1)
Oh, and my customers are local police & highway patrol type organizations, most likely running an aged Windows box (probably IE6, too)
It seems like you need to code something using MSHTML (or hire someone who can do that for you). Almost all modern standards compliant HTML/JS engines have quite indecent memory requirements - and from your words I can conclude your clients PCs may have very weak configurations.
Re: (Score:1)
Doesn't make sense. (Score:3)
First, why not just install the app and put a URL link on the desktop pointing to http://localhost:7777/ [localhost]? Second, are you really sure it makes sense to have a self hosted web app? I, for one, absolutely despise when companies ship some tool that installs a web server on my machine and makes me use it through a web browser. IIRC, HP did this kind of garbage for managing their printers. Write a god damn native app if it is just going to install on my local machine!
I realize that you probably want to save some money and not write two pieces of software that do the same thing, but how hard can it possibly be to make a UI in .NET that is at least as good as your web interface? Share code if you have to. If you've written the software correctly, you should be able to share the model level functionality between the two apps. Or install the web app on the local machine but create an API that the native app can hit.
It really sounds like you are approaching this problem from the completely wrong angle.
Opera Kiosk Mode (Score:3)
http://www.opera.com/support/mastering/kiosk/ Opera kiosk mode has plenty of features that would work great for you.
innovative, really? (Score:2)
Internet Explorer invented the term "kiosk mode" when it was introduced with IE4 in 1997. ;)
MSHTML and WINELIB (Score:1)
On Win32 you can easily embed MSHTML with a little bit of COM glue. Of course for other platforms YMMV. You could consider using WebKit and writing a simple shell for it. Alternatively, if you don't mind a bit of Windows pollution on non-Win32 platforms you could use WINELIB to compile your MSHTML shell so that it functions just the same. Wine embeds Gecko in quirks mode so there is a surprising amount of compatability support.
Been there don it (Score:1)
I built a simple app using http://www.kirix.com/labs/wxwebconnect.html . Since I was using wxwidgets anyway, it was a no brainer.
For those of you who question the approach, it enables you to develop a a single UI, that can easily be used both locally and remotely. In my case, for an embedded medical product, I have one set off CSS that is used when run locally and using a touchscreen, and another set of CSS that is used for remote on any web browser.
CEF - chromium embedded framework may work (Score:1)
Look at CEF: http://code.google.com/p/chromiumembedded/ [google.com]
It lets you self-host a HTML widget(s) and works on Win32, OSX and Linux. Its a wrapper around the Chromium browser, I use it in the Steam client for showing web pages in our thick app.
Surf browser (Score:2)
I personally have a personal project I developed as a web app. I then changed direction and it eventually evolved into a media center platform using Nginx, php w/fpm and a customized version of Surf [suckless.org]. basically just stripped out all the UI widgets and set it to fullscreen on a Linux box connected to my TV.
Thats not the point though. What I am saying is no matter what you are trying to accomplish you will probably have to find something open source and customize it to your needs. I dont need anything other th
userinit.exe (Score:1)
Roll your own (Score:1)
An oblique approach (Score:2)
Another option which possibly meets the requirements of the poster better is to sell a web appliance to these clients - a server box with a simple web server serving only this webapp on it which can be put inside any firewall on a local network - they just plug it in, and it serves pages on the intranet to any and all clients which need them. That would address the problem of clients without internet access, without trying to turn the web app into a desktop app and losing all the convenience of a web app. E
Easy - host a web browser control (Score:2)
In a native app. If your web app already supports most browsers, just pick the most convenient one for each platform - mshtml/trident on windows for example. Otherwise just host a webkit variant. The steam client from Valve has done both at various points in time.
It hasn't updated in 2 months? = dead? (Score:2)
Geez....
Pampered, aren't we?
What about the Mozilla Webian Shell (Score:2)
http://webian.org/shell/ [webian.org]
That could easily be changed into what you need..
Firefox and Vimperator (Score:1)
Appcelerator Titanium? (Score:1)
One solution would be to use Appcelerator Titanium: http://appcelerator.com./ [appcelerator.com.]
I've used this and it's a doddle to create a standalone webkit browser running your app. You can also embed Ruby or Python or (I think) PHP in your app if you want and there's an online packaging service that packages up your app to install as an .msi for Windows or other formats for Mac and Linux. Also, this is a fully featured Webkit browser with full CSS3 and HTML5. It's not the crippled version supplied with Adobe AIR.
It ma
HTA is another option (Score:2)
Years and years ago, Microsoft recognized the need for a standalone application that uses HTML as the UI. They call these class of apps "HTML Applications", HTA [wikipedia.org] for short. You may be surprised to know that HTA lives on, even in Windows 7. The spirit -- if not the letter -- of HTA seems to have been promoted to a first-class UI approach in Windows 8, in which (we are told), the entire Windows UI will based on HTML 5 and CSS 3.
Running as you are on old Windows platforms, HTA might work well for you. One t
WebRunner? (Score:1)
Chrome has --app switch (Score:2)
One trick is to use Google Chrome like this:
chrome --app="http://mail.google.com"
It's of course not fully featured with tray icon stuff etc. but it is supported feature of Chrome.
SWT (Score:1)
Using SWT and java it is pretty easy to embed a web browser in your app. it will correctly pick out a native installed browser and embed it. you can even add your own chrome. or use Visual Basic / .NET and IE, or the kiosk idea in opera like other posts mentioned.