Skip to content

Commit f81204b

Browse files
authored
v1.1 (#347)
1 parent 6674705 commit f81204b

File tree

6 files changed

+84
-65
lines changed

6 files changed

+84
-65
lines changed

README.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ Puppeteer Sharp is a .NET port of the official [Node.JS Puppeteer API](https://g
2525
## Take screenshots
2626

2727
```cs
28-
await Downloader.CreateDefault().DownloadAsync(chromiumRevision);
28+
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
2929
var browser = await Puppeteer.LaunchAsync(new LaunchOptions
3030
{
3131
Headless = true
@@ -134,6 +134,6 @@ using (var browser = await PuppeteerSharp.Puppeteer.ConnectAsync(options))
134134

135135
# Progress
136136

137-
* Tests on Google's Puppeteer: 405.
138-
* Tests on Puppeteer Sharp: 322.
139-
* Passing tests: 319.
137+
* Tests on Google's Puppeteer: 445.
138+
* Tests on Puppeteer Sharp: 363.
139+
* Passing tests: 362.

docfx_project/api/index.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Puppeteer Sharp is a .NET port of the official [Node.JS Puppeteer API](https://g
77
## Take screenshots
88

99
```cs
10-
await Downloader.CreateDefault().DownloadAsync(chromiumRevision);
10+
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
1111
var browser = await Puppeteer.LaunchAsync(new LaunchOptions
1212
{
1313
Headless = true

docfx_project/index.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Puppeteer Sharp is a .NET port of the official [Node.JS Puppeteer API](https://g
77
## Take screenshots
88

99
```cs
10-
await Downloader.CreateDefault().DownloadAsync(chromiumRevision);
10+
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
1111
var browser = await Puppeteer.LaunchAsync(new LaunchOptions
1212
{
1313
Headless = true
@@ -116,9 +116,9 @@ using (var browser = await PuppeteerSharp.Puppeteer.ConnectAsync(options))
116116

117117
# Progress
118118

119-
* Tests on Google's Puppeteer: 405.
120-
* Tests on Puppeteer Sharp: 322.
121-
* Passing tests: 319.
119+
* Tests on Google's Puppeteer: 445.
120+
* Tests on Puppeteer Sharp: 363.
121+
* Passing tests: 362.
122122

123123
# Useful links
124124

lib/PuppeteerSharp/FrameManager.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ internal FrameManager(CDPSession client, FrameTree frameTree, Page page)
3838

3939
#region Public Methods
4040

41-
public JSHandle CreateJsHandle(int contextId, dynamic remoteObject)
41+
internal JSHandle CreateJSHandle(int contextId, dynamic remoteObject)
4242
{
4343
_contextIdToContext.TryGetValue(contextId, out var storedContext);
4444

@@ -132,7 +132,7 @@ private void OnExecutionContextCreated(ContextPayload contextPayload)
132132
var context = new ExecutionContext(
133133
_client,
134134
contextPayload,
135-
remoteObject => CreateJsHandle(contextPayload.Id, remoteObject),
135+
remoteObject => CreateJSHandle(contextPayload.Id, remoteObject),
136136
frame);
137137

138138
_contextIdToContext[contextPayload.Id] = context;
@@ -245,4 +245,4 @@ private void HandleFrameTree(FrameTree frameTree)
245245

246246
#endregion
247247
}
248-
}
248+
}

lib/PuppeteerSharp/Page.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1683,7 +1683,7 @@ private async Task OnConsoleAPI(PageConsoleResponse message)
16831683
}
16841684

16851685
var values = message.Args
1686-
.Select(_ => (JSHandle)_frameManager.CreateJsHandle(message.ExecutionContextId, _))
1686+
.Select(_ => (JSHandle)_frameManager.CreateJSHandle(message.ExecutionContextId, _))
16871687
.ToList();
16881688
var handles = values
16891689
.ConvertAll(handle => handle.RemoteObject["objectId"] != null

lib/PuppeteerSharp/PuppeteerSharp.csproj

+71-52
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<PropertyGroup>
33
<TargetFramework>netstandard2.0</TargetFramework>
44
<PackOnBuild>true</PackOnBuild>
5-
<PackageVersion>1.0.2</PackageVersion>
5+
<PackageVersion>1.1.0</PackageVersion>
66
<Authors>Darío Kondratiuk</Authors>
77
<Owners>Darío Kondratiuk</Owners>
88
<PackageProjectUrl>https://github.com/kblok/puppeteer-sharp</PackageProjectUrl>
@@ -12,58 +12,77 @@
1212
<Description>Headless Chrome .NET API</Description>
1313
<PackageId>PuppeteerSharp</PackageId>
1414
<PackageReleaseNotes>
15-
1.0.2
16-
==============
17-
* Fix Dispose deadlocks on ASP.NET MVC
18-
1.0.1
19-
==============
20-
* Fix Chromium downloader on 32bits apps runnning on a x64 platform
21-
1.0.0
22-
==============
23-
* New Features
24-
* Request.RespondAsync support.
25-
* CSS and JS Coverage.
26-
* Request Interception.
27-
28-
* New APIs
29-
* Request.RespondAsync
30-
* Page.Coverage.StartJSCoverageAsync
31-
* Page.Coverage.StopJSCoverageAsync
32-
* Page.Coverage.StartCSSCoverageAsync
33-
* Page.Coverage.StopCSSCoverageAsync
34-
* Page.ScreenshotDataAsync
35-
* Page.PdfDataAsync
36-
* Page.SetRequestInterceptionAsync
37-
* Page.GoBackAsync
38-
* Page.GoForwardAsync
39-
* Page.QueryObjectsAsync
40-
* ElementHandle.ScreenshotDataAsync
41-
* ElementHandle.PdfDataAsync
42-
* Browser.WebSocketEndpoint
43-
* Browser.Process
44-
45-
* Namespace Changes
46-
* PuppeteerSharp.ClickOptions PuppeteerSharp.Input.ClickOptions
47-
* PuppeteerSharp.Key => PuppeteerSharp.Input.Key
48-
* PuppeteerSharp.Keyboard => PuppeteerSharp.Input.Keyboard
49-
* PuppeteerSharp.KeyDefinition => PuppeteerSharp.Input.KeyDefinition
50-
* PuppeteerSharp.KeyDefinitions => PuppeteerSharp.Input.KeyDefinitions
51-
* PuppeteerSharp.Mouse => PuppeteerSharp.Input.Mouse
52-
* PuppeteerSharp.MouseButton => PuppeteerSharp.Input.MouseButton
53-
* PuppeteerSharp.MoveOptions => PuppeteerSharp.Input.MoveOptions
54-
* PuppeteerSharp.PressOption => PuppeteerSharp.Input.PresspPtions
55-
* PuppeteerSharp.Touchscreen => PuppeteerSharp.Input.TouchScreen
56-
* PuppeteerSharp.Clip => PuppeteerSharp.Media.Clip
57-
* PuppeteerSharp.MarginOptions => PuppeteerSharp.Media.MarginOptions
58-
* PuppeteerSharp.MediaType => PuppeteerSharp.Media.MediaType
59-
* PuppeteerSharp.PaperFormat => PuppeteerSharp.Media.PaperFormat
60-
* PuppeteerSharp.ScreenOrientation => PuppeteerSharp.Media.ScreenOrientation
61-
* PuppeteerSharp.ScreenOrientationType => PuppeteerSharp.Media.ScreenOrientationType
62-
* PuppeteerSharp.DeviceDescriptor => PuppeteerSharp.Mobile.DeviceDescriptor
63-
* PuppeteerSharp.DeviceDescriptors => PuppeteerSharp.Mobile.DeviceDescriptors
64-
* PuppeteerSharp.DeviceDescriptorName => PuppeteerSharp.Mobile.DeviceDescriptorName
15+
New Features
16+
* New Chromium version r536395
17+
* Service workers support
18+
* Cache Support
19+
* New WaitFor options
20+
* New BrowserFetcher utility
21+
* Dump IO implementation
22+
23+
New APIs
24+
25+
* Page.SetCacheEnabledAsync
26+
* Page.DOMContentLoaded
27+
* Page.WaitForXPathAsync
28+
* ResponseData.FromServiceWorker
29+
* ExecutionContext.Frame
30+
* Frame.EvaluateExpressionHandleAsync
31+
* Frame.EvaluateFunctionHandleAsync
32+
* Frame.WaitForSelectorAsync
33+
* Frame.WaitForXPathAsync
34+
* Frame.WaitForSelectorOrXPathAsync
35+
36+
Breaking Changes
37+
38+
Downloader changes
39+
40+
The Downloader class was renamed to BrowserFetcher. BrowserFetcher has the following API:
41+
42+
* DefaultRevision
43+
* DownloadsFolder
44+
* DownloadHost
45+
* Platform
46+
* DownloadProgressChanged
47+
* CanDownloadAsync(int revision)
48+
* LocalRevisions()
49+
* Remove(int revision)
50+
* RevisionInfo(int revision)
51+
* DownloadAsync(int revision)
52+
* GetExecutablePath(int revision)
53+
* GetExecutablePath(Platform platform, string folderPath)
54+
55+
If you were using Downloader like this:
56+
57+
await Downloader.CreateDefault().DownloadRevisionAsync(chromiumRevision);
58+
59+
It should be changed to :
60+
61+
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
62+
63+
64+
Puppeteer.LaunchAsync breaking change
65+
66+
In order to simplify the API, the revision argument was removed from the `LaunchAsync` method. So this piece of code:
67+
68+
Puppeteer.LaunchAsync(launcherOptions, Downloader.DefaultRevision);
69+
70+
71+
Should be changed to:
72+
73+
Puppeteer.LaunchAsync(launcherOptions);
74+
75+
76+
If you need to launch Puppeteer using another revision you should handle that using the `ExecutablePath` option:
77+
78+
var myRevisionInfo = await new BrowserFetcher().DownloadAsync(myRevision);
79+
var browser = Puppeteer.LaunchAsync(new LaunchOptions
80+
{
81+
Headless = true,
82+
ExecutablePath = myRevisionInfo.ExecutablePath
83+
});
6584
</PackageReleaseNotes>
66-
<ReleaseVersion>1.0.2</ReleaseVersion>
85+
<ReleaseVersion>1.1.0</ReleaseVersion>
6786
<SynchReleaseVersion>false</SynchReleaseVersion>
6887
</PropertyGroup>
6988
<PropertyGroup>

0 commit comments

Comments
 (0)