diff --git a/configure.in b/configure.in
index 012fbc7f9140..c806492e281a 100644
--- a/configure.in
+++ b/configure.in
@@ -3388,7 +3388,35 @@ AC_CONFIG_COMMANDS([runtime/etc/mono/2.0/Browsers/Compat.browser],
$ac_aux_dir/install-sh -d runtime/etc/mono/2.0/Browsers/
cd runtime/etc/mono/2.0/Browsers
rm -f Compat.browser
- $LN_S $reldir/data/net_2_0/Browsers/Compat.browser Compat.browser
+ $LN_S $reldir/data/Browsers/Compat.browser Compat.browser
+ cd $depth
+],[LN_S='$LN_S'])
+
+AC_CONFIG_COMMANDS([runtime/etc/mono/4.0/Browsers/Compat.browser],
+[ depth=../../../../..
+ case $srcdir in
+ [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
+ .) reldir=$depth ;;
+ *) reldir=$depth/$srcdir ;;
+ esac
+ $ac_aux_dir/install-sh -d runtime/etc/mono/4.0/Browsers/
+ cd runtime/etc/mono/4.0/Browsers
+ rm -f Compat.browser
+ $LN_S $reldir/data/Browsers/Compat.browser Compat.browser
+ cd $depth
+],[LN_S='$LN_S'])
+
+AC_CONFIG_COMMANDS([runtime/etc/mono/4.5/Browsers/Compat.browser],
+[ depth=../../../../..
+ case $srcdir in
+ [[\\/$]]* | ?:[[\\/]]* ) reldir=$srcdir ;;
+ .) reldir=$depth ;;
+ *) reldir=$depth/$srcdir ;;
+ esac
+ $ac_aux_dir/install-sh -d runtime/etc/mono/4.5/Browsers/
+ cd runtime/etc/mono/4.5/Browsers
+ rm -f Compat.browser
+ $LN_S $reldir/data/Browsers/Compat.browser Compat.browser
cd $depth
],[LN_S='$LN_S'])
@@ -3496,6 +3524,8 @@ data/net_2_0/Makefile
data/net_4_0/Makefile
data/net_4_5/Makefile
data/net_2_0/Browsers/Makefile
+data/net_4_0/Browsers/Makefile
+data/net_4_5/Browsers/Makefile
data/mint.pc
data/mono-2.pc
data/monosgen-2.pc
diff --git a/data/net_2_0/Browsers/.gitattributes b/data/Browsers/.gitattributes
similarity index 100%
rename from data/net_2_0/Browsers/.gitattributes
rename to data/Browsers/.gitattributes
diff --git a/data/net_2_0/Browsers/ChangeLog b/data/Browsers/ChangeLog
similarity index 100%
rename from data/net_2_0/Browsers/ChangeLog
rename to data/Browsers/ChangeLog
diff --git a/data/net_2_0/Browsers/Compat.browser b/data/Browsers/Compat.browser
similarity index 100%
rename from data/net_2_0/Browsers/Compat.browser
rename to data/Browsers/Compat.browser
diff --git a/data/net_2_0/Browsers/Makefile.am b/data/net_2_0/Browsers/Makefile.am
index 4d5b8c9c56b8..ed00678b1649 100644
--- a/data/net_2_0/Browsers/Makefile.am
+++ b/data/net_2_0/Browsers/Makefile.am
@@ -1,6 +1,6 @@
monodir = $(sysconfdir)/mono/2.0/Browsers
-EXTRA_DIST = Compat.browser
+EXTRA_DIST = ../../Browsers/Compat.browser
-mono_DATA = Compat.browser
+mono_DATA = ../../Browsers/Compat.browser
diff --git a/data/net_4_0/Browsers/.gitignore b/data/net_4_0/Browsers/.gitignore
new file mode 100644
index 000000000000..b336cc7cec94
--- /dev/null
+++ b/data/net_4_0/Browsers/.gitignore
@@ -0,0 +1,2 @@
+/Makefile
+/Makefile.in
diff --git a/data/net_4_0/Browsers/Makefile.am b/data/net_4_0/Browsers/Makefile.am
new file mode 100644
index 000000000000..0940002cb62f
--- /dev/null
+++ b/data/net_4_0/Browsers/Makefile.am
@@ -0,0 +1,6 @@
+monodir = $(sysconfdir)/mono/4.0/Browsers
+
+EXTRA_DIST = ../../Browsers/Compat.browser
+
+mono_DATA = ../../Browsers/Compat.browser
+
diff --git a/data/net_4_0/Makefile.am b/data/net_4_0/Makefile.am
index 9ca4996f8b26..31727c5910b0 100644
--- a/data/net_4_0/Makefile.am
+++ b/data/net_4_0/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS =
+SUBDIRS = Browsers
monodir = $(sysconfdir)/mono/4.0
diff --git a/data/net_4_5/Browsers/.gitignore b/data/net_4_5/Browsers/.gitignore
new file mode 100644
index 000000000000..b336cc7cec94
--- /dev/null
+++ b/data/net_4_5/Browsers/.gitignore
@@ -0,0 +1,2 @@
+/Makefile
+/Makefile.in
diff --git a/data/net_4_5/Browsers/Makefile.am b/data/net_4_5/Browsers/Makefile.am
new file mode 100644
index 000000000000..a23482934019
--- /dev/null
+++ b/data/net_4_5/Browsers/Makefile.am
@@ -0,0 +1,6 @@
+monodir = $(sysconfdir)/mono/4.5/Browsers
+
+EXTRA_DIST = ../../Browsers/Compat.browser
+
+mono_DATA = ../../Browsers/Compat.browser
+
diff --git a/data/net_4_5/Makefile.am b/data/net_4_5/Makefile.am
index c45989c15e0a..bfe4ac6a7b48 100644
--- a/data/net_4_5/Makefile.am
+++ b/data/net_4_5/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS =
+SUBDIRS = Browsers
monodir = $(sysconfdir)/mono/4.5
diff --git a/mcs/class/System.Web/System.Web.Configuration_2.0/HttpCapabilitiesBase.cs b/mcs/class/System.Web/System.Web.Configuration_2.0/HttpCapabilitiesBase.cs
index 99486acfd2b0..d37fa87d923f 100644
--- a/mcs/class/System.Web/System.Web.Configuration_2.0/HttpCapabilitiesBase.cs
+++ b/mcs/class/System.Web/System.Web.Configuration_2.0/HttpCapabilitiesBase.cs
@@ -247,9 +247,17 @@ public virtual bool CanSendMail {
}
}
- public IDictionary Capabilities {
+ public IDictionary Capabilities
+ {
get { return capabilities; }
- set { capabilities = new Hashtable(value, StringComparer.OrdinalIgnoreCase); }
+ set {
+ //value comes with duplicated keys, so we filter them out
+ capabilities = new Hashtable (value.Keys.Count, StringComparer.OrdinalIgnoreCase);
+ foreach (object key in value.Keys) {
+ if (!capabilities.Contains (key))
+ capabilities.Add (key, value [key]);
+ }
+ }
}
int defaultSubmitButtonLimit;
diff --git a/mcs/class/System.Web/Test/System.Web/AppBrowsersTest.cs b/mcs/class/System.Web/Test/System.Web/AppBrowsersTest.cs
index 3561780ff112..6d02c725aa8d 100644
--- a/mcs/class/System.Web/Test/System.Web/AppBrowsersTest.cs
+++ b/mcs/class/System.Web/Test/System.Web/AppBrowsersTest.cs
@@ -40,7 +40,9 @@
namespace MonoTests.System.Web
{
[TestFixture]
- [Ignore ("Pending fix for bug 351878")]
+#if NET_3_0
+ [Ignore ("adapters.browser depends on System.Web_test_net_2_0.dll")]
+#endif
public class AppBrowsersTest
{
[TestFixtureSetUp]
diff --git a/mono-core.spec.in b/mono-core.spec.in
index 455e0e5c51d4..217bcaa0226b 100644
--- a/mono-core.spec.in
+++ b/mono-core.spec.in
@@ -908,8 +908,10 @@ Mono implementation of ASP.NET, Remoting and Web Services.
%config %_sysconfdir/mono/2.0/Browsers
%config %_sysconfdir/mono/2.0/DefaultWsdlHelpGenerator.aspx
%config %_sysconfdir/mono/2.0/web.config
+%config %_sysconfdir/mono/4.0/Browsers
%config %_sysconfdir/mono/4.0/DefaultWsdlHelpGenerator.aspx
%config %_sysconfdir/mono/4.0/web.config
+%config %_sysconfdir/mono/4.5/Browsers
%config %_sysconfdir/mono/4.5/DefaultWsdlHelpGenerator.aspx
%config %_sysconfdir/mono/4.5/web.config
%config %_sysconfdir/mono/browscap.ini
diff --git a/msvc/win32.xml b/msvc/win32.xml
index 4ab2c674cb49..6263590c1108 100644
--- a/msvc/win32.xml
+++ b/msvc/win32.xml
@@ -17,7 +17,9 @@
-
+
+
+
@@ -1894,4 +1896,4 @@
-
\ No newline at end of file
+
diff --git a/runtime/Makefile.am b/runtime/Makefile.am
index 927089468256..8cf639ff9118 100644
--- a/runtime/Makefile.am
+++ b/runtime/Makefile.am
@@ -6,13 +6,15 @@ etctmp = etc
symlinks = etc/mono/1.0/machine.config etc/mono/2.0/machine.config etc/mono/2.0/web.config etc/mono/browscap.ini etc/mono/2.0/Browsers/Compat.browser
if INSTALL_4_0
-symlinks += etc/mono/4.0/machine.config etc/mono/4.0/web.config etc/mono/4.5/web.config etc/mono/4.5/machine.config
+symlinks += etc/mono/4.0/machine.config etc/mono/4.0/web.config etc/mono/4.5/web.config etc/mono/4.5/machine.config etc/mono/4.0/Browsers/Compat.browser etc/mono/4.5/Browsers/Compat.browser
endif
etc/mono/2.0/machine.config: $(top_srcdir)/data/net_2_0/machine.config
etc/mono/2.0/web.config: $(top_srcdir)/data/net_2_0/web.config
etc/mono/browscap.ini: $(top_srcdir)/data/browscap.ini
-etc/mono/2.0/Browsers/Compat.browser: $(top_srcdir)/data/net_2_0/Browsers/Compat.browser
+etc/mono/2.0/Browsers/Compat.browser: $(top_srcdir)/data/Browsers/Compat.browser
+etc/mono/4.0/Browsers/Compat.browser: $(top_srcdir)/data/Browsers/Compat.browser
+etc/mono/4.5/Browsers/Compat.browser: $(top_srcdir)/data/Browsers/Compat.browser
etc/mono/4.0/machine.config: $(top_srcdir)/data/net_4_0/machine.config
etc/mono/4.0/web.config: $(top_srcdir)/data/net_4_0/web.config
etc/mono/4.5/machine.config: $(top_srcdir)/data/net_4_5/machine.config