Author: jbevain
Date: 2007-11-09 10:06:44 -0500 (Fri, 09 Nov 2007)
New Revision: 89318

Modified:
   
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebAsyncResult.cs
   
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebRequest.cs
   
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebResponse.cs
   trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/ChangeLog
Log:
2007-11-09  Jb Evain  <[EMAIL PROTECTED]>

        * BrowserHttpWebAsyncResult.cs
        * BrowserHttpWebResponse.cs
        * BrowserHttpWebRequest.cs:
                Do not allow methods that are called from the unmanaged
                site of the BrowserHttpRequest to bubble up exceptions.


Modified: 
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebAsyncResult.cs
===================================================================
--- 
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebAsyncResult.cs
        2007-11-09 14:45:31 UTC (rev 89317)
+++ 
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebAsyncResult.cs
        2007-11-09 15:06:44 UTC (rev 89318)
@@ -48,6 +48,7 @@
                bool completed;
                AsyncCallback callback;
                ManualResetEvent wait_handle;
+               Exception exception;
 
                BrowserHttpWebResponse response;
 
@@ -84,6 +85,15 @@
                        get { return completed; }
                }
 
+               public bool HasException {
+                       get { return exception != null; }
+               }
+
+               public Exception Exception {
+                       get { return exception; }
+                       set { exception = value; }
+               }
+
                public BrowserHttpWebAsyncResult (AsyncCallback callback, 
object state)
                {
                        this.callback = callback;

Modified: 
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebRequest.cs
===================================================================
--- 
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebRequest.cs
    2007-11-09 14:45:31 UTC (rev 89317)
+++ 
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebRequest.cs
    2007-11-09 15:06:44 UTC (rev 89318)
@@ -139,8 +139,12 @@
 
                void OnAsyncResponseAvailable (IntPtr native, IntPtr context)
                {
-                       async_result.Response = new BrowserHttpWebResponse 
(this, native);
-                       async_result.SetComplete ();
+                       try {
+                               async_result.Response = new 
BrowserHttpWebResponse (this, native);
+                               async_result.SetComplete ();
+                       } catch (Exception e) {
+                               async_result.Exception = e;
+                       }
                }
 
                public override Stream EndGetRequestStream (IAsyncResult 
asyncResult)
@@ -156,6 +160,11 @@
                        if (!async_result.IsCompleted)
                                async_result.AsyncWaitHandle.WaitOne ();
 
+                       if (async_result.HasException) {
+                               async_result.Dispose ();
+                               throw async_result.Exception;
+                       }
+
                        response = async_result.Response;
                        async_result.Dispose ();
 

Modified: 
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebResponse.cs
===================================================================
--- 
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebResponse.cs
   2007-11-09 14:45:31 UTC (rev 89317)
+++ 
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebResponse.cs
   2007-11-09 15:06:44 UTC (rev 89318)
@@ -69,7 +69,9 @@
 
                void OnHttpHeader (string name, string value)
                {
-                       headers [name] = value;
+                       try {
+                               headers [name] = value;
+                       } catch {}
                }
 
                public override void Close ()

Modified: 
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/ChangeLog
===================================================================
--- trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/ChangeLog   
2007-11-09 14:45:31 UTC (rev 89317)
+++ trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/ChangeLog   
2007-11-09 15:06:44 UTC (rev 89318)
@@ -1,5 +1,12 @@
 2007-11-09  Jb Evain  <[EMAIL PROTECTED]>
 
+       * BrowserHttpWebAsyncResult.cs
+       * BrowserHttpWebResponse.cs
+       * BrowserHttpWebRequest.cs:
+               Do not allow methods that are called from the unmanaged
+               site of the BrowserHttpRequest to bubble up exceptions.
+2007-11-09  Jb Evain  <[EMAIL PROTECTED]>
+
        * BrowserHttpWebRequest.cs: throw if an async request
        cannot be started.
 

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to