helloadhavan/github_issues huggingface dataset:
Repository: electron/electron
Pull request: fix: `webContents.print()` crash on Linux

#### Description of Change

Closes https://github.com/electron/electron/issues/45931.

Fixes a crash seen on Linux starting in Electron 35 when calling `webContents.print()`. This was happening due to the `EnableOopPrintDrivers` feature being enabled on Linux, which was causing crashes when trying to show dialogs.

#### Checklist
<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

- [x] PR description included and stakeholders cc'd
- [x] `npm test` passes
- [x] [PR release notes](https://github.com/electron/clerk/blob/main/README.md) describe the change in a way relevant to app developers, and are [capitalized, punctuated, and past tense](https://github.com/electron/clerk/blob/main/README.md#examples).

#### Release Notes

Notes: Fixed a crash seen on Linux when calling `webContents.print()`.

Changed files:
filename: shell/browser/feature_list.cc
patch: @@ -27,6 +27,10 @@
 #include "pdf/pdf_features.h"
 #endif
 
+#if BUILDFLAG(IS_LINUX)
+#include "printing/printing_features.h"
+#endif
+
 namespace electron {
 
 void InitializeFeatureList() {
@@ -56,6 +60,14 @@ void InitializeFeatureList() {
       std::string(",") + features::kMacWebContentsOcclusion.name;
 #endif
 
+#if BUILDFLAG(IS_LINUX)
+  disable_features +=
+      // EnableOopPrintDrivers is still a bit half-baked on Linux and
+      // causes crashes when trying to show dialogs.
+      // TODO(codebytere): figure out how to re-enable this with our patches.
+      std::string(",") + printing::features::kEnableOopPrintDrivers.name;
+#endif
+
 #if BUILDFLAG(ENABLE_PDF_VIEWER)
   // Enable window.showSaveFilePicker api for saving pdf files.
   // Refs https://issues.chromium.org/issues/373852607
Repository: nodejs/node
Pull request: src: update std::vector<v8::Local<T>> to use v8::LocalVector<T>

Continuing the clean up of std::vector<v8::Local<T>> we did before. Discovered in https://github.com/nodejs/node/pull/58497
From pull request: https://github.com/nodejs/node/pull/57578:

> According to V8's public API documentation, local handles (i.e., objects of type v8::Local) "should never be allocated on the heap". This replaces the usage of heap-allocated data structures containing instances of v8::Local, specifically the std::vector<v8::Localv8::String> with recently introduced v8::LocalVector.



Changed files:
filename: src/quic/streams.h
patch: @@ -332,7 +332,7 @@ class Stream final : public AsyncWrap,
   // The headers_ field holds a block of headers that have been received and
   // are being buffered for delivery to the JavaScript side.
   // TODO(@jasnell): Use v8::Global instead of v8::Local here.
-  std::vector<v8::Local<v8::Value>> headers_;
+  v8::LocalVector<v8::Value> headers_;
 
   // The headers_kind_ field indicates the kind of headers that are being
   // buffered.

filename: test/addons/make-callback/binding.cc
patch: @@ -11,7 +11,7 @@ void MakeCallback(const v8::FunctionCallbackInfo<v8::Value>& args) {
   assert(args[1]->IsFunction() || args[1]->IsString());
   auto isolate = args.GetIsolate();
   auto recv = args[0].As<v8::Object>();
-  std::vector<v8::Local<v8::Value>> argv;
+  v8::LocalVector<v8::Value> argv(isolate);
   for (size_t n = 2; n < static_cast<size_t>(args.Length()); n += 1) {
     argv.push_back(args[n]);
   }

filename: test/addons/openssl-providers/binding.cc
patch: @@ -13,6 +13,7 @@ using v8::Context;
 using v8::FunctionCallbackInfo;
 using v8::Isolate;
 using v8::Local;
+using v8::LocalVector;
 using v8::Object;
 using v8::String;
 using v8::Value;
@@ -26,7 +27,7 @@ int collectProviders(OSSL_PROVIDER* provider, void* cbdata) {
 
 inline void GetProviders(const FunctionCallbackInfo<Value>& args) {
   Isolate* isolate = args.GetIsolate();
-  std::vector<Local<Value>> arr = {};
+  LocalVector<Value> arr(isolate, 0);
 #if OPENSSL_VERSION_MAJOR >= 3
   std::vector<OSSL_PROVIDER*> providers;
   OSSL_PROVIDER_do_all(nullptr, &collectProviders, &providers);
Repository: vercel/next.js
Pull request: Turbopack: update mimalloc

### What?

This fixes a bug where memory is not released back to the OS.

Closes PACK-5126

Changed files:
filename: Cargo.lock
patch: @@ -3655,9 +3655,9 @@ dependencies = [
 
 [[package]]
 name = "libmimalloc-sys"
-version = "0.1.38"
+version = "0.1.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e7bb23d733dfcc8af652a78b7bf232f0e967710d044732185e561e47c0336b6"
+checksum = "bf88cd67e9de251c1781dbe2f641a1a3ad66eaae831b8a2c38fbdc5ddae16d4d"
 dependencies = [
  "cc",
  "libc",
@@ -4034,9 +4034,9 @@ dependencies = [
 
 [[package]]
 name = "mimalloc"
-version = "0.1.42"
+version = "0.1.47"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9186d86b79b52f4a77af65604b51225e8db1d6ee7e3f41aec1e40829c71a176"
+checksum = "b1791cbe101e95af5764f06f20f6760521f7158f69dbf9d6baf941ee1bf6bc40"
 dependencies = [
  "libmimalloc-sys",
 ]

filename: turbopack/crates/turbo-tasks-malloc/Cargo.toml
patch: @@ -10,10 +10,10 @@ autobenches = false
 bench = false
 
 [target.'cfg(not(any(target_os = "linux", target_family = "wasm", target_env = "musl")))'.dependencies]
-mimalloc = { version = "0.1.42", features = [], optional = true }
+mimalloc = { version = "0.1.47", features = [], optional = true }
 
 [target.'cfg(all(target_os = "linux", not(any(target_family = "wasm", target_env = "musl"))))'.dependencies]
-mimalloc = { version = "0.1.42", features = [
+mimalloc = { version = "0.1.47", features = [
   "local_dynamic_tls",
 ], optional = true }
Repository: denoland/deno
Pull request: fix(ext/node): Fix missing core_import_map node internal file path for http2

The path for `/ext/node/polyfills/internal/http2/util.ts` was missing from core_import_map.json. Therefore, VSCode IntelliSense had an error in `ext/node/polyfills/http2.ts`.

| Before(has an error) | After(dependency resolved) |
| --- | --- |
| <img width="1020" alt="スクリーンショット 2025-06-07 18 26 18" src="https://github.com/user-attachments/assets/932bf4a0-6df7-4b98-9e0a-8019ca354a79" /> | <img width="889" alt="スクリーンショット 2025-06-07 18 28 17" src="https://github.com/user-attachments/assets/b89ed722-fe0a-4b20-af94-b0373a1e831b" /> | 

related: #27689

<!--
Before submitting a PR, please read https://docs.deno.com/runtime/manual/references/contributing

1. Give the PR a descriptive title.

  Examples of good title:
    - fix(std/http): Fix race condition in server
    - docs(console): Update docstrings
    - feat(doc): Handle nested reexports

  Examples of bad title:
    - fix #7123
    - update docs
    - fix bugs

2. Ensure there is a related issue and it is referenced in the PR text.
3. Ensure there are tests that cover the changes.
4. Ensure `cargo test` passes.
5. Ensure `./tools/format.js` passes without changing files.
6. Ensure `./tools/lint.js` passes.
7. Open as a draft PR if your work is still in progress. The CI won't run
   all steps, but you can add '[ci]' to a commit message to force it to.
8. If you would like to run the benchmarks on the CI, add the 'ci-bench' label.
-->


Changed files:
filename: tools/core_import_map.json
patch: @@ -142,6 +142,7 @@
     "ext:deno_node/internal/fs/utils.mjs": "../ext/node/polyfills/internal/fs/utils.mjs",
     "ext:deno_node/internal/hide_stack_frames.ts": "../ext/node/polyfills/internal/hide_stack_frames.ts",
     "ext:deno_node/internal/http.ts": "../ext/node/polyfills/internal/http.ts",
+    "ext:deno_node/internal/http2/util.ts": "../ext/node/polyfills/internal/http2/util.ts",
     "ext:deno_node/internal/net.ts": "../ext/node/polyfills/internal/net.ts",
     "ext:deno_node/internal/normalize_encoding.mjs": "../ext/node/polyfills/internal/normalize_encoding.mjs",
     "ext:deno_node/internal/options.ts": "../ext/node/polyfills/internal/options.ts",
Repository: denoland/deno
Pull request: fix(ext/node): validate prime bigint candidate

Towards enabling `parallel/test-crypto-primes.js`

Changed files:
filename: ext/node/polyfills/internal/crypto/random.ts
patch: @@ -96,6 +96,9 @@ export function checkPrime(
 
   let op = op_node_check_prime_bytes_async;
   if (typeof candidate === "bigint") {
+    if (candidate < 0) {
+      throw new ERR_OUT_OF_RANGE("candidate", ">= 0", candidate);
+    }
     op = op_node_check_prime_async;
   } else if (!isAnyArrayBuffer(candidate) && !isArrayBufferView(candidate)) {
     throw new ERR_INVALID_ARG_TYPE(
Repository: ggml-org/llama.cpp
Pull request: mtmd: initialise C var

This change fixes a warning about uninitialized value of C.

Changed files:
filename: tools/mtmd/clip.cpp
patch: @@ -3067,7 +3067,7 @@ struct image_manipulation {
         dst.buf.resize(3 * target_width * target_height);
 
         float Cc;
-        float C[5];
+        float C[5] = {};
         float d0, d2, d3, a0, a1, a2, a3;
         int i, j, k, jj;
         int x, y;
Repository: electron/electron
Pull request: fix: APNS token ids are lowercase ASCII

Backport of #46101

See that PR for details.


Notes: Fixed an issue with token formatting for tokens received after calling `pushNotifications.registerForAPNSNotifications()`.


Changed files:
filename: docs/api/push-notifications.md
patch: @@ -46,4 +46,7 @@ See: https://developer.apple.com/documentation/appkit/nsapplication/1428476-regi
 ### `pushNotifications.unregisterForAPNSNotifications()` _macOS_
 
 Unregisters the app from notifications received from APNS.
+
+Apps unregistered through this method can always reregister.
+
 See: https://developer.apple.com/documentation/appkit/nsapplication/1428747-unregisterforremotenotifications?language=objc

filename: shell/browser/api/electron_api_push_notifications_mac.mm
patch: @@ -19,28 +19,23 @@
   gin_helper::Promise<std::string> promise(isolate);
   v8::Local<v8::Promise> handle = promise.GetHandle();
 
-  [[AtomApplication sharedApplication]
-      registerForRemoteNotificationTypes:NSRemoteNotificationTypeBadge |
-                                         NSRemoteNotificationTypeAlert |
-                                         NSRemoteNotificationTypeSound];
+  [[AtomApplication sharedApplication] registerForRemoteNotifications];
 
   PushNotifications::apns_promise_set_.emplace_back(std::move(promise));
   return handle;
 }
 
 void PushNotifications::ResolveAPNSPromiseSetWithToken(
     const std::string& token_string) {
-  std::vector<gin_helper::Promise<std::string>> promises =
-      std::move(PushNotifications::apns_promise_set_);
+  auto promises = std::move(PushNotifications::apns_promise_set_);
   for (auto& promise : promises) {
     promise.Resolve(token_string);
   }
 }
 
 void PushNotifications::RejectAPNSPromiseSetWithError(
     const std::string& error_message) {
-  std::vector<gin_helper::Promise<std::string>> promises =
-      std::move(PushNotifications::apns_promise_set_);
+  auto promises = std::move(PushNotifications::apns_promise_set_);
   for (auto& promise : promises) {
     promise.RejectWithErrorMessage(error_message);
   }

filename: shell/browser/mac/electron_application_delegate.mm
patch: @@ -180,8 +180,10 @@ - (void)application:(NSApplication*)application
     didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken {
   // Resolve outstanding APNS promises created during registration attempts
   if (auto* push_notifications = electron::api::PushNotifications::Get()) {
+    std::string encoded =
+        base::HexEncode(electron::util::as_byte_span(deviceToken));
     push_notifications->ResolveAPNSPromiseSetWithToken(
-        base::HexEncode(electron::util::as_byte_span(deviceToken)));
+        base::ToLowerASCII(encoded));
   }
 }
Repository: denoland/deno
Pull request: fix(ext/node): disable `parallel/test-crypto-secure-heap.js` test

Secure heap is an OpenSSL concept, not yet available in Deno.

Changed files:
filename: tests/node_compat/run_all_test_unmodified.ts
patch: @@ -72,6 +72,7 @@ const NODE_IGNORED_TEST_CASES = new Set([
   "parallel/test-benchmark-cli.js", // testing private benchmark utility
   "parallel/test-buffer-backing-arraybuffer.js", // Deno does not allow heap-allocated ArrayBuffer, and we can't change it (for now)
   "parallel/test-eventsource-disabled.js", // EventSource global is always available in Deno (Web API)
+  "parallel/test-crypto-secure-heap.js", // Secure heap is OpenSSL specific, not in Deno.
 ]);
 
 /** The group is the directory name of the test file.
Repository: vercel/next.js
Pull request: Turbopack: Update bundled webpki-roots

- It makes sense to update these certs periodically. The long-term solution would be to stop shipping certs once https://github.com/seanmonstar/reqwest/issues/2159 is fixed.
- ~`webpki-roots 0.26.11` is just a dumb re-export of `1.x`, so this avoids shipping the CA roots twice! https://github.com/rustls/webpki-roots/releases/tag/v%2F0.26.11  -- Should save a few hundred KBs~ **Edit:** This dependency was removed by the latest swc+wasmer update.

Closes PACK-5129

Changed files:
filename: Cargo.lock
patch: @@ -11114,9 +11114,9 @@ dependencies = [
 
 [[package]]
 name = "webpki-roots"
-version = "1.0.0"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2853738d1cc4f2da3a225c18ec6c3721abb31961096e9dbf5ab35fa88b19cfdb"
+checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2"
 dependencies = [
  "rustls-pki-types",
 ]
Repository: nodejs/node
Pull request: doc: add missing options.info for BrotliOptions

Source code of `function Brotli()` calls ctor of parent `ZlibBase` via
`ReflectApply()`

By inspecting `opts` in `ZlibBase` ctor, we can see `opts?.info` is
further used to determine the return shapes of `*Sync()` methods in
children class. This information will need to be revealed in nodejs doc.

This PR is separated from the one for `ZstdOptions`, since these two
changes potentially need to be backported to different minimum versions.

<!--
Before submitting a pull request, please read:

- the CONTRIBUTING guide at https://github.com/nodejs/node/blob/HEAD/CONTRIBUTING.md
- the commit message formatting guidelines at
  https://github.com/nodejs/node/blob/HEAD/doc/contributing/pull-requests.md#commit-message-guidelines

For code changes:
1. Include tests for any bug fixes or new features.
2. Update documentation if relevant.
3. Ensure that `make -j4 test` (UNIX), or `vcbuild test` (Windows) passes.

If you believe this PR should be highlighted in the Node.js CHANGELOG
please add the `notable-change` label.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.
-->


Changed files:
filename: doc/api/zlib.md
patch: @@ -833,6 +833,7 @@ Each Brotli-based class takes an `options` object. All options are optional.
 * `params` {Object} Key-value object containing indexed [Brotli parameters][].
 * `maxOutputLength` {integer} Limits output size when using
   [convenience methods][]. **Default:** [`buffer.kMaxLength`][]
+* `info` {boolean} If `true`, returns an object with `buffer` and `engine`. **Default:** `false`
 
 For example:
Repository: nodejs/node
Pull request: doc: add missing options.info for ZstdOptions

Source code of `class Zstd` calls ctor of parent `ZlibBase` via
`super()`

By inspecting `opts` in `ZlibBase` ctor, we can see `opts?.info` is
further used to determine the return shapes of `*Sync()` methods in
children class. This information will need to be revealed in nodejs doc.

https://github.com/nodejs/node/blob/3ea97d5c251376388e1f09351dc60ec58d509ed2/lib/zlib.js#L267

This PR is separated from the one for `BrotliOptions`, since these two
changes potentially need to be backported to different minimum versions.

<!--
Before submitting a pull request, please read:

- the CONTRIBUTING guide at https://github.com/nodejs/node/blob/HEAD/CONTRIBUTING.md
- the commit message formatting guidelines at
  https://github.com/nodejs/node/blob/HEAD/doc/contributing/pull-requests.md#commit-message-guidelines

For code changes:
1. Include tests for any bug fixes or new features.
2. Update documentation if relevant.
3. Ensure that `make -j4 test` (UNIX), or `vcbuild test` (Windows) passes.

If you believe this PR should be highlighted in the Node.js CHANGELOG
please add the `notable-change` label.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.
-->


Changed files:
filename: doc/api/zlib.md
patch: @@ -1069,6 +1069,7 @@ Each Zstd-based class takes an `options` object. All options are optional.
 * `params` {Object} Key-value object containing indexed [Zstd parameters][].
 * `maxOutputLength` {integer} Limits output size when using
   [convenience methods][]. **Default:** [`buffer.kMaxLength`][]
+* `info` {boolean} If `true`, returns an object with `buffer` and `engine`. **Default:** `false`
 
 For example:
Repository: facebook/react
Pull request: Convert ReactDOMSuspensePlaceholder to createRoot


Changed files:
filename: packages/react-dom/src/__tests__/ReactDOMSuspensePlaceholder-test.js
patch: @@ -11,6 +11,7 @@
 
 let React;
 let ReactDOM;
+let ReactDOMClient;
 let Suspense;
 let Scheduler;
 let act;
@@ -23,6 +24,7 @@ describe('ReactDOMSuspensePlaceholder', () => {
     jest.resetModules();
     React = require('react');
     ReactDOM = require('react-dom');
+    ReactDOMClient = require('react-dom/client');
     Scheduler = require('scheduler');
     act = require('internal-test-utils').act;
     Suspense = React.Suspense;
@@ -98,7 +100,7 @@ describe('ReactDOMSuspensePlaceholder', () => {
     return text;
   }
 
-  it('hides and unhides timed out DOM elements', async () => {
+  it('hides and unhides timed out DOM elements in legacy roots', async () => {
     const divs = [
       React.createRef(null),
       React.createRef(null),
@@ -144,18 +146,22 @@ describe('ReactDOMSuspensePlaceholder', () => {
         </Suspense>
       );
     }
-    ReactDOM.render(<App />, container);
+    const root = ReactDOMClient.createRoot(container);
+    await act(() => {
+      root.render(<App />);
+    });
+
     expect(container.textContent).toEqual('Loading...');
 
-    await act(async () => {
-      await resolveText('B');
+    await act(() => {
+      resolveText('B');
     });
 
     expect(container.textContent).toEqual('ABC');
   });
 
   it(
-    'outside concurrent mode, re-hides children if their display is updated ' +
+    'in legacy roots, re-hides children if their display is updated ' +
       'but the boundary is still showing the fallback',
     async () => {
       const {useState} = React;
@@ -207,7 +213,7 @@ describe('ReactDOMSuspensePlaceholder', () => {
   );
 
   // Regression test for https://github.com/facebook/react/issues/14188
-  it('can call findDOMNode() in a suspended component commit phase', async () => {
+  it('can call findDOMNode() in a suspended component commit phase in legacy roots', async () => {
     const log = [];
     const Lazy = React.lazy(
       () =>
@@ -267,7 +273,7 @@ describe('ReactDOMSuspensePlaceholder', () => {
   });
 
   // Regression test for https://github.com/facebook/react/issues/14188
-  it('can call findDOMNode() in a suspended component commit phase (#2)', () => {
+  it('can call legacy findDOMNode() in a suspended component commit phase (#2)', async () => {
     let suspendOnce = Promise.resolve();
     function Suspend() {
       if (suspendOnce) {
@@ -304,9 +310,16 @@ describe('ReactDOMSuspensePlaceholder', () => {
       );
     }
 
-    ReactDOM.render(<App />, container);
+    const root = ReactDOMClient.createRoot(container);
+    await act(() => {
+      root.render(<App />);
+    });
+
     expect(log).toEqual(['cDM']);
-    ReactDOM.render(<App />, container);
+    await act(() => {
+      root.render(<App />);
+    });
+
     expect(log).toEqual(['cDM', 'cDU']);
   });
 });
Repository: vercel/next.js
Pull request: Allow specifying CLI version for e2e deploy

This just allows testing specific CLI versions as well, leaving our default of latest the same

Changed files:
filename: .github/workflows/test_e2e_deploy_release.yml
patch: @@ -11,6 +11,10 @@ on:
         description: canary or custom tarball URL
         default: canary
         type: string
+      vercelCliVersion:
+        description: Version of Vercel CLI to use
+        default: 'vercel@latest'
+        type: string
 
 env:
   VERCEL_TEST_TEAM: vtest314-next-e2e-tests
@@ -61,7 +65,7 @@ jobs:
       matrix:
         group: [1/6, 2/6, 3/6, 4/6, 5/6, 6/6]
     with:
-      afterBuild: npm i -g vercel@latest && NEXT_E2E_TEST_TIMEOUT=240000 NEXT_TEST_MODE=deploy NEXT_EXTERNAL_TESTS_FILTERS="test/deploy-tests-manifest.json" NEXT_TEST_VERSION="${{ github.event.inputs.nextVersion || 'canary' }}" node run-tests.js --timings -g ${{ matrix.group }} -c 2 --type e2e
+      afterBuild: npm i -g vercel@latest && NEXT_E2E_TEST_TIMEOUT=240000 NEXT_TEST_MODE=deploy NEXT_EXTERNAL_TESTS_FILTERS="test/deploy-tests-manifest.json" NEXT_TEST_VERSION="${{ github.event.inputs.nextVersion || 'canary' }}" VERCEL_CLI_VERSION="${{ github.event.inputs.vercelCliVersion || 'vercel@latest' }}" node run-tests.js --timings -g ${{ matrix.group }} -c 2 --type e2e
       skipNativeBuild: 'yes'
       skipNativeInstall: 'no'
       stepName: 'test-deploy-${{ matrix.group }}'