Skip to content

Commit 809b571

Browse files
committed
Upgraded to AngleSharp v0.9.4
1 parent 4d258de commit 809b571

File tree

13 files changed

+97
-62
lines changed

13 files changed

+97
-62
lines changed

AngleSharp.Scripting.CSharp.Tests/AngleSharp.Scripting.CSharp.Tests.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@
3535
<WarningLevel>4</WarningLevel>
3636
</PropertyGroup>
3737
<ItemGroup>
38-
<Reference Include="AngleSharp, Version=0.9.2.40598, Culture=neutral, PublicKeyToken=e83494dcdc6d31ea, processorArchitecture=MSIL">
39-
<HintPath>..\packages\AngleSharp.0.9.2\lib\net45\AngleSharp.dll</HintPath>
38+
<Reference Include="AngleSharp, Version=0.9.4.42449, Culture=neutral, PublicKeyToken=e83494dcdc6d31ea, processorArchitecture=MSIL">
39+
<HintPath>..\packages\AngleSharp.0.9.4\lib\net45\AngleSharp.dll</HintPath>
4040
<Private>True</Private>
4141
</Reference>
4242
<Reference Include="Microsoft.CSharp" />
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3-
<package id="AngleSharp" version="0.9.2" targetFramework="net45" />
3+
<package id="AngleSharp" version="0.9.4" targetFramework="net45" />
44
<package id="NUnit" version="2.6.4" targetFramework="net45" />
55
<package id="NUnitTestAdapter" version="2.0.0" targetFramework="net45" />
66
</packages>

AngleSharp.Scripting.CSharp/AngleSharp.Scripting.CSharp.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@
4343
<Compile Include="WindowService.cs" />
4444
</ItemGroup>
4545
<ItemGroup>
46-
<Reference Include="AngleSharp, Version=0.9.2.40598, Culture=neutral, PublicKeyToken=e83494dcdc6d31ea, processorArchitecture=MSIL">
47-
<HintPath>..\packages\AngleSharp.0.9.2\lib\portable-windows8+net45+windowsphone8+wpa\AngleSharp.dll</HintPath>
46+
<Reference Include="AngleSharp, Version=0.9.4.42449, Culture=neutral, PublicKeyToken=e83494dcdc6d31ea, processorArchitecture=MSIL">
47+
<HintPath>..\packages\AngleSharp.0.9.4\lib\portable-windows8+net45+windowsphone8+wpa\AngleSharp.dll</HintPath>
4848
<Private>True</Private>
4949
</Reference>
5050
</ItemGroup>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3-
<package id="AngleSharp" version="0.9.2" targetFramework="portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10" />
3+
<package id="AngleSharp" version="0.9.4" targetFramework="portable-net45+win+wpa81+wp80+MonoAndroid10+xamarinios10+MonoTouch10" />
44
</packages>

AngleSharp.Scripting.JavaScript.Generator/AngleSharp.Scripting.JavaScript.Generator.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@
3030
<WarningLevel>4</WarningLevel>
3131
</PropertyGroup>
3232
<ItemGroup>
33-
<Reference Include="AngleSharp, Version=0.9.2.40598, Culture=neutral, PublicKeyToken=e83494dcdc6d31ea, processorArchitecture=MSIL">
34-
<HintPath>..\packages\AngleSharp.0.9.2\lib\net45\AngleSharp.dll</HintPath>
33+
<Reference Include="AngleSharp, Version=0.9.4.42449, Culture=neutral, PublicKeyToken=e83494dcdc6d31ea, processorArchitecture=MSIL">
34+
<HintPath>..\packages\AngleSharp.0.9.4\lib\net45\AngleSharp.dll</HintPath>
3535
<Private>True</Private>
3636
</Reference>
3737
<Reference Include="System" />
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3-
<package id="AngleSharp" version="0.9.2" targetFramework="net46" />
3+
<package id="AngleSharp" version="0.9.4" targetFramework="net46" />
44
</packages>

AngleSharp.Scripting.JavaScript.Tests/AngleSharp.Scripting.JavaScript.Tests.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@
3636
<WarningLevel>4</WarningLevel>
3737
</PropertyGroup>
3838
<ItemGroup>
39-
<Reference Include="AngleSharp, Version=0.9.2.40598, Culture=neutral, PublicKeyToken=e83494dcdc6d31ea, processorArchitecture=MSIL">
40-
<HintPath>..\packages\AngleSharp.0.9.2\lib\net45\AngleSharp.dll</HintPath>
39+
<Reference Include="AngleSharp, Version=0.9.4.42449, Culture=neutral, PublicKeyToken=e83494dcdc6d31ea, processorArchitecture=MSIL">
40+
<HintPath>..\packages\AngleSharp.0.9.4\lib\net45\AngleSharp.dll</HintPath>
4141
<Private>True</Private>
4242
</Reference>
4343
<Reference Include="Jint, Version=2.6.0.0, Culture=neutral, PublicKeyToken=2e92ba9c8d81157f, processorArchitecture=MSIL">
44-
<HintPath>..\packages\Jint.2.6.0\lib\portable-net40+sl50+win+WindowsPhoneApp81+wp80\Jint.dll</HintPath>
44+
<HintPath>..\packages\Jint.2.7.1\lib\portable-net40+sl50+win+WindowsPhoneApp81+wp80\Jint.dll</HintPath>
4545
<Private>True</Private>
4646
</Reference>
4747
<Reference Include="nunit.core, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3-
<package id="AngleSharp" version="0.9.2" targetFramework="net46" />
4-
<package id="Jint" version="2.6.0" targetFramework="net46" />
3+
<package id="AngleSharp" version="0.9.4" targetFramework="net46" />
4+
<package id="Jint" version="2.7.1" targetFramework="net46" />
55
<package id="NUnit" version="2.6.4" targetFramework="net46" />
66
<package id="NUnitTestAdapter" version="2.0.0" targetFramework="net46" />
77
</packages>

AngleSharp.Scripting.JavaScript/AngleSharp.Scripting.JavaScript.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,12 @@
3232
<DocumentationFile>bin\Release\AngleSharp.Scripting.JavaScript.xml</DocumentationFile>
3333
</PropertyGroup>
3434
<ItemGroup>
35-
<Reference Include="AngleSharp, Version=0.9.2.40598, Culture=neutral, PublicKeyToken=e83494dcdc6d31ea, processorArchitecture=MSIL">
36-
<HintPath>..\packages\AngleSharp.0.9.2\lib\net45\AngleSharp.dll</HintPath>
35+
<Reference Include="AngleSharp, Version=0.9.4.42449, Culture=neutral, PublicKeyToken=e83494dcdc6d31ea, processorArchitecture=MSIL">
36+
<HintPath>..\packages\AngleSharp.0.9.4\lib\net45\AngleSharp.dll</HintPath>
3737
<Private>True</Private>
3838
</Reference>
3939
<Reference Include="Jint, Version=2.6.0.0, Culture=neutral, PublicKeyToken=2e92ba9c8d81157f, processorArchitecture=MSIL">
40-
<HintPath>..\packages\Jint.2.6.0\lib\portable-net40+sl50+win+WindowsPhoneApp81+wp80\Jint.dll</HintPath>
40+
<HintPath>..\packages\Jint.2.7.1\lib\portable-net40+sl50+win+WindowsPhoneApp81+wp80\Jint.dll</HintPath>
4141
<Private>True</Private>
4242
</Reference>
4343
<Reference Include="System" />

AngleSharp.Scripting.JavaScript/Dom/XmlHttpRequest.cs

Lines changed: 69 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
using System.IO;
1010
using System.Net;
1111
using System.Text;
12-
using System.Threading;
1312
using System.Threading.Tasks;
1413

1514
/// <summary>
@@ -28,7 +27,6 @@ public sealed class XmlHttpRequest : XmlHttpRequestEventTarget
2827

2928
readonly Dictionary<String, String> _headers;
3029
readonly IWindow _window;
31-
readonly CancellationTokenSource _cancel;
3230

3331
RequesterState _readyState;
3432
Int32 _timeout;
@@ -40,6 +38,7 @@ public sealed class XmlHttpRequest : XmlHttpRequestEventTarget
4038
HttpStatusCode _responseStatus;
4139
String _responseUrl;
4240
String _responseText;
41+
IDownload _download;
4342

4443
#endregion
4544

@@ -54,7 +53,6 @@ public XmlHttpRequest(IWindow window)
5453
_window = window;
5554
_async = true;
5655
_method = HttpMethod.Get;
57-
_cancel = new CancellationTokenSource();
5856
_headers = new Dictionary<String, String>();
5957
_url = null;
6058
_mime = null;
@@ -206,7 +204,7 @@ public void Abort()
206204
{
207205
if (_readyState == RequesterState.Loading)
208206
{
209-
_cancel.Cancel();
207+
_download.Cancel();
210208
Fire(AbortEvent);
211209
}
212210
}
@@ -226,8 +224,10 @@ public void Open(String method, String url, Boolean async = true, String usernam
226224
{
227225
ReadyState = RequesterState.Opened;
228226

229-
if (Enum.TryParse(method, true, out _method) == false)
227+
if (!Enum.TryParse(method, true, out _method))
228+
{
230229
_method = HttpMethod.Get;
230+
}
231231

232232
_url = Url.Create(url);
233233
_async = async;
@@ -243,35 +243,38 @@ public void Open(String method, String url, Boolean async = true, String usernam
243243
[DomName("send")]
244244
public void Send(Object body = null)
245245
{
246-
if (_readyState != RequesterState.Opened)
247-
return;
248-
249-
var requestBody = Serialize(body);
250-
var mimeType = default(String);
251-
var loader = GetLoader();
252-
253-
if (loader != null)
246+
if (_readyState == RequesterState.Opened)
254247
{
255-
var request = new DocumentRequest(_url)
248+
var requestBody = Serialize(body);
249+
var mimeType = default(String);
250+
var loader = GetLoader();
251+
252+
if (loader != null)
256253
{
257-
Body = requestBody,
258-
Method = _method,
259-
MimeType = mimeType,
260-
Referer = _window.Document.DocumentUri,
261-
};
254+
var request = new DocumentRequest(_url)
255+
{
256+
Body = requestBody,
257+
Method = _method,
258+
MimeType = mimeType,
259+
Referer = _window.Document.DocumentUri,
260+
};
262261

263-
foreach (var header in _headers)
264-
request.Headers[header.Key] = header.Value;
262+
foreach (var header in _headers)
263+
{
264+
request.Headers[header.Key] = header.Value;
265+
}
265266

266-
_headers.Clear();
267-
_cancel.CancelAfter(_timeout);
267+
_headers.Clear();
268268

269-
Fire(LoadStartEvent);
270-
ReadyState = RequesterState.HeadersReceived;
271-
var connection = Receive(loader, request, _cancel.Token);
269+
Fire(LoadStartEvent);
270+
ReadyState = RequesterState.HeadersReceived;
271+
var connection = Receive(loader, request);
272272

273-
if (!_async)
274-
connection.Wait();
273+
if (!_async)
274+
{
275+
connection.Wait();
276+
}
277+
}
275278
}
276279
}
277280

@@ -284,7 +287,9 @@ public void Send(Object body = null)
284287
public void SetRequestHeader(String name, String value)
285288
{
286289
if (_readyState == RequesterState.Opened)
290+
{
287291
_headers[name] = value;
292+
}
288293
}
289294

290295
/// <summary>
@@ -298,7 +303,9 @@ public String GetResponseHeader(String name)
298303
var value = default(String);
299304

300305
if (HasResponseHeaders && _headers.TryGetValue(name, out value))
306+
{
301307
return value;
308+
}
302309

303310
return String.Empty;
304311
}
@@ -317,7 +324,10 @@ public String GetAllResponseHeaders()
317324
var index = 0;
318325

319326
foreach (var header in headers)
320-
lines[index++] = String.Concat(header.Key, ": ", header.Value);
327+
{
328+
lines[index] = String.Concat(header.Key, ": ", header.Value);
329+
index++;
330+
}
321331

322332
return String.Join(Environment.NewLine, lines);
323333
}
@@ -333,42 +343,54 @@ public String GetAllResponseHeaders()
333343
public void OverrideMimeType(String mime)
334344
{
335345
if (_readyState == RequesterState.Opened)
346+
{
336347
_mime = mime;
348+
}
337349
}
338350

339351
#endregion
340352

341353
#region Helpers
342354

343-
async Task Receive(IDocumentLoader loader, DocumentRequest request, CancellationToken cancel)
355+
async Task Receive(IDocumentLoader loader, DocumentRequest request)
344356
{
357+
var eventName = ErrorEvent;
358+
345359
try
346360
{
347-
using (var response = await loader.LoadAsync(request, cancel).ConfigureAwait(false))
361+
_download = loader.DownloadAsync(request);
362+
363+
using (var response = await _download.Task.ConfigureAwait(false))
348364
{
349365
if (response != null)
350366
{
367+
eventName = LoadEvent;
368+
351369
foreach (var header in response.Headers)
370+
{
352371
_headers[header.Key] = header.Value;
372+
}
353373

354374
_responseUrl = response.Address.Href;
355375
_responseStatus = response.StatusCode;
356376
ReadyState = RequesterState.Loading;
357377

358378
using (var ms = new MemoryStream())
359379
{
360-
await response.Content.CopyToAsync(ms, BufferSize, cancel).ConfigureAwait(false);
380+
await response.Content.CopyToAsync(ms, BufferSize).ConfigureAwait(false);
361381
ms.Seek(0, SeekOrigin.Begin);
362382

363383
using (var reader = new StreamReader(ms))
384+
{
364385
_responseText = reader.ReadToEnd();
386+
}
365387
}
366388

367389
Fire(LoadEndEvent);
368390
}
369391

370392
ReadyState = RequesterState.Done;
371-
Fire(response == null ? ErrorEvent : LoadEvent);
393+
Fire(eventName);
372394
}
373395
}
374396
catch (TaskCanceledException)
@@ -380,16 +402,23 @@ async Task Receive(IDocumentLoader loader, DocumentRequest request, Cancellation
380402

381403
IDocumentLoader GetLoader()
382404
{
383-
if (_window == null)
384-
return null;
405+
if (_window != null)
406+
{
407+
var document = _window.Document;
408+
409+
if (document != null)
410+
{
411+
var context = document.Context;
385412

386-
var document = _window.Document;
413+
if (context != null)
414+
{
415+
return context.Loader;
416+
}
417+
}
418+
}
387419

388-
if (document == null)
389-
return null;
420+
return null;
390421

391-
var context = document.Context;
392-
return context != null ? context.Loader : null;
393422
}
394423

395424
static Stream Serialize(Object body)

0 commit comments

Comments
 (0)