permission: support URL and Uint8Array as has()/drop() reference - #65492

Merged
nodejs-github-bot merged 1 commit into
nodejs:mainfrom
nhjbest22:permission-reference-types
Aug 31, 2026
Merged

permission: support URL and Uint8Array as has()/drop() reference#65492
nodejs-github-bot merged 1 commit into
nodejs:mainfrom
nhjbest22:permission-reference-types

Conversation

@nhjbest22

Copy link
Copy Markdown
Contributor

process.permission.has()/drop() only accepted a string or Buffer for
the reference argument. This adds support for a WHATWG URL, resolved
via fileURLToPath() for fs.* scopes since those are the only scopes
that actually use the reference value, and a plain Uint8Array.

Also switches permission.cc from Utf8Value to BufferValue when reading
a Buffer/TypedArray reference, since Utf8Value forces a UTF-8 string
conversion that can silently corrupt a path that isn't valid UTF-8.

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/security-wg

@nodejs-github-botnodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. needs-ci PRs that need a full CI run. process Issues and PRs related to the process subsystem. labels Aug 22, 2026
@codecov

codecovBot commented Aug 23, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 90.69767% with 4 lines in your changes missing coverage. Please review.
βœ… Project coverage is 90.14%. Comparing base (cf30b2e) to head (42241f8).
⚠️ Report is 241 commits behind head on main.

Files with missing linesPatch %Lines
src/permission/permission.cc72.72%0 Missing and 3 partials ⚠️
lib/internal/process/permission.js96.87%1 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #65492 +/- ##
==========================================
+ Coverage 90.11% 90.14% +0.03% 
==========================================
Files 752 751 -1 Lines 251861 252647 +786 Branches 47365 47549 +184 ==========================================
+ Hits 226955 227745 +790 + Misses 16238 16192 -46 - Partials 8668 8710 +42 
Files with missing linesCoverage Ξ”
lib/internal/process/permission.js92.39% <96.87%> (+10.68%)⬆️
src/permission/permission.cc75.98% <72.72%> (+0.76%)⬆️

... and 108 files with indirect coverage changes

πŸš€ New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • πŸ“¦ JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@nhjbest22
nhjbest22force-pushed the permission-reference-types branch from 6d518fc to 72717a5CompareAugust 23, 2026 12:59
normalizeReference() adds URL and Uint8Array support to has()/drop();
the existing string/Buffer behavior is unchanged. BufferValue replaces
Utf8Value so a Buffer/TypedArray reference is copied as raw bytes
instead of a lossy UTF-8 conversion.
Signed-off-by: seungmin Nam <nhjbest22@g.skku.edu>
@nhjbest22
nhjbest22force-pushed the permission-reference-types branch from 72717a5 to 42241f8CompareAugust 23, 2026 13:09
@RafaelGSSRafaelGSS added request-ci Add this label to start a Jenkins CI on a PR. author ready PRs with CI started, the required approvals, and no outstanding review comments. permission Issues and PRs related to the Permission Model. labels Aug 24, 2026
@github-actionsgithub-actionsBot added request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. and removed request-ci Add this label to start a Jenkins CI on a PR. labels Aug 24, 2026
@github-actions

This comment was marked as outdated.

@RafaelGSSRafaelGSS added request-ci Add this label to start a Jenkins CI on a PR. and removed request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. labels Aug 24, 2026
@github-actionsgithub-actionsBot added request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. and removed request-ci Add this label to start a Jenkins CI on a PR. labels Aug 24, 2026
@github-actions

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399MikeMcC399 removed the request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. label Aug 24, 2026
@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399MikeMcC399 removed the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Aug 25, 2026
@MikeMcC399

This comment was marked as resolved.

@MikeMcC399

This comment was marked as resolved.

@MikeMcC399MikeMcC399 added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 26, 2026
@MikeMcC399

This comment was marked as outdated.

@MikeMcC399

This comment was marked as outdated.

@MikeMcC399MikeMcC399 added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 27, 2026
@nhjbest22

Copy link
Copy Markdown
ContributorAuthor

@MikeMcC399

Thank you so much for constantly keeping an eye on my PR and explaining the CI status! I'm truly amazed by all the care and effort you've put into this.

Based on your explanation, it sounds like we might see a green CI soon! I'll sit tight and wait a bit longer.

@github-actionsgithub-actionsBot removed the request-ci Add this label to start a Jenkins CI on a PR. label Aug 27, 2026
@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399

Copy link
Copy Markdown
Contributor

@nhjbest22

Thank you so much for constantly keeping an eye on my PR and explaining the CI status! I'm truly amazed by all the care and effort you've put into this.

Based on your explanation, it sounds like we might see a green CI soon! I'll sit tight and wait a bit longer.

I didn't expect to be spending so much effort surrounding your PR, however it has got caught up in several generic issues, so that's why I'm continuing to follow it and get it resolved together with others on the team.

So far none of the issues seem to come from changes you've proposed in this PR, so I am hopeful to see a green CI soon! Thanks for your patience!

@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399MikeMcC399 added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 28, 2026
@MikeMcC399

This comment was marked as outdated.

@sxa

This comment was marked as resolved.

@MikeMcC399MikeMcC399 removed the request-ci Add this label to start a Jenkins CI on a PR. label Aug 28, 2026
@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399

This comment was marked as outdated.

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@MikeMcC399

This comment was marked as resolved.

@MikeMcC399

MikeMcC399 commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Jenkins is now green after many attempts πŸŽ‰. The issues it found had nothing to do with the contents of this PR and these are hidden now as resolved / outdated in the history.

Marking as author readyPRs with CI started, the required approvals, and no outstanding review comments. and handing back to the subject matter experts who approved the PR.

@MikeMcC399MikeMcC399 added the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Aug 28, 2026
@nhjbest22

Copy link
Copy Markdown
ContributorAuthor

@MikeMcC399

Thank you so much for all your hard work and dedication to getting the CI to pass. The effort you put into this means a lot to an early contributor like me.

I look forward to continuing to contribute and working together for the Node.js community.

Thanks again!

@RafaelGSSRafaelGSS added the commit-queue PRs queued for automated landing through the Commit Queue. label Aug 31, 2026
@RafaelGSS

Copy link
Copy Markdown
Member

Thanks for the support @MikeMcC399

@nodejs-github-bot
nodejs-github-bot merged commit c4336d9 into nodejs:mainAug 31, 2026
100 checks passed
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Landed in c4336d9

@nodejs-github-botnodejs-github-bot removed the commit-queue PRs queued for automated landing through the Commit Queue. label Aug 31, 2026
@MikeMcC399

Copy link
Copy Markdown
Contributor

@nhjbest22

I'm happy to see that your PR has successfully landed! If you continue contributing, I do hope you have a better experience next time. In any case, now that you are a recognized Contributor you will find that the GitHub Actions CI runs automatically, instead of requiring an individual approval for every change. The Jenkins CI does however always need a Collaborator to first review a PR and then start the Jenkins CI.

There were a lot of different problems that came to together during the same period, including GitHub's own issues. I have to thank also @sxa and others from the team for their assistance in the background!

@MikeMcC399

MikeMcC399 commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Timing has not been kind to this PR πŸ™ !

2ec0f9a which landed at 13:07 UTC has broken tests in the main branch.

The tests after merging this PR c4336d9 at 14:59 UTC that have failed.
There is however nothing to be done for this PR, so this is just FYI in case you are watching the https://github.com/nodejs/node/commits/main/ branch commits and CI results.

A PR #65683 is already queued to fix the tests.

aduh95 pushed a commit that referenced this pull request Sep 3, 2026
normalizeReference() adds URL and Uint8Array support to has()/drop();
the existing string/Buffer behavior is unchanged. BufferValue replaces
Utf8Value so a Buffer/TypedArray reference is copied as raw bytes
instead of a lossy UTF-8 conversion.
Signed-off-by: seungmin Nam <nhjbest22@g.skku.edu>
PR-URL: #65492
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author readyPRs with CI started, the required approvals, and no outstanding review comments.c++Issues and PRs that require attention from people who are familiar with C++.needs-ciPRs that need a full CI run.permissionIssues and PRs related to the Permission Model.processIssues and PRs related to the process subsystem.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@nhjbest22@nodejs-github-bot@MikeMcC399@sxa@RafaelGSS@jasnell
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

permission: support URL and Uint8Array as has()/drop() reference - #65492

Merged
nodejs-github-bot merged 1 commit into
nodejs:mainfrom
nhjbest22:permission-reference-types
Aug 31, 2026
Merged

permission: support URL and Uint8Array as has()/drop() reference#65492
nodejs-github-bot merged 1 commit into
nodejs:mainfrom
nhjbest22:permission-reference-types

Conversation

@nhjbest22

Copy link
Copy Markdown
Contributor

process.permission.has()/drop() only accepted a string or Buffer for
the reference argument. This adds support for a WHATWG URL, resolved
via fileURLToPath() for fs.* scopes since those are the only scopes
that actually use the reference value, and a plain Uint8Array.

Also switches permission.cc from Utf8Value to BufferValue when reading
a Buffer/TypedArray reference, since Utf8Value forces a UTF-8 string
conversion that can silently corrupt a path that isn't valid UTF-8.

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/security-wg

@nodejs-github-botnodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. needs-ci PRs that need a full CI run. process Issues and PRs related to the process subsystem. labels Aug 22, 2026
@codecov

codecovBot commented Aug 23, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 90.69767% with 4 lines in your changes missing coverage. Please review.
βœ… Project coverage is 90.14%. Comparing base (cf30b2e) to head (42241f8).
⚠️ Report is 241 commits behind head on main.

Files with missing linesPatch %Lines
src/permission/permission.cc72.72%0 Missing and 3 partials ⚠️
lib/internal/process/permission.js96.87%1 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #65492 +/- ##
==========================================
+ Coverage 90.11% 90.14% +0.03% 
==========================================
Files 752 751 -1 Lines 251861 252647 +786 Branches 47365 47549 +184 ==========================================
+ Hits 226955 227745 +790 + Misses 16238 16192 -46 - Partials 8668 8710 +42 
Files with missing linesCoverage Ξ”
lib/internal/process/permission.js92.39% <96.87%> (+10.68%)⬆️
src/permission/permission.cc75.98% <72.72%> (+0.76%)⬆️

... and 108 files with indirect coverage changes

πŸš€ New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • πŸ“¦ JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@nhjbest22
nhjbest22force-pushed the permission-reference-types branch from 6d518fc to 72717a5CompareAugust 23, 2026 12:59
normalizeReference() adds URL and Uint8Array support to has()/drop();
the existing string/Buffer behavior is unchanged. BufferValue replaces
Utf8Value so a Buffer/TypedArray reference is copied as raw bytes
instead of a lossy UTF-8 conversion.
Signed-off-by: seungmin Nam <nhjbest22@g.skku.edu>
@nhjbest22
nhjbest22force-pushed the permission-reference-types branch from 72717a5 to 42241f8CompareAugust 23, 2026 13:09
@RafaelGSSRafaelGSS added request-ci Add this label to start a Jenkins CI on a PR. author ready PRs with CI started, the required approvals, and no outstanding review comments. permission Issues and PRs related to the Permission Model. labels Aug 24, 2026
@github-actionsgithub-actionsBot added request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. and removed request-ci Add this label to start a Jenkins CI on a PR. labels Aug 24, 2026
@github-actions

This comment was marked as outdated.

@RafaelGSSRafaelGSS added request-ci Add this label to start a Jenkins CI on a PR. and removed request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. labels Aug 24, 2026
@github-actionsgithub-actionsBot added request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. and removed request-ci Add this label to start a Jenkins CI on a PR. labels Aug 24, 2026
@github-actions

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399MikeMcC399 removed the request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. label Aug 24, 2026
@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399MikeMcC399 removed the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Aug 25, 2026
@MikeMcC399

This comment was marked as resolved.

@MikeMcC399

This comment was marked as resolved.

@MikeMcC399MikeMcC399 added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 26, 2026
@MikeMcC399

This comment was marked as outdated.

@MikeMcC399

This comment was marked as outdated.

@MikeMcC399MikeMcC399 added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 27, 2026
@nhjbest22

Copy link
Copy Markdown
ContributorAuthor

@MikeMcC399

Thank you so much for constantly keeping an eye on my PR and explaining the CI status! I'm truly amazed by all the care and effort you've put into this.

Based on your explanation, it sounds like we might see a green CI soon! I'll sit tight and wait a bit longer.

@github-actionsgithub-actionsBot removed the request-ci Add this label to start a Jenkins CI on a PR. label Aug 27, 2026
@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399

Copy link
Copy Markdown
Contributor

@nhjbest22

Thank you so much for constantly keeping an eye on my PR and explaining the CI status! I'm truly amazed by all the care and effort you've put into this.

Based on your explanation, it sounds like we might see a green CI soon! I'll sit tight and wait a bit longer.

I didn't expect to be spending so much effort surrounding your PR, however it has got caught up in several generic issues, so that's why I'm continuing to follow it and get it resolved together with others on the team.

So far none of the issues seem to come from changes you've proposed in this PR, so I am hopeful to see a green CI soon! Thanks for your patience!

@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399MikeMcC399 added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 28, 2026
@MikeMcC399

This comment was marked as outdated.

@sxa

This comment was marked as resolved.

@MikeMcC399MikeMcC399 removed the request-ci Add this label to start a Jenkins CI on a PR. label Aug 28, 2026
@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399

This comment was marked as outdated.

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@MikeMcC399

This comment was marked as resolved.

@MikeMcC399

MikeMcC399 commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Jenkins is now green after many attempts πŸŽ‰. The issues it found had nothing to do with the contents of this PR and these are hidden now as resolved / outdated in the history.

Marking as author readyPRs with CI started, the required approvals, and no outstanding review comments. and handing back to the subject matter experts who approved the PR.

@MikeMcC399MikeMcC399 added the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Aug 28, 2026
@nhjbest22

Copy link
Copy Markdown
ContributorAuthor

@MikeMcC399

Thank you so much for all your hard work and dedication to getting the CI to pass. The effort you put into this means a lot to an early contributor like me.

I look forward to continuing to contribute and working together for the Node.js community.

Thanks again!

@RafaelGSSRafaelGSS added the commit-queue PRs queued for automated landing through the Commit Queue. label Aug 31, 2026
@RafaelGSS

Copy link
Copy Markdown
Member

Thanks for the support @MikeMcC399

@nodejs-github-bot
nodejs-github-bot merged commit c4336d9 into nodejs:mainAug 31, 2026
100 checks passed
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Landed in c4336d9

@nodejs-github-botnodejs-github-bot removed the commit-queue PRs queued for automated landing through the Commit Queue. label Aug 31, 2026
@MikeMcC399

Copy link
Copy Markdown
Contributor

@nhjbest22

I'm happy to see that your PR has successfully landed! If you continue contributing, I do hope you have a better experience next time. In any case, now that you are a recognized Contributor you will find that the GitHub Actions CI runs automatically, instead of requiring an individual approval for every change. The Jenkins CI does however always need a Collaborator to first review a PR and then start the Jenkins CI.

There were a lot of different problems that came to together during the same period, including GitHub's own issues. I have to thank also @sxa and others from the team for their assistance in the background!

@MikeMcC399

MikeMcC399 commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Timing has not been kind to this PR πŸ™ !

2ec0f9a which landed at 13:07 UTC has broken tests in the main branch.

The tests after merging this PR c4336d9 at 14:59 UTC that have failed.
There is however nothing to be done for this PR, so this is just FYI in case you are watching the https://github.com/nodejs/node/commits/main/ branch commits and CI results.

A PR #65683 is already queued to fix the tests.

aduh95 pushed a commit that referenced this pull request Sep 3, 2026
normalizeReference() adds URL and Uint8Array support to has()/drop();
the existing string/Buffer behavior is unchanged. BufferValue replaces
Utf8Value so a Buffer/TypedArray reference is copied as raw bytes
instead of a lossy UTF-8 conversion.
Signed-off-by: seungmin Nam <nhjbest22@g.skku.edu>
PR-URL: #65492
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author readyPRs with CI started, the required approvals, and no outstanding review comments.c++Issues and PRs that require attention from people who are familiar with C++.needs-ciPRs that need a full CI run.permissionIssues and PRs related to the Permission Model.processIssues and PRs related to the process subsystem.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@nhjbest22@nodejs-github-bot@MikeMcC399@sxa@RafaelGSS@jasnell
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

permission: support URL and Uint8Array as has()/drop() reference - #65492

Merged
nodejs-github-bot merged 1 commit into
nodejs:mainfrom
nhjbest22:permission-reference-types
Aug 31, 2026
Merged

permission: support URL and Uint8Array as has()/drop() reference#65492
nodejs-github-bot merged 1 commit into
nodejs:mainfrom
nhjbest22:permission-reference-types

Conversation

@nhjbest22

Copy link
Copy Markdown
Contributor

process.permission.has()/drop() only accepted a string or Buffer for
the reference argument. This adds support for a WHATWG URL, resolved
via fileURLToPath() for fs.* scopes since those are the only scopes
that actually use the reference value, and a plain Uint8Array.

Also switches permission.cc from Utf8Value to BufferValue when reading
a Buffer/TypedArray reference, since Utf8Value forces a UTF-8 string
conversion that can silently corrupt a path that isn't valid UTF-8.

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/security-wg

@nodejs-github-botnodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. needs-ci PRs that need a full CI run. process Issues and PRs related to the process subsystem. labels Aug 22, 2026
@codecov

codecovBot commented Aug 23, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 90.69767% with 4 lines in your changes missing coverage. Please review.
βœ… Project coverage is 90.14%. Comparing base (cf30b2e) to head (42241f8).
⚠️ Report is 241 commits behind head on main.

Files with missing linesPatch %Lines
src/permission/permission.cc72.72%0 Missing and 3 partials ⚠️
lib/internal/process/permission.js96.87%1 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #65492 +/- ##
==========================================
+ Coverage 90.11% 90.14% +0.03% 
==========================================
Files 752 751 -1 Lines 251861 252647 +786 Branches 47365 47549 +184 ==========================================
+ Hits 226955 227745 +790 + Misses 16238 16192 -46 - Partials 8668 8710 +42 
Files with missing linesCoverage Ξ”
lib/internal/process/permission.js92.39% <96.87%> (+10.68%)⬆️
src/permission/permission.cc75.98% <72.72%> (+0.76%)⬆️

... and 108 files with indirect coverage changes

πŸš€ New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • πŸ“¦ JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@nhjbest22
nhjbest22force-pushed the permission-reference-types branch from 6d518fc to 72717a5CompareAugust 23, 2026 12:59
normalizeReference() adds URL and Uint8Array support to has()/drop();
the existing string/Buffer behavior is unchanged. BufferValue replaces
Utf8Value so a Buffer/TypedArray reference is copied as raw bytes
instead of a lossy UTF-8 conversion.
Signed-off-by: seungmin Nam <nhjbest22@g.skku.edu>
@nhjbest22
nhjbest22force-pushed the permission-reference-types branch from 72717a5 to 42241f8CompareAugust 23, 2026 13:09
@RafaelGSSRafaelGSS added request-ci Add this label to start a Jenkins CI on a PR. author ready PRs with CI started, the required approvals, and no outstanding review comments. permission Issues and PRs related to the Permission Model. labels Aug 24, 2026
@github-actionsgithub-actionsBot added request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. and removed request-ci Add this label to start a Jenkins CI on a PR. labels Aug 24, 2026
@github-actions

This comment was marked as outdated.

@RafaelGSSRafaelGSS added request-ci Add this label to start a Jenkins CI on a PR. and removed request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. labels Aug 24, 2026
@github-actionsgithub-actionsBot added request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. and removed request-ci Add this label to start a Jenkins CI on a PR. labels Aug 24, 2026
@github-actions

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399MikeMcC399 removed the request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. label Aug 24, 2026
@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399MikeMcC399 removed the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Aug 25, 2026
@MikeMcC399

This comment was marked as resolved.

@MikeMcC399

This comment was marked as resolved.

@MikeMcC399MikeMcC399 added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 26, 2026
@MikeMcC399

This comment was marked as outdated.

@MikeMcC399

This comment was marked as outdated.

@MikeMcC399MikeMcC399 added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 27, 2026
@nhjbest22

Copy link
Copy Markdown
ContributorAuthor

@MikeMcC399

Thank you so much for constantly keeping an eye on my PR and explaining the CI status! I'm truly amazed by all the care and effort you've put into this.

Based on your explanation, it sounds like we might see a green CI soon! I'll sit tight and wait a bit longer.

@github-actionsgithub-actionsBot removed the request-ci Add this label to start a Jenkins CI on a PR. label Aug 27, 2026
@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399

Copy link
Copy Markdown
Contributor

@nhjbest22

Thank you so much for constantly keeping an eye on my PR and explaining the CI status! I'm truly amazed by all the care and effort you've put into this.

Based on your explanation, it sounds like we might see a green CI soon! I'll sit tight and wait a bit longer.

I didn't expect to be spending so much effort surrounding your PR, however it has got caught up in several generic issues, so that's why I'm continuing to follow it and get it resolved together with others on the team.

So far none of the issues seem to come from changes you've proposed in this PR, so I am hopeful to see a green CI soon! Thanks for your patience!

@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399MikeMcC399 added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 28, 2026
@MikeMcC399

This comment was marked as outdated.

@sxa

This comment was marked as resolved.

@MikeMcC399MikeMcC399 removed the request-ci Add this label to start a Jenkins CI on a PR. label Aug 28, 2026
@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399

This comment was marked as outdated.

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@MikeMcC399

This comment was marked as resolved.

@MikeMcC399

MikeMcC399 commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Jenkins is now green after many attempts πŸŽ‰. The issues it found had nothing to do with the contents of this PR and these are hidden now as resolved / outdated in the history.

Marking as author readyPRs with CI started, the required approvals, and no outstanding review comments. and handing back to the subject matter experts who approved the PR.

@MikeMcC399MikeMcC399 added the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Aug 28, 2026
@nhjbest22

Copy link
Copy Markdown
ContributorAuthor

@MikeMcC399

Thank you so much for all your hard work and dedication to getting the CI to pass. The effort you put into this means a lot to an early contributor like me.

I look forward to continuing to contribute and working together for the Node.js community.

Thanks again!

@RafaelGSSRafaelGSS added the commit-queue PRs queued for automated landing through the Commit Queue. label Aug 31, 2026
@RafaelGSS

Copy link
Copy Markdown
Member

Thanks for the support @MikeMcC399

@nodejs-github-bot
nodejs-github-bot merged commit c4336d9 into nodejs:mainAug 31, 2026
100 checks passed
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Landed in c4336d9

@nodejs-github-botnodejs-github-bot removed the commit-queue PRs queued for automated landing through the Commit Queue. label Aug 31, 2026
@MikeMcC399

Copy link
Copy Markdown
Contributor

@nhjbest22

I'm happy to see that your PR has successfully landed! If you continue contributing, I do hope you have a better experience next time. In any case, now that you are a recognized Contributor you will find that the GitHub Actions CI runs automatically, instead of requiring an individual approval for every change. The Jenkins CI does however always need a Collaborator to first review a PR and then start the Jenkins CI.

There were a lot of different problems that came to together during the same period, including GitHub's own issues. I have to thank also @sxa and others from the team for their assistance in the background!

@MikeMcC399

MikeMcC399 commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Timing has not been kind to this PR πŸ™ !

2ec0f9a which landed at 13:07 UTC has broken tests in the main branch.

The tests after merging this PR c4336d9 at 14:59 UTC that have failed.
There is however nothing to be done for this PR, so this is just FYI in case you are watching the https://github.com/nodejs/node/commits/main/ branch commits and CI results.

A PR #65683 is already queued to fix the tests.

aduh95 pushed a commit that referenced this pull request Sep 3, 2026
normalizeReference() adds URL and Uint8Array support to has()/drop();
the existing string/Buffer behavior is unchanged. BufferValue replaces
Utf8Value so a Buffer/TypedArray reference is copied as raw bytes
instead of a lossy UTF-8 conversion.
Signed-off-by: seungmin Nam <nhjbest22@g.skku.edu>
PR-URL: #65492
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author readyPRs with CI started, the required approvals, and no outstanding review comments.c++Issues and PRs that require attention from people who are familiar with C++.needs-ciPRs that need a full CI run.permissionIssues and PRs related to the Permission Model.processIssues and PRs related to the process subsystem.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@nhjbest22@nodejs-github-bot@MikeMcC399@sxa@RafaelGSS@jasnell
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

permission: support URL and Uint8Array as has()/drop() reference - #65492

Merged
nodejs-github-bot merged 1 commit into
nodejs:mainfrom
nhjbest22:permission-reference-types
Aug 31, 2026
Merged

permission: support URL and Uint8Array as has()/drop() reference#65492
nodejs-github-bot merged 1 commit into
nodejs:mainfrom
nhjbest22:permission-reference-types

Conversation

@nhjbest22

Copy link
Copy Markdown
Contributor

process.permission.has()/drop() only accepted a string or Buffer for
the reference argument. This adds support for a WHATWG URL, resolved
via fileURLToPath() for fs.* scopes since those are the only scopes
that actually use the reference value, and a plain Uint8Array.

Also switches permission.cc from Utf8Value to BufferValue when reading
a Buffer/TypedArray reference, since Utf8Value forces a UTF-8 string
conversion that can silently corrupt a path that isn't valid UTF-8.

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/security-wg

@nodejs-github-botnodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. needs-ci PRs that need a full CI run. process Issues and PRs related to the process subsystem. labels Aug 22, 2026
@codecov

codecovBot commented Aug 23, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 90.69767% with 4 lines in your changes missing coverage. Please review.
βœ… Project coverage is 90.14%. Comparing base (cf30b2e) to head (42241f8).
⚠️ Report is 241 commits behind head on main.

Files with missing linesPatch %Lines
src/permission/permission.cc72.72%0 Missing and 3 partials ⚠️
lib/internal/process/permission.js96.87%1 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #65492 +/- ##
==========================================
+ Coverage 90.11% 90.14% +0.03% 
==========================================
Files 752 751 -1 Lines 251861 252647 +786 Branches 47365 47549 +184 ==========================================
+ Hits 226955 227745 +790 + Misses 16238 16192 -46 - Partials 8668 8710 +42 
Files with missing linesCoverage Ξ”
lib/internal/process/permission.js92.39% <96.87%> (+10.68%)⬆️
src/permission/permission.cc75.98% <72.72%> (+0.76%)⬆️

... and 108 files with indirect coverage changes

πŸš€ New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • πŸ“¦ JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@nhjbest22
nhjbest22force-pushed the permission-reference-types branch from 6d518fc to 72717a5CompareAugust 23, 2026 12:59
normalizeReference() adds URL and Uint8Array support to has()/drop();
the existing string/Buffer behavior is unchanged. BufferValue replaces
Utf8Value so a Buffer/TypedArray reference is copied as raw bytes
instead of a lossy UTF-8 conversion.
Signed-off-by: seungmin Nam <nhjbest22@g.skku.edu>
@nhjbest22
nhjbest22force-pushed the permission-reference-types branch from 72717a5 to 42241f8CompareAugust 23, 2026 13:09
@RafaelGSSRafaelGSS added request-ci Add this label to start a Jenkins CI on a PR. author ready PRs with CI started, the required approvals, and no outstanding review comments. permission Issues and PRs related to the Permission Model. labels Aug 24, 2026
@github-actionsgithub-actionsBot added request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. and removed request-ci Add this label to start a Jenkins CI on a PR. labels Aug 24, 2026
@github-actions

This comment was marked as outdated.

@RafaelGSSRafaelGSS added request-ci Add this label to start a Jenkins CI on a PR. and removed request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. labels Aug 24, 2026
@github-actionsgithub-actionsBot added request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. and removed request-ci Add this label to start a Jenkins CI on a PR. labels Aug 24, 2026
@github-actions

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399MikeMcC399 removed the request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. label Aug 24, 2026
@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399MikeMcC399 removed the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Aug 25, 2026
@MikeMcC399

This comment was marked as resolved.

@MikeMcC399

This comment was marked as resolved.

@MikeMcC399MikeMcC399 added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 26, 2026
@MikeMcC399

This comment was marked as outdated.

@MikeMcC399

This comment was marked as outdated.

@MikeMcC399MikeMcC399 added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 27, 2026
@nhjbest22

Copy link
Copy Markdown
ContributorAuthor

@MikeMcC399

Thank you so much for constantly keeping an eye on my PR and explaining the CI status! I'm truly amazed by all the care and effort you've put into this.

Based on your explanation, it sounds like we might see a green CI soon! I'll sit tight and wait a bit longer.

@github-actionsgithub-actionsBot removed the request-ci Add this label to start a Jenkins CI on a PR. label Aug 27, 2026
@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399

Copy link
Copy Markdown
Contributor

@nhjbest22

Thank you so much for constantly keeping an eye on my PR and explaining the CI status! I'm truly amazed by all the care and effort you've put into this.

Based on your explanation, it sounds like we might see a green CI soon! I'll sit tight and wait a bit longer.

I didn't expect to be spending so much effort surrounding your PR, however it has got caught up in several generic issues, so that's why I'm continuing to follow it and get it resolved together with others on the team.

So far none of the issues seem to come from changes you've proposed in this PR, so I am hopeful to see a green CI soon! Thanks for your patience!

@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399MikeMcC399 added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 28, 2026
@MikeMcC399

This comment was marked as outdated.

@sxa

This comment was marked as resolved.

@MikeMcC399MikeMcC399 removed the request-ci Add this label to start a Jenkins CI on a PR. label Aug 28, 2026
@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399

This comment was marked as outdated.

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@MikeMcC399

This comment was marked as resolved.

@MikeMcC399

MikeMcC399 commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Jenkins is now green after many attempts πŸŽ‰. The issues it found had nothing to do with the contents of this PR and these are hidden now as resolved / outdated in the history.

Marking as author readyPRs with CI started, the required approvals, and no outstanding review comments. and handing back to the subject matter experts who approved the PR.

@MikeMcC399MikeMcC399 added the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Aug 28, 2026
@nhjbest22

Copy link
Copy Markdown
ContributorAuthor

@MikeMcC399

Thank you so much for all your hard work and dedication to getting the CI to pass. The effort you put into this means a lot to an early contributor like me.

I look forward to continuing to contribute and working together for the Node.js community.

Thanks again!

@RafaelGSSRafaelGSS added the commit-queue PRs queued for automated landing through the Commit Queue. label Aug 31, 2026
@RafaelGSS

Copy link
Copy Markdown
Member

Thanks for the support @MikeMcC399

@nodejs-github-bot
nodejs-github-bot merged commit c4336d9 into nodejs:mainAug 31, 2026
100 checks passed
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Landed in c4336d9

@nodejs-github-botnodejs-github-bot removed the commit-queue PRs queued for automated landing through the Commit Queue. label Aug 31, 2026
@MikeMcC399

Copy link
Copy Markdown
Contributor

@nhjbest22

I'm happy to see that your PR has successfully landed! If you continue contributing, I do hope you have a better experience next time. In any case, now that you are a recognized Contributor you will find that the GitHub Actions CI runs automatically, instead of requiring an individual approval for every change. The Jenkins CI does however always need a Collaborator to first review a PR and then start the Jenkins CI.

There were a lot of different problems that came to together during the same period, including GitHub's own issues. I have to thank also @sxa and others from the team for their assistance in the background!

@MikeMcC399

MikeMcC399 commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Timing has not been kind to this PR πŸ™ !

2ec0f9a which landed at 13:07 UTC has broken tests in the main branch.

The tests after merging this PR c4336d9 at 14:59 UTC that have failed.
There is however nothing to be done for this PR, so this is just FYI in case you are watching the https://github.com/nodejs/node/commits/main/ branch commits and CI results.

A PR #65683 is already queued to fix the tests.

aduh95 pushed a commit that referenced this pull request Sep 3, 2026
normalizeReference() adds URL and Uint8Array support to has()/drop();
the existing string/Buffer behavior is unchanged. BufferValue replaces
Utf8Value so a Buffer/TypedArray reference is copied as raw bytes
instead of a lossy UTF-8 conversion.
Signed-off-by: seungmin Nam <nhjbest22@g.skku.edu>
PR-URL: #65492
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author readyPRs with CI started, the required approvals, and no outstanding review comments.c++Issues and PRs that require attention from people who are familiar with C++.needs-ciPRs that need a full CI run.permissionIssues and PRs related to the Permission Model.processIssues and PRs related to the process subsystem.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@nhjbest22@nodejs-github-bot@MikeMcC399@sxa@RafaelGSS@jasnell
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

permission: support URL and Uint8Array as has()/drop() reference - #65492

Merged
nodejs-github-bot merged 1 commit into
nodejs:mainfrom
nhjbest22:permission-reference-types
Aug 31, 2026
Merged

permission: support URL and Uint8Array as has()/drop() reference#65492
nodejs-github-bot merged 1 commit into
nodejs:mainfrom
nhjbest22:permission-reference-types

Conversation

@nhjbest22

Copy link
Copy Markdown
Contributor

process.permission.has()/drop() only accepted a string or Buffer for
the reference argument. This adds support for a WHATWG URL, resolved
via fileURLToPath() for fs.* scopes since those are the only scopes
that actually use the reference value, and a plain Uint8Array.

Also switches permission.cc from Utf8Value to BufferValue when reading
a Buffer/TypedArray reference, since Utf8Value forces a UTF-8 string
conversion that can silently corrupt a path that isn't valid UTF-8.

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/security-wg

@nodejs-github-botnodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. needs-ci PRs that need a full CI run. process Issues and PRs related to the process subsystem. labels Aug 22, 2026
@codecov

codecovBot commented Aug 23, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 90.69767% with 4 lines in your changes missing coverage. Please review.
βœ… Project coverage is 90.14%. Comparing base (cf30b2e) to head (42241f8).
⚠️ Report is 241 commits behind head on main.

Files with missing linesPatch %Lines
src/permission/permission.cc72.72%0 Missing and 3 partials ⚠️
lib/internal/process/permission.js96.87%1 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #65492 +/- ##
==========================================
+ Coverage 90.11% 90.14% +0.03% 
==========================================
Files 752 751 -1 Lines 251861 252647 +786 Branches 47365 47549 +184 ==========================================
+ Hits 226955 227745 +790 + Misses 16238 16192 -46 - Partials 8668 8710 +42 
Files with missing linesCoverage Ξ”
lib/internal/process/permission.js92.39% <96.87%> (+10.68%)⬆️
src/permission/permission.cc75.98% <72.72%> (+0.76%)⬆️

... and 108 files with indirect coverage changes

πŸš€ New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • πŸ“¦ JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@nhjbest22
nhjbest22force-pushed the permission-reference-types branch from 6d518fc to 72717a5CompareAugust 23, 2026 12:59
normalizeReference() adds URL and Uint8Array support to has()/drop();
the existing string/Buffer behavior is unchanged. BufferValue replaces
Utf8Value so a Buffer/TypedArray reference is copied as raw bytes
instead of a lossy UTF-8 conversion.
Signed-off-by: seungmin Nam <nhjbest22@g.skku.edu>
@nhjbest22
nhjbest22force-pushed the permission-reference-types branch from 72717a5 to 42241f8CompareAugust 23, 2026 13:09
@RafaelGSSRafaelGSS added request-ci Add this label to start a Jenkins CI on a PR. author ready PRs with CI started, the required approvals, and no outstanding review comments. permission Issues and PRs related to the Permission Model. labels Aug 24, 2026
@github-actionsgithub-actionsBot added request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. and removed request-ci Add this label to start a Jenkins CI on a PR. labels Aug 24, 2026
@github-actions

This comment was marked as outdated.

@RafaelGSSRafaelGSS added request-ci Add this label to start a Jenkins CI on a PR. and removed request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. labels Aug 24, 2026
@github-actionsgithub-actionsBot added request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. and removed request-ci Add this label to start a Jenkins CI on a PR. labels Aug 24, 2026
@github-actions

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399MikeMcC399 removed the request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. label Aug 24, 2026
@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399MikeMcC399 removed the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Aug 25, 2026
@MikeMcC399

This comment was marked as resolved.

@MikeMcC399

This comment was marked as resolved.

@MikeMcC399MikeMcC399 added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 26, 2026
@MikeMcC399

This comment was marked as outdated.

@MikeMcC399

This comment was marked as outdated.

@MikeMcC399MikeMcC399 added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 27, 2026
@nhjbest22

Copy link
Copy Markdown
ContributorAuthor

@MikeMcC399

Thank you so much for constantly keeping an eye on my PR and explaining the CI status! I'm truly amazed by all the care and effort you've put into this.

Based on your explanation, it sounds like we might see a green CI soon! I'll sit tight and wait a bit longer.

@github-actionsgithub-actionsBot removed the request-ci Add this label to start a Jenkins CI on a PR. label Aug 27, 2026
@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399

Copy link
Copy Markdown
Contributor

@nhjbest22

Thank you so much for constantly keeping an eye on my PR and explaining the CI status! I'm truly amazed by all the care and effort you've put into this.

Based on your explanation, it sounds like we might see a green CI soon! I'll sit tight and wait a bit longer.

I didn't expect to be spending so much effort surrounding your PR, however it has got caught up in several generic issues, so that's why I'm continuing to follow it and get it resolved together with others on the team.

So far none of the issues seem to come from changes you've proposed in this PR, so I am hopeful to see a green CI soon! Thanks for your patience!

@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399MikeMcC399 added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 28, 2026
@MikeMcC399

This comment was marked as outdated.

@sxa

This comment was marked as resolved.

@MikeMcC399MikeMcC399 removed the request-ci Add this label to start a Jenkins CI on a PR. label Aug 28, 2026
@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399

This comment was marked as outdated.

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@MikeMcC399

This comment was marked as resolved.

@MikeMcC399

MikeMcC399 commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Jenkins is now green after many attempts πŸŽ‰. The issues it found had nothing to do with the contents of this PR and these are hidden now as resolved / outdated in the history.

Marking as author readyPRs with CI started, the required approvals, and no outstanding review comments. and handing back to the subject matter experts who approved the PR.

@MikeMcC399MikeMcC399 added the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Aug 28, 2026
@nhjbest22

Copy link
Copy Markdown
ContributorAuthor

@MikeMcC399

Thank you so much for all your hard work and dedication to getting the CI to pass. The effort you put into this means a lot to an early contributor like me.

I look forward to continuing to contribute and working together for the Node.js community.

Thanks again!

@RafaelGSSRafaelGSS added the commit-queue PRs queued for automated landing through the Commit Queue. label Aug 31, 2026
@RafaelGSS

Copy link
Copy Markdown
Member

Thanks for the support @MikeMcC399

@nodejs-github-bot
nodejs-github-bot merged commit c4336d9 into nodejs:mainAug 31, 2026
100 checks passed
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Landed in c4336d9

@nodejs-github-botnodejs-github-bot removed the commit-queue PRs queued for automated landing through the Commit Queue. label Aug 31, 2026
@MikeMcC399

Copy link
Copy Markdown
Contributor

@nhjbest22

I'm happy to see that your PR has successfully landed! If you continue contributing, I do hope you have a better experience next time. In any case, now that you are a recognized Contributor you will find that the GitHub Actions CI runs automatically, instead of requiring an individual approval for every change. The Jenkins CI does however always need a Collaborator to first review a PR and then start the Jenkins CI.

There were a lot of different problems that came to together during the same period, including GitHub's own issues. I have to thank also @sxa and others from the team for their assistance in the background!

@MikeMcC399

MikeMcC399 commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Timing has not been kind to this PR πŸ™ !

2ec0f9a which landed at 13:07 UTC has broken tests in the main branch.

The tests after merging this PR c4336d9 at 14:59 UTC that have failed.
There is however nothing to be done for this PR, so this is just FYI in case you are watching the https://github.com/nodejs/node/commits/main/ branch commits and CI results.

A PR #65683 is already queued to fix the tests.

aduh95 pushed a commit that referenced this pull request Sep 3, 2026
normalizeReference() adds URL and Uint8Array support to has()/drop();
the existing string/Buffer behavior is unchanged. BufferValue replaces
Utf8Value so a Buffer/TypedArray reference is copied as raw bytes
instead of a lossy UTF-8 conversion.
Signed-off-by: seungmin Nam <nhjbest22@g.skku.edu>
PR-URL: #65492
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author readyPRs with CI started, the required approvals, and no outstanding review comments.c++Issues and PRs that require attention from people who are familiar with C++.needs-ciPRs that need a full CI run.permissionIssues and PRs related to the Permission Model.processIssues and PRs related to the process subsystem.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@nhjbest22@nodejs-github-bot@MikeMcC399@sxa@RafaelGSS@jasnell
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

permission: support URL and Uint8Array as has()/drop() reference - #65492

Merged
nodejs-github-bot merged 1 commit into
nodejs:mainfrom
nhjbest22:permission-reference-types
Aug 31, 2026
Merged

permission: support URL and Uint8Array as has()/drop() reference#65492
nodejs-github-bot merged 1 commit into
nodejs:mainfrom
nhjbest22:permission-reference-types

Conversation

@nhjbest22

Copy link
Copy Markdown
Contributor

process.permission.has()/drop() only accepted a string or Buffer for
the reference argument. This adds support for a WHATWG URL, resolved
via fileURLToPath() for fs.* scopes since those are the only scopes
that actually use the reference value, and a plain Uint8Array.

Also switches permission.cc from Utf8Value to BufferValue when reading
a Buffer/TypedArray reference, since Utf8Value forces a UTF-8 string
conversion that can silently corrupt a path that isn't valid UTF-8.

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/security-wg

@nodejs-github-botnodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. needs-ci PRs that need a full CI run. process Issues and PRs related to the process subsystem. labels Aug 22, 2026
@codecov

codecovBot commented Aug 23, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 90.69767% with 4 lines in your changes missing coverage. Please review.
βœ… Project coverage is 90.14%. Comparing base (cf30b2e) to head (42241f8).
⚠️ Report is 241 commits behind head on main.

Files with missing linesPatch %Lines
src/permission/permission.cc72.72%0 Missing and 3 partials ⚠️
lib/internal/process/permission.js96.87%1 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #65492 +/- ##
==========================================
+ Coverage 90.11% 90.14% +0.03% 
==========================================
Files 752 751 -1 Lines 251861 252647 +786 Branches 47365 47549 +184 ==========================================
+ Hits 226955 227745 +790 + Misses 16238 16192 -46 - Partials 8668 8710 +42 
Files with missing linesCoverage Ξ”
lib/internal/process/permission.js92.39% <96.87%> (+10.68%)⬆️
src/permission/permission.cc75.98% <72.72%> (+0.76%)⬆️

... and 108 files with indirect coverage changes

πŸš€ New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • πŸ“¦ JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@nhjbest22
nhjbest22force-pushed the permission-reference-types branch from 6d518fc to 72717a5CompareAugust 23, 2026 12:59
normalizeReference() adds URL and Uint8Array support to has()/drop();
the existing string/Buffer behavior is unchanged. BufferValue replaces
Utf8Value so a Buffer/TypedArray reference is copied as raw bytes
instead of a lossy UTF-8 conversion.
Signed-off-by: seungmin Nam <nhjbest22@g.skku.edu>
@nhjbest22
nhjbest22force-pushed the permission-reference-types branch from 72717a5 to 42241f8CompareAugust 23, 2026 13:09
@RafaelGSSRafaelGSS added request-ci Add this label to start a Jenkins CI on a PR. author ready PRs with CI started, the required approvals, and no outstanding review comments. permission Issues and PRs related to the Permission Model. labels Aug 24, 2026
@github-actionsgithub-actionsBot added request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. and removed request-ci Add this label to start a Jenkins CI on a PR. labels Aug 24, 2026
@github-actions

This comment was marked as outdated.

@RafaelGSSRafaelGSS added request-ci Add this label to start a Jenkins CI on a PR. and removed request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. labels Aug 24, 2026
@github-actionsgithub-actionsBot added request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. and removed request-ci Add this label to start a Jenkins CI on a PR. labels Aug 24, 2026
@github-actions

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399MikeMcC399 removed the request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. label Aug 24, 2026
@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399MikeMcC399 removed the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Aug 25, 2026
@MikeMcC399

This comment was marked as resolved.

@MikeMcC399

This comment was marked as resolved.

@MikeMcC399MikeMcC399 added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 26, 2026
@MikeMcC399

This comment was marked as outdated.

@MikeMcC399

This comment was marked as outdated.

@MikeMcC399MikeMcC399 added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 27, 2026
@nhjbest22

Copy link
Copy Markdown
ContributorAuthor

@MikeMcC399

Thank you so much for constantly keeping an eye on my PR and explaining the CI status! I'm truly amazed by all the care and effort you've put into this.

Based on your explanation, it sounds like we might see a green CI soon! I'll sit tight and wait a bit longer.

@github-actionsgithub-actionsBot removed the request-ci Add this label to start a Jenkins CI on a PR. label Aug 27, 2026
@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399

Copy link
Copy Markdown
Contributor

@nhjbest22

Thank you so much for constantly keeping an eye on my PR and explaining the CI status! I'm truly amazed by all the care and effort you've put into this.

Based on your explanation, it sounds like we might see a green CI soon! I'll sit tight and wait a bit longer.

I didn't expect to be spending so much effort surrounding your PR, however it has got caught up in several generic issues, so that's why I'm continuing to follow it and get it resolved together with others on the team.

So far none of the issues seem to come from changes you've proposed in this PR, so I am hopeful to see a green CI soon! Thanks for your patience!

@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399MikeMcC399 added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 28, 2026
@MikeMcC399

This comment was marked as outdated.

@sxa

This comment was marked as resolved.

@MikeMcC399MikeMcC399 removed the request-ci Add this label to start a Jenkins CI on a PR. label Aug 28, 2026
@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399

This comment was marked as outdated.

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@MikeMcC399

This comment was marked as resolved.

@MikeMcC399

MikeMcC399 commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Jenkins is now green after many attempts πŸŽ‰. The issues it found had nothing to do with the contents of this PR and these are hidden now as resolved / outdated in the history.

Marking as author readyPRs with CI started, the required approvals, and no outstanding review comments. and handing back to the subject matter experts who approved the PR.

@MikeMcC399MikeMcC399 added the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Aug 28, 2026
@nhjbest22

Copy link
Copy Markdown
ContributorAuthor

@MikeMcC399

Thank you so much for all your hard work and dedication to getting the CI to pass. The effort you put into this means a lot to an early contributor like me.

I look forward to continuing to contribute and working together for the Node.js community.

Thanks again!

@RafaelGSSRafaelGSS added the commit-queue PRs queued for automated landing through the Commit Queue. label Aug 31, 2026
@RafaelGSS

Copy link
Copy Markdown
Member

Thanks for the support @MikeMcC399

@nodejs-github-bot
nodejs-github-bot merged commit c4336d9 into nodejs:mainAug 31, 2026
100 checks passed
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Landed in c4336d9

@nodejs-github-botnodejs-github-bot removed the commit-queue PRs queued for automated landing through the Commit Queue. label Aug 31, 2026
@MikeMcC399

Copy link
Copy Markdown
Contributor

@nhjbest22

I'm happy to see that your PR has successfully landed! If you continue contributing, I do hope you have a better experience next time. In any case, now that you are a recognized Contributor you will find that the GitHub Actions CI runs automatically, instead of requiring an individual approval for every change. The Jenkins CI does however always need a Collaborator to first review a PR and then start the Jenkins CI.

There were a lot of different problems that came to together during the same period, including GitHub's own issues. I have to thank also @sxa and others from the team for their assistance in the background!

@MikeMcC399

MikeMcC399 commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Timing has not been kind to this PR πŸ™ !

2ec0f9a which landed at 13:07 UTC has broken tests in the main branch.

The tests after merging this PR c4336d9 at 14:59 UTC that have failed.
There is however nothing to be done for this PR, so this is just FYI in case you are watching the https://github.com/nodejs/node/commits/main/ branch commits and CI results.

A PR #65683 is already queued to fix the tests.

aduh95 pushed a commit that referenced this pull request Sep 3, 2026
normalizeReference() adds URL and Uint8Array support to has()/drop();
the existing string/Buffer behavior is unchanged. BufferValue replaces
Utf8Value so a Buffer/TypedArray reference is copied as raw bytes
instead of a lossy UTF-8 conversion.
Signed-off-by: seungmin Nam <nhjbest22@g.skku.edu>
PR-URL: #65492
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author readyPRs with CI started, the required approvals, and no outstanding review comments.c++Issues and PRs that require attention from people who are familiar with C++.needs-ciPRs that need a full CI run.permissionIssues and PRs related to the Permission Model.processIssues and PRs related to the process subsystem.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@nhjbest22@nodejs-github-bot@MikeMcC399@sxa@RafaelGSS@jasnell
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

permission: support URL and Uint8Array as has()/drop() reference - #65492

Merged
nodejs-github-bot merged 1 commit into
nodejs:mainfrom
nhjbest22:permission-reference-types
Aug 31, 2026
Merged

permission: support URL and Uint8Array as has()/drop() reference#65492
nodejs-github-bot merged 1 commit into
nodejs:mainfrom
nhjbest22:permission-reference-types

Conversation

@nhjbest22

Copy link
Copy Markdown
Contributor

process.permission.has()/drop() only accepted a string or Buffer for
the reference argument. This adds support for a WHATWG URL, resolved
via fileURLToPath() for fs.* scopes since those are the only scopes
that actually use the reference value, and a plain Uint8Array.

Also switches permission.cc from Utf8Value to BufferValue when reading
a Buffer/TypedArray reference, since Utf8Value forces a UTF-8 string
conversion that can silently corrupt a path that isn't valid UTF-8.

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/security-wg

@nodejs-github-botnodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. needs-ci PRs that need a full CI run. process Issues and PRs related to the process subsystem. labels Aug 22, 2026
@codecov

codecovBot commented Aug 23, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 90.69767% with 4 lines in your changes missing coverage. Please review.
βœ… Project coverage is 90.14%. Comparing base (cf30b2e) to head (42241f8).
⚠️ Report is 241 commits behind head on main.

Files with missing linesPatch %Lines
src/permission/permission.cc72.72%0 Missing and 3 partials ⚠️
lib/internal/process/permission.js96.87%1 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #65492 +/- ##
==========================================
+ Coverage 90.11% 90.14% +0.03% 
==========================================
Files 752 751 -1 Lines 251861 252647 +786 Branches 47365 47549 +184 ==========================================
+ Hits 226955 227745 +790 + Misses 16238 16192 -46 - Partials 8668 8710 +42 
Files with missing linesCoverage Ξ”
lib/internal/process/permission.js92.39% <96.87%> (+10.68%)⬆️
src/permission/permission.cc75.98% <72.72%> (+0.76%)⬆️

... and 108 files with indirect coverage changes

πŸš€ New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • πŸ“¦ JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@nhjbest22
nhjbest22force-pushed the permission-reference-types branch from 6d518fc to 72717a5CompareAugust 23, 2026 12:59
normalizeReference() adds URL and Uint8Array support to has()/drop();
the existing string/Buffer behavior is unchanged. BufferValue replaces
Utf8Value so a Buffer/TypedArray reference is copied as raw bytes
instead of a lossy UTF-8 conversion.
Signed-off-by: seungmin Nam <nhjbest22@g.skku.edu>
@nhjbest22
nhjbest22force-pushed the permission-reference-types branch from 72717a5 to 42241f8CompareAugust 23, 2026 13:09
@RafaelGSSRafaelGSS added request-ci Add this label to start a Jenkins CI on a PR. author ready PRs with CI started, the required approvals, and no outstanding review comments. permission Issues and PRs related to the Permission Model. labels Aug 24, 2026
@github-actionsgithub-actionsBot added request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. and removed request-ci Add this label to start a Jenkins CI on a PR. labels Aug 24, 2026
@github-actions

This comment was marked as outdated.

@RafaelGSSRafaelGSS added request-ci Add this label to start a Jenkins CI on a PR. and removed request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. labels Aug 24, 2026
@github-actionsgithub-actionsBot added request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. and removed request-ci Add this label to start a Jenkins CI on a PR. labels Aug 24, 2026
@github-actions

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399MikeMcC399 removed the request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. label Aug 24, 2026
@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399MikeMcC399 removed the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Aug 25, 2026
@MikeMcC399

This comment was marked as resolved.

@MikeMcC399

This comment was marked as resolved.

@MikeMcC399MikeMcC399 added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 26, 2026
@MikeMcC399

This comment was marked as outdated.

@MikeMcC399

This comment was marked as outdated.

@MikeMcC399MikeMcC399 added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 27, 2026
@nhjbest22

Copy link
Copy Markdown
ContributorAuthor

@MikeMcC399

Thank you so much for constantly keeping an eye on my PR and explaining the CI status! I'm truly amazed by all the care and effort you've put into this.

Based on your explanation, it sounds like we might see a green CI soon! I'll sit tight and wait a bit longer.

@github-actionsgithub-actionsBot removed the request-ci Add this label to start a Jenkins CI on a PR. label Aug 27, 2026
@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399

Copy link
Copy Markdown
Contributor

@nhjbest22

Thank you so much for constantly keeping an eye on my PR and explaining the CI status! I'm truly amazed by all the care and effort you've put into this.

Based on your explanation, it sounds like we might see a green CI soon! I'll sit tight and wait a bit longer.

I didn't expect to be spending so much effort surrounding your PR, however it has got caught up in several generic issues, so that's why I'm continuing to follow it and get it resolved together with others on the team.

So far none of the issues seem to come from changes you've proposed in this PR, so I am hopeful to see a green CI soon! Thanks for your patience!

@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399MikeMcC399 added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 28, 2026
@MikeMcC399

This comment was marked as outdated.

@sxa

This comment was marked as resolved.

@MikeMcC399MikeMcC399 removed the request-ci Add this label to start a Jenkins CI on a PR. label Aug 28, 2026
@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399

This comment was marked as outdated.

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@MikeMcC399

This comment was marked as resolved.

@MikeMcC399

MikeMcC399 commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Jenkins is now green after many attempts πŸŽ‰. The issues it found had nothing to do with the contents of this PR and these are hidden now as resolved / outdated in the history.

Marking as author readyPRs with CI started, the required approvals, and no outstanding review comments. and handing back to the subject matter experts who approved the PR.

@MikeMcC399MikeMcC399 added the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Aug 28, 2026
@nhjbest22

Copy link
Copy Markdown
ContributorAuthor

@MikeMcC399

Thank you so much for all your hard work and dedication to getting the CI to pass. The effort you put into this means a lot to an early contributor like me.

I look forward to continuing to contribute and working together for the Node.js community.

Thanks again!

@RafaelGSSRafaelGSS added the commit-queue PRs queued for automated landing through the Commit Queue. label Aug 31, 2026
@RafaelGSS

Copy link
Copy Markdown
Member

Thanks for the support @MikeMcC399

@nodejs-github-bot
nodejs-github-bot merged commit c4336d9 into nodejs:mainAug 31, 2026
100 checks passed
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Landed in c4336d9

@nodejs-github-botnodejs-github-bot removed the commit-queue PRs queued for automated landing through the Commit Queue. label Aug 31, 2026
@MikeMcC399

Copy link
Copy Markdown
Contributor

@nhjbest22

I'm happy to see that your PR has successfully landed! If you continue contributing, I do hope you have a better experience next time. In any case, now that you are a recognized Contributor you will find that the GitHub Actions CI runs automatically, instead of requiring an individual approval for every change. The Jenkins CI does however always need a Collaborator to first review a PR and then start the Jenkins CI.

There were a lot of different problems that came to together during the same period, including GitHub's own issues. I have to thank also @sxa and others from the team for their assistance in the background!

@MikeMcC399

MikeMcC399 commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Timing has not been kind to this PR πŸ™ !

2ec0f9a which landed at 13:07 UTC has broken tests in the main branch.

The tests after merging this PR c4336d9 at 14:59 UTC that have failed.
There is however nothing to be done for this PR, so this is just FYI in case you are watching the https://github.com/nodejs/node/commits/main/ branch commits and CI results.

A PR #65683 is already queued to fix the tests.

aduh95 pushed a commit that referenced this pull request Sep 3, 2026
normalizeReference() adds URL and Uint8Array support to has()/drop();
the existing string/Buffer behavior is unchanged. BufferValue replaces
Utf8Value so a Buffer/TypedArray reference is copied as raw bytes
instead of a lossy UTF-8 conversion.
Signed-off-by: seungmin Nam <nhjbest22@g.skku.edu>
PR-URL: #65492
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author readyPRs with CI started, the required approvals, and no outstanding review comments.c++Issues and PRs that require attention from people who are familiar with C++.needs-ciPRs that need a full CI run.permissionIssues and PRs related to the Permission Model.processIssues and PRs related to the process subsystem.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@nhjbest22@nodejs-github-bot@MikeMcC399@sxa@RafaelGSS@jasnell
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

permission: support URL and Uint8Array as has()/drop() reference - #65492

Merged
nodejs-github-bot merged 1 commit into
nodejs:mainfrom
nhjbest22:permission-reference-types
Aug 31, 2026
Merged

permission: support URL and Uint8Array as has()/drop() reference#65492
nodejs-github-bot merged 1 commit into
nodejs:mainfrom
nhjbest22:permission-reference-types

Conversation

@nhjbest22

Copy link
Copy Markdown
Contributor

process.permission.has()/drop() only accepted a string or Buffer for
the reference argument. This adds support for a WHATWG URL, resolved
via fileURLToPath() for fs.* scopes since those are the only scopes
that actually use the reference value, and a plain Uint8Array.

Also switches permission.cc from Utf8Value to BufferValue when reading
a Buffer/TypedArray reference, since Utf8Value forces a UTF-8 string
conversion that can silently corrupt a path that isn't valid UTF-8.

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/security-wg

@nodejs-github-botnodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. needs-ci PRs that need a full CI run. process Issues and PRs related to the process subsystem. labels Aug 22, 2026
@codecov

codecovBot commented Aug 23, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 90.69767% with 4 lines in your changes missing coverage. Please review.
βœ… Project coverage is 90.14%. Comparing base (cf30b2e) to head (42241f8).
⚠️ Report is 241 commits behind head on main.

Files with missing linesPatch %Lines
src/permission/permission.cc72.72%0 Missing and 3 partials ⚠️
lib/internal/process/permission.js96.87%1 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #65492 +/- ##
==========================================
+ Coverage 90.11% 90.14% +0.03% 
==========================================
Files 752 751 -1 Lines 251861 252647 +786 Branches 47365 47549 +184 ==========================================
+ Hits 226955 227745 +790 + Misses 16238 16192 -46 - Partials 8668 8710 +42 
Files with missing linesCoverage Ξ”
lib/internal/process/permission.js92.39% <96.87%> (+10.68%)⬆️
src/permission/permission.cc75.98% <72.72%> (+0.76%)⬆️

... and 108 files with indirect coverage changes

πŸš€ New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • πŸ“¦ JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@nhjbest22
nhjbest22force-pushed the permission-reference-types branch from 6d518fc to 72717a5CompareAugust 23, 2026 12:59
normalizeReference() adds URL and Uint8Array support to has()/drop();
the existing string/Buffer behavior is unchanged. BufferValue replaces
Utf8Value so a Buffer/TypedArray reference is copied as raw bytes
instead of a lossy UTF-8 conversion.
Signed-off-by: seungmin Nam <nhjbest22@g.skku.edu>
@nhjbest22
nhjbest22force-pushed the permission-reference-types branch from 72717a5 to 42241f8CompareAugust 23, 2026 13:09
@RafaelGSSRafaelGSS added request-ci Add this label to start a Jenkins CI on a PR. author ready PRs with CI started, the required approvals, and no outstanding review comments. permission Issues and PRs related to the Permission Model. labels Aug 24, 2026
@github-actionsgithub-actionsBot added request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. and removed request-ci Add this label to start a Jenkins CI on a PR. labels Aug 24, 2026
@github-actions

This comment was marked as outdated.

@RafaelGSSRafaelGSS added request-ci Add this label to start a Jenkins CI on a PR. and removed request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. labels Aug 24, 2026
@github-actionsgithub-actionsBot added request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. and removed request-ci Add this label to start a Jenkins CI on a PR. labels Aug 24, 2026
@github-actions

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399MikeMcC399 removed the request-ci-failed Starting CI with the request-ci label failed and requires manual intervention. label Aug 24, 2026
@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399MikeMcC399 removed the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Aug 25, 2026
@MikeMcC399

This comment was marked as resolved.

@MikeMcC399

This comment was marked as resolved.

@MikeMcC399MikeMcC399 added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 26, 2026
@MikeMcC399

This comment was marked as outdated.

@MikeMcC399

This comment was marked as outdated.

@MikeMcC399MikeMcC399 added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 27, 2026
@nhjbest22

Copy link
Copy Markdown
ContributorAuthor

@MikeMcC399

Thank you so much for constantly keeping an eye on my PR and explaining the CI status! I'm truly amazed by all the care and effort you've put into this.

Based on your explanation, it sounds like we might see a green CI soon! I'll sit tight and wait a bit longer.

@github-actionsgithub-actionsBot removed the request-ci Add this label to start a Jenkins CI on a PR. label Aug 27, 2026
@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399

Copy link
Copy Markdown
Contributor

@nhjbest22

Thank you so much for constantly keeping an eye on my PR and explaining the CI status! I'm truly amazed by all the care and effort you've put into this.

Based on your explanation, it sounds like we might see a green CI soon! I'll sit tight and wait a bit longer.

I didn't expect to be spending so much effort surrounding your PR, however it has got caught up in several generic issues, so that's why I'm continuing to follow it and get it resolved together with others on the team.

So far none of the issues seem to come from changes you've proposed in this PR, so I am hopeful to see a green CI soon! Thanks for your patience!

@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399MikeMcC399 added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 28, 2026
@MikeMcC399

This comment was marked as outdated.

@sxa

This comment was marked as resolved.

@MikeMcC399MikeMcC399 removed the request-ci Add this label to start a Jenkins CI on a PR. label Aug 28, 2026
@nodejs-github-bot

This comment was marked as outdated.

@MikeMcC399

This comment was marked as outdated.

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@MikeMcC399

This comment was marked as resolved.

@MikeMcC399

MikeMcC399 commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Jenkins is now green after many attempts πŸŽ‰. The issues it found had nothing to do with the contents of this PR and these are hidden now as resolved / outdated in the history.

Marking as author readyPRs with CI started, the required approvals, and no outstanding review comments. and handing back to the subject matter experts who approved the PR.

@MikeMcC399MikeMcC399 added the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Aug 28, 2026
@nhjbest22

Copy link
Copy Markdown
ContributorAuthor

@MikeMcC399

Thank you so much for all your hard work and dedication to getting the CI to pass. The effort you put into this means a lot to an early contributor like me.

I look forward to continuing to contribute and working together for the Node.js community.

Thanks again!

@RafaelGSSRafaelGSS added the commit-queue PRs queued for automated landing through the Commit Queue. label Aug 31, 2026
@RafaelGSS

Copy link
Copy Markdown
Member

Thanks for the support @MikeMcC399

@nodejs-github-bot
nodejs-github-bot merged commit c4336d9 into nodejs:mainAug 31, 2026
100 checks passed
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Landed in c4336d9

@nodejs-github-botnodejs-github-bot removed the commit-queue PRs queued for automated landing through the Commit Queue. label Aug 31, 2026
@MikeMcC399

Copy link
Copy Markdown
Contributor

@nhjbest22

I'm happy to see that your PR has successfully landed! If you continue contributing, I do hope you have a better experience next time. In any case, now that you are a recognized Contributor you will find that the GitHub Actions CI runs automatically, instead of requiring an individual approval for every change. The Jenkins CI does however always need a Collaborator to first review a PR and then start the Jenkins CI.

There were a lot of different problems that came to together during the same period, including GitHub's own issues. I have to thank also @sxa and others from the team for their assistance in the background!

@MikeMcC399

MikeMcC399 commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Timing has not been kind to this PR πŸ™ !

2ec0f9a which landed at 13:07 UTC has broken tests in the main branch.

The tests after merging this PR c4336d9 at 14:59 UTC that have failed.
There is however nothing to be done for this PR, so this is just FYI in case you are watching the https://github.com/nodejs/node/commits/main/ branch commits and CI results.

A PR #65683 is already queued to fix the tests.

aduh95 pushed a commit that referenced this pull request Sep 3, 2026
normalizeReference() adds URL and Uint8Array support to has()/drop();
the existing string/Buffer behavior is unchanged. BufferValue replaces
Utf8Value so a Buffer/TypedArray reference is copied as raw bytes
instead of a lossy UTF-8 conversion.
Signed-off-by: seungmin Nam <nhjbest22@g.skku.edu>
PR-URL: #65492
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author readyPRs with CI started, the required approvals, and no outstanding review comments.c++Issues and PRs that require attention from people who are familiar with C++.needs-ciPRs that need a full CI run.permissionIssues and PRs related to the Permission Model.processIssues and PRs related to the process subsystem.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@nhjbest22@nodejs-github-bot@MikeMcC399@sxa@RafaelGSS@jasnell