tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Solis" <dso...@legosoft.com.mx>
Subject RE: Browser sniffer
Date Mon, 14 Apr 2003 16:50:36 GMT
There are a lot of browsers for HTML. In addition there are browsers for
other content like WML or HDML.

My proposal is to access BrowserInfo from the engine or IPage; its
storage is a programmer's decision.

I agree about the browsers standardization, but what about special
features (for example IFrames) or quirks. What about platforms and
operating systems? What about different javascript versions?

BrowserInfo is a pure server side component.

This is a sample of the information provided by BrowserInfo:

userAgent=Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US; rv:0.9.4.1)
Gecko/20020508 Netscape6/6.2.3 OmniWeb/4.2-v433
platform=mac
os=osx
browserId=OW
browser = OmniWeb
version=4.2
majorVersion=4.0
minorVersion=0.2
letterVersion=
javascript=0.0
gecko=20020508
geckoVersion=0.9.4.1
features
	html=true
	images=true
	frames=true
	tables=true
	java=true
	plugins=true
	css2=false
	css1=false
	iframes=false
	xml=false
	dom=false
	hdml=false
	wml=false
quirks
	must_cache_forms=false
	avoid_popup_windows=false
	cache_ssl_downloads=false
	break_disposition_header=false
	empty_file_input_value=false
	scrollbar_in_way=false

Currently, BrowserInfo recognize msie, netscape6, netscape, galleon,
phoenix, chimera, camino, safari, mozilla, opera, conqueror, icab, lynx,
links, ncsa mosaic, amaya, omniweb, hotjava, browsex

Currently I'd the need about BrowserInfo because there is a requirement
to add a digital signature to each transaction (i.e. each form). The
certificate is in the client's PC and the piece of software to sign the
transaction runs on Windows and it supports msie 5.5 or later, or
netscape 6 or 7. In fact there are two components (not tapestry
components), one for msie (an active x) and another to netscape (an
applet).

David

> -----Original Message-----
> From: Howard M. Lewis Ship [mailto:hlship@attbi.com]
> Sent: Monday, April 14, 2003 11:06 AM
> To: 'Tapestry development'
> Subject: RE: Browser sniffer
> 
> I've had some noodling about the best approach for this.
> 
> I think there should be some kind of BrowserInfo object stored in the
> HttpSession.  It should be accessible from the Engine but not
necessarily
> be
> a persistent property of the engine.
> 
> Unlike Visit and Global, I don't know that the BrowserInfo will be
> accessed
> so often that an IPage change is necessary.
> 
> I think an ideal BrowserInfo would not simply be a storage place for
the
> User-Agent header, since that often lies.
> 
> I think it should have a significant client-side aspect, that uses
> JavaScript to detect and report the actual client type.  Possibly this
> will
> involve a new component and perhaps a new service.  I picture the
> component
> doing some sniffing and reporting back to the server using a special
> asset.
> 
> An even more powerful option would be a component that would rewrite
the
> URLs used on the page, adding a query parameter that expresses the
exact
> content type.  This *is* doable using client-side JavaScript.  But, of
> course, JavaScript shouldn't be required (perhaps relying on the User-
> Agent
> header if client-side JavaScript is missing or disabled).
> 
> I'm also wondering to what degree the time for this has passed; the
major
> browsers left (IE, Mozilla, Opera, etc.) are finally converging and
> behaving
> similarily on standard HTML.  Browser sniffing was more of a necessity
> when
> trying to support IE and Netscape 4.
> 
> --
> Howard M. Lewis Ship
> Creator, Tapestry: Java Web Components
> http://jakarta.apache.org/tapestry
> 
> 
> 
> > -----Original Message-----
> > From: David Solis [mailto:dsolis@legosoft.com.mx]
> > Sent: Monday, April 14, 2003 11:14 AM
> > To: tapestry-dev@jakarta.apache.org
> > Subject: Browser sniffer
> >
> >
> > I'd like a feedback about BrowserInfo object before to post a
> > feature request
> >
> > Goal:
> > Determine the capabilities of the user's browser.
> >
> > Proposal:
> > The browser info object would have an accessor method added to IPage
> > interface:
> >
> > public BrowserInfo getBrowserInfo();
> >
> > and other to IEngine:
> >
> > public BrowserInfo getBrowserInfo(IRequestCycle cycle);
> >
> > This object would be instantiated via a constructor with a
> > parameter IRequestCycle. This object could be stored in the
> > Visit object so that it can potentially be shared with other
> > pages or components.
> >
> > This object could be optionally instantiated via a
> > constructor with a custom user agent parameter.
> >
> > Scope:
> > One time
> > Session
> >
> >
> >
> >
> >
---------------------------------------------------------------------
> > To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail:
tapestry-dev-help@jakarta.apache.org
> >
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org


Mime
View raw message