Releases: hardkoded/puppeteer-sharp
v15.1.0
What's new
- Roll chrome to 123.0.6312.58 by @kblok in #2511
- Introduce RemoveExposedFunctionAsync and RemoveScriptToEvaluateOnNewDocumentAsync by @kblok in #2510
What's Changed
- Support timeouts per CDP command by @kblok in #2500
- Disable GFX sanity window for Firefox by @kblok in #2502
Full Changelog: v15.0.0...v15.1.0
v15.0.0
What's epic!
Puppeteer Sharp is now using the new headless mode by default!
If you need to use the old headless mode, you can pass HeadlessMode = HeadlessMode.Shell
into the LaunchOptions
.
As part of this change, we will also download an extra Chrome browser, chrome-headless-shell by default, and use it for the old headless mode.
Breaking changes
- Rename CreateIncognitoBrowserContextAsync to CreateBrowserContextAsync by @kblok in #2479
- Deprecate IPage.Target and add IPage.CreateCDPSessionAsync by @kblok in #2480
- Deprecate is incognito by @kblok in #2465
What's new
- Roll to Chrome 122.0.6261.69 (r1250580) by @kblok in #2471
- Add touchstart, touchmove and touchend methods by @kblok in #2468
- Support closing workers by @kblok in #2484
- Option for raw v8 script coverage by @kblok in #2487
- Allow converting other targets to pages by @kblok in #2490
What's Changed
- Use puppeteer's test expectations by @kblok in #2443
- Github ops tools by @kblok in #2456
- Implement box model, content frame, and nested frame bounding box by @kblok in #2451
- Supress viewport errors for pages that do not support changing it by @kblok in #2474
- Touchscreen fixes by @kblok in #2475
- Remove emulation from screenshots by @kblok in #2476
- Delete old help file by @kblok in #2478
- FrameElement should work for framesets by @kblok in #2481
- Fix reusable Chrome example by @kblok in #2483
- Add outline to PDF generation by @kblok in #2485
- Synchronize frame tree with the events processing by @kblok in #2486
- Upgrade imageSharp by @kblok in #2488
- Update sponsors by @github-actions in #2491
- Fix console logs events by @kblok in #2497
Full Changelog: v14.1.0...v15.0.0
v14.1.0
Important fix
What's Changed
- Dotnet format the world by @kblok in #2414
- Emit events from the frame by @kblok in #2416
- Support tab targets by @kblok in #2419
- Update sponsors by @github-actions in #2439
- Multisession network manager by @kblok in #2437
- Move more things to emulation manager by @kblok in #2442
- Apply viewport emulation to prerender targets by @kblok in #2444
- Unify tab target handling in page by @kblok in #2446
Full Changelog: v14.0.0...v14.1.0
v14.0.0
Breaking changes
- Hopefully, this is not a big deal. But
IElementHandle.ScreenshotAsync(... ScreenshotOptions)
was renamed toIElementHandle.ScreenshotAsync(... ElementScreenshotOptions)
in #2376
What's New
- Update chrome to 121.0.6167.85 by @kblok in #2411
- Introduce Wait for device prompt by @kblok in #2392
You can now wait for a device prompt!
var promptTask = Page.WaitForDevicePromptAsync();
await Task.WhenAll(
promptTask,
Page.ClickAsync("#connect-bluetooth"));
var devicePrompt = await promptTask;
await devicePrompt.SelectAsync(
await devicePrompt.WaitForDeviceAsync(device => device.Name.Contains("My Device")).ConfigureAwait(false)
);
- Support fetching request POST data by @kblok in #2402
- Cooperative request intercepts by @kblok in #2403
Now you can use AddRequestInterceptor
instead of the Request
page and give the ContinueAsync
, AbortAsync
and RespondAsync
different priorities.
Page.AddRequestInterceptor(request =>
{
if (request.Url.EndsWith(".css"))
{
var headers = request.Headers;
headers["xaction"] = "continue";
return request.ContinueAsync(new Payload() { Headers = headers, }, 4);
}
return request.ContinueAsync(new Payload(), 0);
});
Page.AddRequestInterceptor(request =>
{
if (request.Url.EndsWith(".css"))
{
Dictionary<string, object> headers = [];
foreach (var kvp in request.Headers)
{
headers.Add(kvp.Key, kvp.Value);
}
headers["xaction"] = "respond";
return request.RespondAsync(new ResponseData() { Headers = headers, }, 2);
}
return request.ContinueAsync(new Payload(), 0);
});
AddRequestInterceptor
will ensure that these new async listeners are executed one after the other.
Full Changelog: v13.0.2...v14.0.0
v13.0.2
v13.0.1
v13.0.0
Breaking changes
We have a few more breaking changes in our effort to catch puppeteer.
FileChooser.Cancel
was renamed toCancelAsync
, and it's not Async by @kblok in #2336- New options on
CreateIncognitoBrowserContextAsync
to pass proxy settings. by @kblok in #2346 Worker
was renamed toWebWorker
by @kblok in #2356IExecutionContext.QueryObjectsAsync
was removed by @kblok in #2356IFrame.GetExecutionContextAsync
was removed by @kblok in #2356IJSHandle.ExecutionContext
was removed by @kblok in #2356
What's New
- Update Chrome to 119.0.6045.105 by @kblok in #2354
- Introduce screenshot optimize for speed option by @kblok in #2330
- Expose SessionAttached and SessionDetached events by @kblok in #2334
- Add tagged (accessible) PDFs option by @kblok in #2347
- Add
IsVisibleAsync
andIsHiddenAsync
by @kblok in #2349
What's Changed
- Implement BrowserContext.IsClosed by @kblok in #2329
- Remove puppeteer-sharp 3 blog post entry by @kblok in #2326
- Implement improved drag and drop API by @kblok in #2333
- Migrate to iterator based by @kblok in #2341
- Refactor global bindings by @kblok in #2343
- Remove obsolete binding code by @kblok in #2352
- Update badges by @hlaueriksson in #2355
- Update sponsors by @github-actions in #2360
- Remove System.Text.Encodings.Web by @jnyrup in #2361
Full Changelog: v12.0.0...v13.0.0
v12.0.0
New Browser Version
Chrome version is now 117.0.5938.62
Breaking change.
Small breaking change. But as it's a breaking change, we need to bump major. LaunchOption.TargetFilter
now expects a Target
instead a TargetInfo
.
What's Changed
- Introduce Target initialization status by @kblok in #2318
- BREAKING: Use target for filters by @kblok in #2319
- Separate target init from construction by @kblok in #2320
- Expose DevTools as a target by @kblok in #2321
- Remove Microsoft.AspNetCore.WebUtilities dependency by @kblok in #2324
- Add --disable-search-engine-choice-screen to default arguments by @kblok in #2325
- Roll to Chrome 117.0.5938.62 (r1181205) by @kblok in #2327
Full Changelog: v11.0.6...v12.0.0
v11.0.6
What's Changed
- Dropping .NET Framework test builds by @kblok in #2305
- Use the test project in the missing test tool by @kblok in #2308
- Add oopif tests by @kblok in #2310
- Change a querySelector test name by @kblok in #2309
- Add missing target manager tests by @kblok in #2312
- Implement merge group by @kblok in #2313
- Introduce an internal PageTarget subclass by @kblok in #2314
- Add WorkerTarget and OtherTarget by @kblok in #2315
- Move target updates to the target manager by @kblok in #2316
- Remove BrowserFetcher.DefaultChromiumRevision from code examples by @kblok in #2317
Full Changelog: v11.0.5...v11.0.6