// Patrik Torstensson (Patrik.Torstensson@labs2.com)
// Gonzalo Paniagua Javier (gonzalo@ximian.com)
//
-// (c) 2003 Novell, Inc. (http://www.novell.com)
+// (c) 2003-2009 Novell, Inc. (http://www.novell.com)
//
//
using System.Web.Configuration;
using System.Web.UI;
using System.Security.Permissions;
+using System.Web.Util;
-#if NET_2_0
-namespace System.Web.Configuration {
+namespace System.Web.Configuration
+{
public partial class HttpCapabilitiesBase
-#else
-
-namespace System.Web {
- [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
- [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
- public class HttpBrowserCapabilities : HttpCapabilitiesBase
-#endif
{
const int HaveActiveXControls = 1; // 1;
const int HaveAdapters = 2;
const int HaveSupportsUncheck = 102;
const int HaveSupportsXmlHttp = 103;
const int HaveTables = 104; // 18;
- //const int HaveTagWriter = 105; // 19;
+ const int HaveTagWriter = 105; // 19;
const int HaveType = 106;
const int HaveUseOptimizedCacheKey = 107;
const int HaveVBScript = 108; // 20;
Version msDomVersion;
string platform;
bool tables;
- //Type tagWriter;
+ Type tagWriter;
bool vbscript;
string version;
Version w3CDomVersion;
Version [] clrVersions;
internal string useragent;
-#if !NET_2_0
- public HttpBrowserCapabilities ()
- {
- }
-#endif
-
public bool ActiveXControls {
get {
if (!Get (HaveActiveXControls)) {
public string Browser {
get {
if (!Get (HaveBrowser)) {
- browser = ReadString("browser");
+ browser = this ["browser"];
+ if (browser == null || browser.Length == 0)
+ browser = "Unknown";
Set (HaveBrowser);
}
return browser;
}
}
-#if NET_2_0
+
ArrayList browsers = null;
public ArrayList Browsers {
get {
return browsers;
}
}
-#endif
+
+ public bool IsBrowser (string browserName)
+ {
+ foreach (string browser in Browsers) {
+ if (0 == String.Compare (browser, "Unknown", StringComparison.OrdinalIgnoreCase)) {
+ continue;
+ }
+ if (0 == String.Compare (browserName, browser, StringComparison.OrdinalIgnoreCase)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
public bool CDF {
get {
if (!Get (HaveCDF)) {
}
}
+
+ [Obsolete]
public bool JavaScript {
get {
if (!Get (HaveJavaScript)) {
public Type TagWriter {
get {
- return typeof (HtmlTextWriter);
+ if (!Get (HaveTagWriter)) {
+ tagWriter = GetTagWriter ();
+ Set (HaveTagWriter);
+ }
+ return tagWriter;
}
}
+
+ internal virtual Type GetTagWriter ()
+ {
+ return typeof (HtmlTextWriter);
+ }
public string Type {
get {
}
}
-#if NET_1_1
public Version [] GetClrVersions ()
{
if (clrVersions == null)
return clrVersions;
}
-#endif
void InternalGetClrVersions ()
{
if (list == null || list.Count == 0) {
clrVersion = new Version ();
-#if NET_2_0
clrVersions = null;
-#else
- clrVersions = new Version [1] { clrVersion };
-#endif
} else {
list.Sort ();
clrVersions = (Version []) list.ToArray (typeof (Version));
throw CreateCapabilityNotFoundException (key);
}
- return (String.Compare (v, "True", true, CultureInfo.InvariantCulture) == 0);
+ return (String.Compare (v, "True", true, Helpers.InvariantCulture) == 0);
}
int ReadInt32 (string key)
}
}
- private string ReadString (string key)
+ string ReadString (string key)
{
string v = this [key];
if (v == null) {
}
}
-#if NET_2_0
- private ArrayList ReadArrayList (string key)
+ ArrayList ReadArrayList (string key)
{
ArrayList v = (ArrayList)this.capabilities [key];
if (v == null) {
return v;
}
-#endif
+
Exception CreateCapabilityNotFoundException (string key) {
- return new ArgumentNullException (String.Format ("browscaps.ini does not contain a definition for capability {0} for userAgent {1}", key, this ["browser"]));
+ return new ArgumentNullException (String.Format ("browscaps.ini does not contain a definition for capability {0} for userAgent {1}", key, Browser));
}
bool Get (int idx)