2010-03-03 Andreia Gaita * InternalWebRequestStreamWrapper.cs: don't add a newline to the request data, whatever uses the data should be the one adding newlines if they need it (i.e., moon's ff bridge needs it, the curl bridge doesn't) 2010-02-25 Rolf Bjarne Kvinge * WebClient_2_1.cs: Emit DownloadProgressChanged events on the correct thread too. 2010-02-23 Sebastien Pouliot * HttpWebRequest_2_1.cs: Accept and ContentType properties do not behave like Silverlight 2.0 (not related to browser/client stacks) * WebHeaderCollection_2_1.cs: Range is now accepted in SL3 (not related to browser/client stacks) * WebRequest_2_1.cs: Fix registration to work on domains (new) and scheme (more correctly wrt new unit tests). 2010-02-16 Sebastien Pouliot * WebClient_2_1.cs: Keep a copy of 'userToken' since we need to supply it when calling OnDownloadProgressChanged * WebRequest_2_1.cs (SetupProgressDelegate): Simplify signature 2010-01-29 Rolf Bjarne Kvinge * WebClient_2_1.cs: Ensure the WriteStreamClosed event is emitted on the correct thread (by using the stored SynchronizationContext). * InternalWebRequestStreamWrapper.cs: Add a WebClientData field which is passed to the WriteStreamClosedCallback. 2010-01-28 Rolf Bjarne Kvinge * WebClient_2_1.cs: The async events must be invoked on a threadpool thread if the async method wasn't executed on the main thread, so save the synchronization context when the async method is called, and post the event to that synchronization context when done. This is also required when the async methods are executed on the main thread, since HttpWebRequest callbacks are now always executed on a threadpool thread. 2010-01-25 Sebastien Pouliot * UdpAnySourceMulticastClient.cs: New. Stub for SL4 * UdpSingleSourceMulticastClient.cs: New. Stub for SL4 2010-01-13 Sebastien Pouliot * HttpWebRequest_2_1.cs: Throw for CookieContainer. It is implemented only in the client http stack (and for a limited time in the browser stack too ;-) * InternalWebRequestStreamWrapper.cs: Keep the MemoryStream data available after closing/disposing (by user) since our own code will need it later (e.g. when posting like DRT287) * WebHeaderCollection_2_1.cs: Provide an argument to ArgumentException. Found by Gendarme's ArgumentException InstantiateArgumentExceptionCorrectlyRule 2010-01-12 Sebastien Pouliot * WebRequest_2_1.cs: Rework registration wrt the two, browser and client, stacks offered in SL3. Only global works now. 2010-01-11 Sebastien Pouliot * InternalWebRequestStreamWrapper.cs: New. Moved (and adapted) from Moonlight System.Windows.Browser assembly. * InternalWebResponseStreamWrapper.cs: New. Moved (and adapted) from Moonlight System.Windows.Browser assembly. * WebClient_2_1.cs: Remove custom delegate declaration (Gendarme's AvoidDeclaringCustomDelegatesRule). Remove locking over a variable (Gendarme's ReviewLockUsedOnlyForOperationsOnVariablesRule). Avoid potential race with event handlers (Gendarme's ProtectCallsToEventDelegatesRule). Implement OnWriteStreamClosed * WebRequest_2_1.cs: Signature change from delegate to Action. Found using Gendarme's AvoidDeclaringCustomDelegatesRule 2009-12-12 Rolf Bjarne Kvinge * WebClient_2_1.cs: When creating the request we need to copy over any headers the user set on us. We also need to wrap InvalidOperationExceptions in WebExceptions. 2009-12-04 Sebastien Pouliot * HttpStatusCode_2_1.cs: Remove. SL3 provides all status code since they are used for the client stack * WebClient_2_1.cs: Add Credentials property and change ResponseHeaders property to public * WebRequest_2_1.cs: Add Credentials property 2009-12-04 Sebastien Pouliot * DnsEndPoint_2_1.cs: Moved to System.dll since it's also part of .net 4.0 2009-12-04 Sebastien Pouliot * HttpWebRequest_2_1.cs: Add CookieCollection, need to be implemented in the client stack * HttpWebResponse_2_1.cs: CookieContainer is virtual. Add FIXME to move (a real) implementation into the client stack * WebRequest_2_1.cs: Add Create(string) overload (SL3) 2009-09-24 Sebastien Pouliot * Dns_2_1.cs: New. Smaller version of Dns.cs that offers just enough for DnsEndPoint support 2009-09-24 Sebastien Pouliot * DnsEndPoint_2_1.cs: Remove (now) unneeded method 2009-07-16 Sebastien Pouliot * WebHeaderCollection_2_1.cs: Seal type. 2009-06-17 Sebastien Pouliot * WebClient_2_1.cs: Fix BaseAddress and remove dual base[Address| String] variables. 2009-06-05 Sebastien Pouliot * WebClient_2_1.cs: Make sure *CompletedEventArgs gets called even in case an exception occurs before the BeginGetResponse call. Adjust API for OpenReadCompletedEventArgs. 2009-06-04 Sebastien Pouliot * WebClient_2_1.cs: Remove the creation of threads and use the async methods provided by WebRequest (and its friends). Use an internal object to lock on (not this). Remove comments from the original (mono) WebClient since the code has diverged so much. Fix DRT#326 (hopefully others too or at least more than it breaks) 2009-06-01 Sebastien Pouliot * HttpWebRequest_2_1.cs: Avoid possible NRE while settings a complete collection. * WebResponse_2_1.cs: Use StringComparer.OrdinalIgnoreCase on the prefix Dictionary 2009-05-26 Sebastien Pouliot * WebClient_2_1.cs: Add internal WebHeaderCollection. Change signature for OpenPolicyReadAsync to take an addtional object * WebResponse_2_1.cs: Add internal WebHeaderCollection 2009-05-22 Sebastien Pouliot * WebClient_2_1.cs: Add an internal OpenPolicyReadAsync. Check result in ProcessResponse and throw if not Ok (200). * WebRequest_2_1.cs: Add an internal overload to BeginGetResponse from where we can handle downloading the policy. 2009-05-14 Sebastien Pouliot * DnsEndPoint_2_1.cs: Add method to return an IPEndPoint from a DnsEndPoint that match the requested AddressFamily 2009-05-12 Sebastien Pouliot * WebHeaderCollection_2_1.cs: Headers are case insensitive but we must keep them in their original form since AllKeys property will report them that way and user code (like DRT#288) can depends on this behavior. 2009-05-11 Sebastien Pouliot * WebHeaderCollection_2_1.cs: Headers are removed only in special cases and never when the "this" property is used. Call ToLower in SetHeader too in order to avoid typos. 2009-05-11 Sebastien Pouliot * HttpWebRequest_2_1.cs: Fix Accept and ContentType properties to use, with special care, the Headers property * WebHeaderCollection_2_1.cs (SetHeader): Add or remove header. 2009-05-10 Sebastien Pouliot * HttpWebRequest_2_1.cs: Move Headers property logic here (as shown by adding more unit tests) * WebClient_2_1.cs: Add comment that Headers are not validated there, but later. * WebHeaderCollection_2_1.cs: Add a SetHeader method that can work around the normal validations that the "this" property needs to do. 2009-05-09 Sebastien Pouliot * WebHeaderCollection_2_1.cs: When associated with a WebRequest the header collection items needs to be validated since not all headers will be valid. Part of fix for DRT#532 2009-04-16 Sebastien Pouliot * HttpWebRequest_2_1.cs: Rework the throwing of NIE so gui-compare does not report them (since they are the "right" behavior) * WebClient_2_1.cs: Fix BaseAddress property to return the URI to the XAP file. Implement protected GetWebRequest which will make an absolute URI from a relative one (using BaseAddress). That remove the need of the previous hack. * WebRequest_2_1.cs: Remove previous hack 2009-04-11 Sebastien Pouliot * WebClient_2_1.cs: WebClient allows relative URI... * WebRequest_2_1.cs: ...while WebRequest does not by default. Also uncomment a few checks for new test cases 2009-04-11 Sebastien Pouliot * DnsEndPoint_2_1.cs: Adjust exceptions wrt unit tests * HttpWebRequest_2_1.cs: Fix Headers property wrt unit tests: * WebClient_2_1.cs: Fix some properties * WebHeaderCollection_2_1.cs: Adjust exceptions wrt unit tests * WebRequest_2_1.cs: Add RegisterPrefix functionality and add missing checks (fix unit tests) 2009-04-09 Sebastien Pouliot * DnsEndPoint_2_1.cs: Fix header. * HttpStatusCode_2_1.cs: New. SL2 (short) version of the enum * HttpWebRequest_2_1.cs: Add missing members * WebExceptionStatus_2_1.cs: New. SL2 (short) version of the enum * WebHeaderCollection_2_1.cs: Implement S.C.IEnumerable 2009-03-11 Rolf Bjarne Kvinge * WebClient_2_1.cs: OnOpenReadCompleted and OnDownloadStringCompleted: make sure we don't pass any exceptions back to native code. 2009-03-04 Rolf Bjarne Kvinge * WebClient_2_1.cs: Stub out missing methods. * WriteStreamClosedEventArgs_2_1.cs: * WriteStreamClosedEventHandler_2_1.cs: Added. 2009-02-05 Geoff Norton * WebClient_2_1.cs: Use g_timeout_add instead of g_idle_add here until SyncContext is ready, as its less prone to starvation. 2009-02-05 Geoff Norton * WebClient_2_1.cs: CancelAsync calls Thread.Interrupt so needs to be SecuritySafeCritical for now. 2009-01-26 Rolf Bjarne Kvinge * WebClient_2_1.cs: Ensure we don't let exceptions go to native code. * HttpWebRequest_2_1.cs: Add AllowReadStreamBuffering. 2009-01-21 Geoff Norton * WebClient_2_1.cs: Make the ManualResetEvent local to the callback because a WebClient can be reused causing a wait-handle race here allowing a delegate to get collected causing a crash. 2009-01-21 Chris Toshok * WebClient_2_1.cs: add 1 method back in, CancelAsync. 2009-01-12 Geoff Norton * WebClient_2.1.cs: SL2 webclient supports BaseAddress. 2008-10-16 Jb Evain * WebHeaderCollection_2_1.cs: update to SL2 api. 2008-10-16 Jb Evain * WebResponse_2_1.cs: update API to SL2. 2008-08-21 Stephane Delcroix * WebClient_2_1.cs: set the address on OpenReadCompletedEventArgs ctor. 2008-08-21 Stephane Delcroix * WebClient_2_1.cs: enable the DownloadStringAsync code 2008-08-19 Geoff Norton * WebClient_2_1.cs: Keep a reference to the tick callback until its completed. 2008-08-18 Geoff Norton * WebRequest_2_1.cs: Set a delegate callback for BrowserHttpWebRequest to update progress. * WebClient_2_1.cs: Refactor the OnDownloadedChanged method, as its already emitting on the right thread. Clean up the OnOpenReadCompleted method. Set a delegate callback for BrowserHttpWebRequest to updated Progress. 2008-08-17 Geoff Norton * WebRequest_2_1.cs: We support relative URI's now. 2008-08-14 Geoff Norton * WebClient_2_1.cs: A dirty hack to emit the events on the proper thread until we can figure out exactly how to leverage Dispatcher over here. 2008-06-18 Stephane Delcroix * WebRequest_2_1.cs: Load BrowserHttpWebRequest from the right assembly 2008-06-10 Stephane Delcroix * DnsEndPoint_2_1.cs: embed an IPAddress and rely on IPEndPoint for serialization. 2008-06-04 Stephane Delcroix * DnsEndPoint_2_1.cs: new DnsEndPoint class for SL2b1 2008-04-13 Jb Evain * *_2_1.cs: move the specific 2.1 System.Net code to the assembly System.Net.