This repository was archived by the owner on Feb 5, 2026. It is now read-only.

Update: Simplify core abilties registration in preparation for core patch. - #128

Merged
jorgefilipecosta merged 9 commits into
trunkfrom
update/simplify-core-abilties-registration
Oct 27, 2025
Merged

Update: Simplify core abilties registration in preparation for core patch.#128
jorgefilipecosta merged 9 commits into
trunkfrom
update/simplify-core-abilties-registration

Conversation

@jorgefilipecosta

Copy link
Copy Markdown
Member

This PR applies feedback provided in #108, by @aaronjorbin as a preparation for the core patch.

Testing

Verify automated testing pass.
Oppenened the editor, and the browser console, made some test requests:

wp.apiFetch({ path: wp.url.addQueryArgs('/wp/v2/abilities/core/get-site-info/run', { fields:[ 'name' ] } ) } ).then(console.log);
wp.apiFetch({ path: wp.url.addQueryArgs('/wp/v2/abilities/core/get-site-info/run', {input: { fields:[ 'name' ] } } ) } ).then(console.log);

Verified things return as expected.

@github-actions

github-actionsBot commented Oct 23, 2025

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: jorgefilipecosta <jorgefilipecosta@git.wordpress.org>
Co-authored-by: gziolo <gziolo@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@codecov

codecovBot commented Oct 23, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 98.15668% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 90.47%. Comparing base (4513526) to head (c260793).
⚠️ Report is 1 commits behind head on trunk.

Files with missing linesPatch %Lines
includes/bootstrap.php0.00%4 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## trunk #128 +/- ##
============================================
- Coverage 90.57% 90.47% -0.10% + Complexity 188 177 -11 
============================================
Files 20 20 Lines 1485 1470 -15 Branches 120 120 ============================================
- Hits 1345 1330 -15 
Misses 140 140 
FlagCoverage Δ
javascript94.31% <ø> (ø)
unit89.34% <98.15%> (-0.14%)⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 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.

Comment threadincludes/bootstrap.php Outdated
@gziolo

Copy link
Copy Markdown
Member

It looks like we need to land #126 first so CI job running against WP core trunk don't fail anymore.

@jorgefilipecosta

Copy link
Copy Markdown
MemberAuthor

It looks like we need to land #126 first so CI job running against WP core trunk don't fail anymore.

Reviewing #126, I think this and #126 should be merged soon so then I can follow up with further syncs from core.

@gziolo

Copy link
Copy Markdown
Member

This will require a rebase with trunk now. We might need a better mechanism that detects whether these ability categories and abilities haven't been registered earlier, as now that happens automatically in WP core trunk.

@jorgefilipecosta
jorgefilipecostaforce-pushed the update/simplify-core-abilties-registration branch from 73161fb to ff2624aCompareOctober 27, 2025 12:31
if ( function_exists( 'add_action' ) ) {
add_action( 'wp_abilities_api_categories_init', array( 'WP_Core_Abilities', 'register_category' ) );
add_action( 'wp_abilities_api_init', array( 'WP_Core_Abilities', 'register' ) );
add_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' );

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be possible to simplify all the conditions used with a simple (and remove PHPCS exception):

if ( has_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' ) {

The same for another action.

@jorgefilipecostajorgefilipecostaOct 27, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @gziolo, you mean just something like as top level code without any other condition?
if ( ! has_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' ) ) {
add_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' );
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's the common pattern used in the Gutenberg plugin. The wrapping:

if ( function_exists( 'has_action' ) ) {

might still be necessary to ensure it doesn't break when loading files too early before WP core, which happens in some scenarios.

*
* @return void
*/
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is no longer necessary. I think we could copy the latest version directly from WP core.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I copied the last version directly from core as suggested 👍

@gziologziolo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is one feedback to consider, but otherwise this looks great. Thank you for taking care of it!

@jorgefilipecosta
jorgefilipecosta merged commit 9899991 into trunkOct 27, 2025
22 of 23 checks passed
@jorgefilipecosta
jorgefilipecosta deleted the update/simplify-core-abilties-registration branch October 27, 2025 13:53
@jorgefilipecosta

Copy link
Copy Markdown
MemberAuthor

Thank you a lot for the review @gziolo, if required I will follow up with enhancements 👍

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

[Type] BugSomething isn't working

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants

@jorgefilipecosta@gziolo
, '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
This repository was archived by the owner on Feb 5, 2026. It is now read-only.

Update: Simplify core abilties registration in preparation for core patch. - #128

Merged
jorgefilipecosta merged 9 commits into
trunkfrom
update/simplify-core-abilties-registration
Oct 27, 2025
Merged

Update: Simplify core abilties registration in preparation for core patch.#128
jorgefilipecosta merged 9 commits into
trunkfrom
update/simplify-core-abilties-registration

Conversation

@jorgefilipecosta

Copy link
Copy Markdown
Member

This PR applies feedback provided in #108, by @aaronjorbin as a preparation for the core patch.

Testing

Verify automated testing pass.
Oppenened the editor, and the browser console, made some test requests:

wp.apiFetch({ path: wp.url.addQueryArgs('/wp/v2/abilities/core/get-site-info/run', { fields:[ 'name' ] } ) } ).then(console.log);
wp.apiFetch({ path: wp.url.addQueryArgs('/wp/v2/abilities/core/get-site-info/run', {input: { fields:[ 'name' ] } } ) } ).then(console.log);

Verified things return as expected.

@github-actions

github-actionsBot commented Oct 23, 2025

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: jorgefilipecosta <jorgefilipecosta@git.wordpress.org>
Co-authored-by: gziolo <gziolo@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@codecov

codecovBot commented Oct 23, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 98.15668% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 90.47%. Comparing base (4513526) to head (c260793).
⚠️ Report is 1 commits behind head on trunk.

Files with missing linesPatch %Lines
includes/bootstrap.php0.00%4 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## trunk #128 +/- ##
============================================
- Coverage 90.57% 90.47% -0.10% + Complexity 188 177 -11 
============================================
Files 20 20 Lines 1485 1470 -15 Branches 120 120 ============================================
- Hits 1345 1330 -15 
Misses 140 140 
FlagCoverage Δ
javascript94.31% <ø> (ø)
unit89.34% <98.15%> (-0.14%)⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 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.

Comment threadincludes/bootstrap.php Outdated
@gziolo

Copy link
Copy Markdown
Member

It looks like we need to land #126 first so CI job running against WP core trunk don't fail anymore.

@jorgefilipecosta

Copy link
Copy Markdown
MemberAuthor

It looks like we need to land #126 first so CI job running against WP core trunk don't fail anymore.

Reviewing #126, I think this and #126 should be merged soon so then I can follow up with further syncs from core.

@gziolo

Copy link
Copy Markdown
Member

This will require a rebase with trunk now. We might need a better mechanism that detects whether these ability categories and abilities haven't been registered earlier, as now that happens automatically in WP core trunk.

@jorgefilipecosta
jorgefilipecostaforce-pushed the update/simplify-core-abilties-registration branch from 73161fb to ff2624aCompareOctober 27, 2025 12:31
if ( function_exists( 'add_action' ) ) {
add_action( 'wp_abilities_api_categories_init', array( 'WP_Core_Abilities', 'register_category' ) );
add_action( 'wp_abilities_api_init', array( 'WP_Core_Abilities', 'register' ) );
add_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' );

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be possible to simplify all the conditions used with a simple (and remove PHPCS exception):

if ( has_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' ) {

The same for another action.

@jorgefilipecostajorgefilipecostaOct 27, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @gziolo, you mean just something like as top level code without any other condition?
if ( ! has_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' ) ) {
add_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' );
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's the common pattern used in the Gutenberg plugin. The wrapping:

if ( function_exists( 'has_action' ) ) {

might still be necessary to ensure it doesn't break when loading files too early before WP core, which happens in some scenarios.

*
* @return void
*/
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is no longer necessary. I think we could copy the latest version directly from WP core.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I copied the last version directly from core as suggested 👍

@gziologziolo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is one feedback to consider, but otherwise this looks great. Thank you for taking care of it!

@jorgefilipecosta
jorgefilipecosta merged commit 9899991 into trunkOct 27, 2025
22 of 23 checks passed
@jorgefilipecosta
jorgefilipecosta deleted the update/simplify-core-abilties-registration branch October 27, 2025 13:53
@jorgefilipecosta

Copy link
Copy Markdown
MemberAuthor

Thank you a lot for the review @gziolo, if required I will follow up with enhancements 👍

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

[Type] BugSomething isn't working

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants

@jorgefilipecosta@gziolo
, '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
This repository was archived by the owner on Feb 5, 2026. It is now read-only.

Update: Simplify core abilties registration in preparation for core patch. - #128

Merged
jorgefilipecosta merged 9 commits into
trunkfrom
update/simplify-core-abilties-registration
Oct 27, 2025
Merged

Update: Simplify core abilties registration in preparation for core patch.#128
jorgefilipecosta merged 9 commits into
trunkfrom
update/simplify-core-abilties-registration

Conversation

@jorgefilipecosta

Copy link
Copy Markdown
Member

This PR applies feedback provided in #108, by @aaronjorbin as a preparation for the core patch.

Testing

Verify automated testing pass.
Oppenened the editor, and the browser console, made some test requests:

wp.apiFetch({ path: wp.url.addQueryArgs('/wp/v2/abilities/core/get-site-info/run', { fields:[ 'name' ] } ) } ).then(console.log);
wp.apiFetch({ path: wp.url.addQueryArgs('/wp/v2/abilities/core/get-site-info/run', {input: { fields:[ 'name' ] } } ) } ).then(console.log);

Verified things return as expected.

@github-actions

github-actionsBot commented Oct 23, 2025

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: jorgefilipecosta <jorgefilipecosta@git.wordpress.org>
Co-authored-by: gziolo <gziolo@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@codecov

codecovBot commented Oct 23, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 98.15668% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 90.47%. Comparing base (4513526) to head (c260793).
⚠️ Report is 1 commits behind head on trunk.

Files with missing linesPatch %Lines
includes/bootstrap.php0.00%4 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## trunk #128 +/- ##
============================================
- Coverage 90.57% 90.47% -0.10% + Complexity 188 177 -11 
============================================
Files 20 20 Lines 1485 1470 -15 Branches 120 120 ============================================
- Hits 1345 1330 -15 
Misses 140 140 
FlagCoverage Δ
javascript94.31% <ø> (ø)
unit89.34% <98.15%> (-0.14%)⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 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.

Comment threadincludes/bootstrap.php Outdated
@gziolo

Copy link
Copy Markdown
Member

It looks like we need to land #126 first so CI job running against WP core trunk don't fail anymore.

@jorgefilipecosta

Copy link
Copy Markdown
MemberAuthor

It looks like we need to land #126 first so CI job running against WP core trunk don't fail anymore.

Reviewing #126, I think this and #126 should be merged soon so then I can follow up with further syncs from core.

@gziolo

Copy link
Copy Markdown
Member

This will require a rebase with trunk now. We might need a better mechanism that detects whether these ability categories and abilities haven't been registered earlier, as now that happens automatically in WP core trunk.

@jorgefilipecosta
jorgefilipecostaforce-pushed the update/simplify-core-abilties-registration branch from 73161fb to ff2624aCompareOctober 27, 2025 12:31
if ( function_exists( 'add_action' ) ) {
add_action( 'wp_abilities_api_categories_init', array( 'WP_Core_Abilities', 'register_category' ) );
add_action( 'wp_abilities_api_init', array( 'WP_Core_Abilities', 'register' ) );
add_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' );

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be possible to simplify all the conditions used with a simple (and remove PHPCS exception):

if ( has_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' ) {

The same for another action.

@jorgefilipecostajorgefilipecostaOct 27, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @gziolo, you mean just something like as top level code without any other condition?
if ( ! has_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' ) ) {
add_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' );
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's the common pattern used in the Gutenberg plugin. The wrapping:

if ( function_exists( 'has_action' ) ) {

might still be necessary to ensure it doesn't break when loading files too early before WP core, which happens in some scenarios.

*
* @return void
*/
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is no longer necessary. I think we could copy the latest version directly from WP core.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I copied the last version directly from core as suggested 👍

@gziologziolo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is one feedback to consider, but otherwise this looks great. Thank you for taking care of it!

@jorgefilipecosta
jorgefilipecosta merged commit 9899991 into trunkOct 27, 2025
22 of 23 checks passed
@jorgefilipecosta
jorgefilipecosta deleted the update/simplify-core-abilties-registration branch October 27, 2025 13:53
@jorgefilipecosta

Copy link
Copy Markdown
MemberAuthor

Thank you a lot for the review @gziolo, if required I will follow up with enhancements 👍

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

[Type] BugSomething isn't working

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants

@jorgefilipecosta@gziolo
, '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
This repository was archived by the owner on Feb 5, 2026. It is now read-only.

Update: Simplify core abilties registration in preparation for core patch. - #128

Merged
jorgefilipecosta merged 9 commits into
trunkfrom
update/simplify-core-abilties-registration
Oct 27, 2025
Merged

Update: Simplify core abilties registration in preparation for core patch.#128
jorgefilipecosta merged 9 commits into
trunkfrom
update/simplify-core-abilties-registration

Conversation

@jorgefilipecosta

Copy link
Copy Markdown
Member

This PR applies feedback provided in #108, by @aaronjorbin as a preparation for the core patch.

Testing

Verify automated testing pass.
Oppenened the editor, and the browser console, made some test requests:

wp.apiFetch({ path: wp.url.addQueryArgs('/wp/v2/abilities/core/get-site-info/run', { fields:[ 'name' ] } ) } ).then(console.log);
wp.apiFetch({ path: wp.url.addQueryArgs('/wp/v2/abilities/core/get-site-info/run', {input: { fields:[ 'name' ] } } ) } ).then(console.log);

Verified things return as expected.

@github-actions

github-actionsBot commented Oct 23, 2025

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: jorgefilipecosta <jorgefilipecosta@git.wordpress.org>
Co-authored-by: gziolo <gziolo@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@codecov

codecovBot commented Oct 23, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 98.15668% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 90.47%. Comparing base (4513526) to head (c260793).
⚠️ Report is 1 commits behind head on trunk.

Files with missing linesPatch %Lines
includes/bootstrap.php0.00%4 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## trunk #128 +/- ##
============================================
- Coverage 90.57% 90.47% -0.10% + Complexity 188 177 -11 
============================================
Files 20 20 Lines 1485 1470 -15 Branches 120 120 ============================================
- Hits 1345 1330 -15 
Misses 140 140 
FlagCoverage Δ
javascript94.31% <ø> (ø)
unit89.34% <98.15%> (-0.14%)⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 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.

Comment threadincludes/bootstrap.php Outdated
@gziolo

Copy link
Copy Markdown
Member

It looks like we need to land #126 first so CI job running against WP core trunk don't fail anymore.

@jorgefilipecosta

Copy link
Copy Markdown
MemberAuthor

It looks like we need to land #126 first so CI job running against WP core trunk don't fail anymore.

Reviewing #126, I think this and #126 should be merged soon so then I can follow up with further syncs from core.

@gziolo

Copy link
Copy Markdown
Member

This will require a rebase with trunk now. We might need a better mechanism that detects whether these ability categories and abilities haven't been registered earlier, as now that happens automatically in WP core trunk.

@jorgefilipecosta
jorgefilipecostaforce-pushed the update/simplify-core-abilties-registration branch from 73161fb to ff2624aCompareOctober 27, 2025 12:31
if ( function_exists( 'add_action' ) ) {
add_action( 'wp_abilities_api_categories_init', array( 'WP_Core_Abilities', 'register_category' ) );
add_action( 'wp_abilities_api_init', array( 'WP_Core_Abilities', 'register' ) );
add_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' );

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be possible to simplify all the conditions used with a simple (and remove PHPCS exception):

if ( has_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' ) {

The same for another action.

@jorgefilipecostajorgefilipecostaOct 27, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @gziolo, you mean just something like as top level code without any other condition?
if ( ! has_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' ) ) {
add_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' );
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's the common pattern used in the Gutenberg plugin. The wrapping:

if ( function_exists( 'has_action' ) ) {

might still be necessary to ensure it doesn't break when loading files too early before WP core, which happens in some scenarios.

*
* @return void
*/
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is no longer necessary. I think we could copy the latest version directly from WP core.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I copied the last version directly from core as suggested 👍

@gziologziolo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is one feedback to consider, but otherwise this looks great. Thank you for taking care of it!

@jorgefilipecosta
jorgefilipecosta merged commit 9899991 into trunkOct 27, 2025
22 of 23 checks passed
@jorgefilipecosta
jorgefilipecosta deleted the update/simplify-core-abilties-registration branch October 27, 2025 13:53
@jorgefilipecosta

Copy link
Copy Markdown
MemberAuthor

Thank you a lot for the review @gziolo, if required I will follow up with enhancements 👍

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

[Type] BugSomething isn't working

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants

@jorgefilipecosta@gziolo
, '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
This repository was archived by the owner on Feb 5, 2026. It is now read-only.

Update: Simplify core abilties registration in preparation for core patch. - #128

Merged
jorgefilipecosta merged 9 commits into
trunkfrom
update/simplify-core-abilties-registration
Oct 27, 2025
Merged

Update: Simplify core abilties registration in preparation for core patch.#128
jorgefilipecosta merged 9 commits into
trunkfrom
update/simplify-core-abilties-registration

Conversation

@jorgefilipecosta

Copy link
Copy Markdown
Member

This PR applies feedback provided in #108, by @aaronjorbin as a preparation for the core patch.

Testing

Verify automated testing pass.
Oppenened the editor, and the browser console, made some test requests:

wp.apiFetch({ path: wp.url.addQueryArgs('/wp/v2/abilities/core/get-site-info/run', { fields:[ 'name' ] } ) } ).then(console.log);
wp.apiFetch({ path: wp.url.addQueryArgs('/wp/v2/abilities/core/get-site-info/run', {input: { fields:[ 'name' ] } } ) } ).then(console.log);

Verified things return as expected.

@github-actions

github-actionsBot commented Oct 23, 2025

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: jorgefilipecosta <jorgefilipecosta@git.wordpress.org>
Co-authored-by: gziolo <gziolo@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@codecov

codecovBot commented Oct 23, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 98.15668% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 90.47%. Comparing base (4513526) to head (c260793).
⚠️ Report is 1 commits behind head on trunk.

Files with missing linesPatch %Lines
includes/bootstrap.php0.00%4 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## trunk #128 +/- ##
============================================
- Coverage 90.57% 90.47% -0.10% + Complexity 188 177 -11 
============================================
Files 20 20 Lines 1485 1470 -15 Branches 120 120 ============================================
- Hits 1345 1330 -15 
Misses 140 140 
FlagCoverage Δ
javascript94.31% <ø> (ø)
unit89.34% <98.15%> (-0.14%)⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 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.

Comment threadincludes/bootstrap.php Outdated
@gziolo

Copy link
Copy Markdown
Member

It looks like we need to land #126 first so CI job running against WP core trunk don't fail anymore.

@jorgefilipecosta

Copy link
Copy Markdown
MemberAuthor

It looks like we need to land #126 first so CI job running against WP core trunk don't fail anymore.

Reviewing #126, I think this and #126 should be merged soon so then I can follow up with further syncs from core.

@gziolo

Copy link
Copy Markdown
Member

This will require a rebase with trunk now. We might need a better mechanism that detects whether these ability categories and abilities haven't been registered earlier, as now that happens automatically in WP core trunk.

@jorgefilipecosta
jorgefilipecostaforce-pushed the update/simplify-core-abilties-registration branch from 73161fb to ff2624aCompareOctober 27, 2025 12:31
if ( function_exists( 'add_action' ) ) {
add_action( 'wp_abilities_api_categories_init', array( 'WP_Core_Abilities', 'register_category' ) );
add_action( 'wp_abilities_api_init', array( 'WP_Core_Abilities', 'register' ) );
add_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' );

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be possible to simplify all the conditions used with a simple (and remove PHPCS exception):

if ( has_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' ) {

The same for another action.

@jorgefilipecostajorgefilipecostaOct 27, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @gziolo, you mean just something like as top level code without any other condition?
if ( ! has_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' ) ) {
add_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' );
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's the common pattern used in the Gutenberg plugin. The wrapping:

if ( function_exists( 'has_action' ) ) {

might still be necessary to ensure it doesn't break when loading files too early before WP core, which happens in some scenarios.

*
* @return void
*/
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is no longer necessary. I think we could copy the latest version directly from WP core.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I copied the last version directly from core as suggested 👍

@gziologziolo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is one feedback to consider, but otherwise this looks great. Thank you for taking care of it!

@jorgefilipecosta
jorgefilipecosta merged commit 9899991 into trunkOct 27, 2025
22 of 23 checks passed
@jorgefilipecosta
jorgefilipecosta deleted the update/simplify-core-abilties-registration branch October 27, 2025 13:53
@jorgefilipecosta

Copy link
Copy Markdown
MemberAuthor

Thank you a lot for the review @gziolo, if required I will follow up with enhancements 👍

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

[Type] BugSomething isn't working

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants

@jorgefilipecosta@gziolo
, '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
This repository was archived by the owner on Feb 5, 2026. It is now read-only.

Update: Simplify core abilties registration in preparation for core patch. - #128

Merged
jorgefilipecosta merged 9 commits into
trunkfrom
update/simplify-core-abilties-registration
Oct 27, 2025
Merged

Update: Simplify core abilties registration in preparation for core patch.#128
jorgefilipecosta merged 9 commits into
trunkfrom
update/simplify-core-abilties-registration

Conversation

@jorgefilipecosta

Copy link
Copy Markdown
Member

This PR applies feedback provided in #108, by @aaronjorbin as a preparation for the core patch.

Testing

Verify automated testing pass.
Oppenened the editor, and the browser console, made some test requests:

wp.apiFetch({ path: wp.url.addQueryArgs('/wp/v2/abilities/core/get-site-info/run', { fields:[ 'name' ] } ) } ).then(console.log);
wp.apiFetch({ path: wp.url.addQueryArgs('/wp/v2/abilities/core/get-site-info/run', {input: { fields:[ 'name' ] } } ) } ).then(console.log);

Verified things return as expected.

@github-actions

github-actionsBot commented Oct 23, 2025

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: jorgefilipecosta <jorgefilipecosta@git.wordpress.org>
Co-authored-by: gziolo <gziolo@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@codecov

codecovBot commented Oct 23, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 98.15668% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 90.47%. Comparing base (4513526) to head (c260793).
⚠️ Report is 1 commits behind head on trunk.

Files with missing linesPatch %Lines
includes/bootstrap.php0.00%4 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## trunk #128 +/- ##
============================================
- Coverage 90.57% 90.47% -0.10% + Complexity 188 177 -11 
============================================
Files 20 20 Lines 1485 1470 -15 Branches 120 120 ============================================
- Hits 1345 1330 -15 
Misses 140 140 
FlagCoverage Δ
javascript94.31% <ø> (ø)
unit89.34% <98.15%> (-0.14%)⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 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.

Comment threadincludes/bootstrap.php Outdated
@gziolo

Copy link
Copy Markdown
Member

It looks like we need to land #126 first so CI job running against WP core trunk don't fail anymore.

@jorgefilipecosta

Copy link
Copy Markdown
MemberAuthor

It looks like we need to land #126 first so CI job running against WP core trunk don't fail anymore.

Reviewing #126, I think this and #126 should be merged soon so then I can follow up with further syncs from core.

@gziolo

Copy link
Copy Markdown
Member

This will require a rebase with trunk now. We might need a better mechanism that detects whether these ability categories and abilities haven't been registered earlier, as now that happens automatically in WP core trunk.

@jorgefilipecosta
jorgefilipecostaforce-pushed the update/simplify-core-abilties-registration branch from 73161fb to ff2624aCompareOctober 27, 2025 12:31
if ( function_exists( 'add_action' ) ) {
add_action( 'wp_abilities_api_categories_init', array( 'WP_Core_Abilities', 'register_category' ) );
add_action( 'wp_abilities_api_init', array( 'WP_Core_Abilities', 'register' ) );
add_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' );

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be possible to simplify all the conditions used with a simple (and remove PHPCS exception):

if ( has_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' ) {

The same for another action.

@jorgefilipecostajorgefilipecostaOct 27, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @gziolo, you mean just something like as top level code without any other condition?
if ( ! has_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' ) ) {
add_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' );
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's the common pattern used in the Gutenberg plugin. The wrapping:

if ( function_exists( 'has_action' ) ) {

might still be necessary to ensure it doesn't break when loading files too early before WP core, which happens in some scenarios.

*
* @return void
*/
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is no longer necessary. I think we could copy the latest version directly from WP core.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I copied the last version directly from core as suggested 👍

@gziologziolo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is one feedback to consider, but otherwise this looks great. Thank you for taking care of it!

@jorgefilipecosta
jorgefilipecosta merged commit 9899991 into trunkOct 27, 2025
22 of 23 checks passed
@jorgefilipecosta
jorgefilipecosta deleted the update/simplify-core-abilties-registration branch October 27, 2025 13:53
@jorgefilipecosta

Copy link
Copy Markdown
MemberAuthor

Thank you a lot for the review @gziolo, if required I will follow up with enhancements 👍

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

[Type] BugSomething isn't working

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants

@jorgefilipecosta@gziolo
, '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
This repository was archived by the owner on Feb 5, 2026. It is now read-only.

Update: Simplify core abilties registration in preparation for core patch. - #128

Merged
jorgefilipecosta merged 9 commits into
trunkfrom
update/simplify-core-abilties-registration
Oct 27, 2025
Merged

Update: Simplify core abilties registration in preparation for core patch.#128
jorgefilipecosta merged 9 commits into
trunkfrom
update/simplify-core-abilties-registration

Conversation

@jorgefilipecosta

Copy link
Copy Markdown
Member

This PR applies feedback provided in #108, by @aaronjorbin as a preparation for the core patch.

Testing

Verify automated testing pass.
Oppenened the editor, and the browser console, made some test requests:

wp.apiFetch({ path: wp.url.addQueryArgs('/wp/v2/abilities/core/get-site-info/run', { fields:[ 'name' ] } ) } ).then(console.log);
wp.apiFetch({ path: wp.url.addQueryArgs('/wp/v2/abilities/core/get-site-info/run', {input: { fields:[ 'name' ] } } ) } ).then(console.log);

Verified things return as expected.

@github-actions

github-actionsBot commented Oct 23, 2025

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: jorgefilipecosta <jorgefilipecosta@git.wordpress.org>
Co-authored-by: gziolo <gziolo@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@codecov

codecovBot commented Oct 23, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 98.15668% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 90.47%. Comparing base (4513526) to head (c260793).
⚠️ Report is 1 commits behind head on trunk.

Files with missing linesPatch %Lines
includes/bootstrap.php0.00%4 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## trunk #128 +/- ##
============================================
- Coverage 90.57% 90.47% -0.10% + Complexity 188 177 -11 
============================================
Files 20 20 Lines 1485 1470 -15 Branches 120 120 ============================================
- Hits 1345 1330 -15 
Misses 140 140 
FlagCoverage Δ
javascript94.31% <ø> (ø)
unit89.34% <98.15%> (-0.14%)⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 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.

Comment threadincludes/bootstrap.php Outdated
@gziolo

Copy link
Copy Markdown
Member

It looks like we need to land #126 first so CI job running against WP core trunk don't fail anymore.

@jorgefilipecosta

Copy link
Copy Markdown
MemberAuthor

It looks like we need to land #126 first so CI job running against WP core trunk don't fail anymore.

Reviewing #126, I think this and #126 should be merged soon so then I can follow up with further syncs from core.

@gziolo

Copy link
Copy Markdown
Member

This will require a rebase with trunk now. We might need a better mechanism that detects whether these ability categories and abilities haven't been registered earlier, as now that happens automatically in WP core trunk.

@jorgefilipecosta
jorgefilipecostaforce-pushed the update/simplify-core-abilties-registration branch from 73161fb to ff2624aCompareOctober 27, 2025 12:31
if ( function_exists( 'add_action' ) ) {
add_action( 'wp_abilities_api_categories_init', array( 'WP_Core_Abilities', 'register_category' ) );
add_action( 'wp_abilities_api_init', array( 'WP_Core_Abilities', 'register' ) );
add_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' );

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be possible to simplify all the conditions used with a simple (and remove PHPCS exception):

if ( has_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' ) {

The same for another action.

@jorgefilipecostajorgefilipecostaOct 27, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @gziolo, you mean just something like as top level code without any other condition?
if ( ! has_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' ) ) {
add_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' );
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's the common pattern used in the Gutenberg plugin. The wrapping:

if ( function_exists( 'has_action' ) ) {

might still be necessary to ensure it doesn't break when loading files too early before WP core, which happens in some scenarios.

*
* @return void
*/
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is no longer necessary. I think we could copy the latest version directly from WP core.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I copied the last version directly from core as suggested 👍

@gziologziolo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is one feedback to consider, but otherwise this looks great. Thank you for taking care of it!

@jorgefilipecosta
jorgefilipecosta merged commit 9899991 into trunkOct 27, 2025
22 of 23 checks passed
@jorgefilipecosta
jorgefilipecosta deleted the update/simplify-core-abilties-registration branch October 27, 2025 13:53
@jorgefilipecosta

Copy link
Copy Markdown
MemberAuthor

Thank you a lot for the review @gziolo, if required I will follow up with enhancements 👍

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

[Type] BugSomething isn't working

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants

@jorgefilipecosta@gziolo
, '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
This repository was archived by the owner on Feb 5, 2026. It is now read-only.

Update: Simplify core abilties registration in preparation for core patch. - #128

Merged
jorgefilipecosta merged 9 commits into
trunkfrom
update/simplify-core-abilties-registration
Oct 27, 2025
Merged

Update: Simplify core abilties registration in preparation for core patch.#128
jorgefilipecosta merged 9 commits into
trunkfrom
update/simplify-core-abilties-registration

Conversation

@jorgefilipecosta

Copy link
Copy Markdown
Member

This PR applies feedback provided in #108, by @aaronjorbin as a preparation for the core patch.

Testing

Verify automated testing pass.
Oppenened the editor, and the browser console, made some test requests:

wp.apiFetch({ path: wp.url.addQueryArgs('/wp/v2/abilities/core/get-site-info/run', { fields:[ 'name' ] } ) } ).then(console.log);
wp.apiFetch({ path: wp.url.addQueryArgs('/wp/v2/abilities/core/get-site-info/run', {input: { fields:[ 'name' ] } } ) } ).then(console.log);

Verified things return as expected.

@github-actions

github-actionsBot commented Oct 23, 2025

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: jorgefilipecosta <jorgefilipecosta@git.wordpress.org>
Co-authored-by: gziolo <gziolo@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@codecov

codecovBot commented Oct 23, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 98.15668% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 90.47%. Comparing base (4513526) to head (c260793).
⚠️ Report is 1 commits behind head on trunk.

Files with missing linesPatch %Lines
includes/bootstrap.php0.00%4 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## trunk #128 +/- ##
============================================
- Coverage 90.57% 90.47% -0.10% + Complexity 188 177 -11 
============================================
Files 20 20 Lines 1485 1470 -15 Branches 120 120 ============================================
- Hits 1345 1330 -15 
Misses 140 140 
FlagCoverage Δ
javascript94.31% <ø> (ø)
unit89.34% <98.15%> (-0.14%)⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 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.

Comment threadincludes/bootstrap.php Outdated
@gziolo

Copy link
Copy Markdown
Member

It looks like we need to land #126 first so CI job running against WP core trunk don't fail anymore.

@jorgefilipecosta

Copy link
Copy Markdown
MemberAuthor

It looks like we need to land #126 first so CI job running against WP core trunk don't fail anymore.

Reviewing #126, I think this and #126 should be merged soon so then I can follow up with further syncs from core.

@gziolo

Copy link
Copy Markdown
Member

This will require a rebase with trunk now. We might need a better mechanism that detects whether these ability categories and abilities haven't been registered earlier, as now that happens automatically in WP core trunk.

@jorgefilipecosta
jorgefilipecostaforce-pushed the update/simplify-core-abilties-registration branch from 73161fb to ff2624aCompareOctober 27, 2025 12:31
if ( function_exists( 'add_action' ) ) {
add_action( 'wp_abilities_api_categories_init', array( 'WP_Core_Abilities', 'register_category' ) );
add_action( 'wp_abilities_api_init', array( 'WP_Core_Abilities', 'register' ) );
add_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' );

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be possible to simplify all the conditions used with a simple (and remove PHPCS exception):

if ( has_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' ) {

The same for another action.

@jorgefilipecostajorgefilipecostaOct 27, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @gziolo, you mean just something like as top level code without any other condition?
if ( ! has_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' ) ) {
add_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' );
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's the common pattern used in the Gutenberg plugin. The wrapping:

if ( function_exists( 'has_action' ) ) {

might still be necessary to ensure it doesn't break when loading files too early before WP core, which happens in some scenarios.

*
* @return void
*/
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is no longer necessary. I think we could copy the latest version directly from WP core.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I copied the last version directly from core as suggested 👍

@gziologziolo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is one feedback to consider, but otherwise this looks great. Thank you for taking care of it!

@jorgefilipecosta
jorgefilipecosta merged commit 9899991 into trunkOct 27, 2025
22 of 23 checks passed
@jorgefilipecosta
jorgefilipecosta deleted the update/simplify-core-abilties-registration branch October 27, 2025 13:53
@jorgefilipecosta

Copy link
Copy Markdown
MemberAuthor

Thank you a lot for the review @gziolo, if required I will follow up with enhancements 👍

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

[Type] BugSomething isn't working

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants

@jorgefilipecosta@gziolo