Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Block editor: iframe: add enqueue_block_assets #49655

Merged
merged 12 commits into from
Apr 26, 2023
Merged

Conversation

ellatrix
Copy link
Member

@ellatrix ellatrix commented Apr 7, 2023

What?

Should be able to fix: #41821, #44945.

Enqueues styles and scripts added though the enqueue_block_assets action (which is for editor and front-end assets1).
Introduces another action enqueue_block_editor_content_assets for cases where we want to enqueue scripts/styles for the (iframed) editor content, but not for the front-end.

Why?

We need more ways to enqueue scripts and styles. Currently there’s 3 ways to add styles: block.json (for blocks), add_editor_style (for themes) and block editor settings (CSS as a string, which is not easy to use). Scripts can only be added through block.json.

It makes sense to enqueue assets loaded on the front-end in the editor content (iframe) too.

In addition, we need a way to add assets for the editor content (iframe), but without enqueuing on the front-end. We currently have an unstable way of doing this in Gutenberg. This PR adds the enqueue_block_editor_content_assets so there's an official way of doing it. For example, we need this action for adding content styles in the block editor package, and the wp-components dependency.

Another good thing is that this simplifies the _wp_get_iframed_editor_assets function.

How?

To put it another way: we are currently hardcoding a bunch of dependency handles in _wp_get_iframed_editor_assets, which can be replaced by calling do_action( 'enqueue_block_assets' ) and do_action( 'enqueue_block_editor_content_assets' ).

Testing Instructions

There should be no missing styles in the editor content (iframe).

Testing Instructions for Keyboard

n/a

Screenshots or screencast

@ellatrix ellatrix requested a review from spacedmonkey as a code owner April 7, 2023 11:48
@github-actions
Copy link

github-actions bot commented Apr 7, 2023

Flaky tests detected in 4cb3181.
Some tests passed with failed attempts. The failures may not be related to this commit but are still reported for visibility. See the documentation for more information.

🔍 Workflow run URL: https://github.com/WordPress/gutenberg/actions/runs/4800287624
📝 Reported issues:

@ellatrix ellatrix added [Type] Plugin Interoperability Incompatibilities between a specific plugin and the block editor. Close with workaround notes. [Package] Block editor /packages/block-editor [Type] New API New API to be used by plugin developers or package users. Developer Experience Ideas about improving block and theme developer experience labels Apr 7, 2023
@ellatrix ellatrix force-pushed the fix/iframe-enqueuing branch from 22f3898 to 9b27075 Compare April 11, 2023 07:29
@oandregal oandregal self-requested a review April 19, 2023 11:08
@ellatrix ellatrix force-pushed the fix/iframe-enqueuing branch from 9b27075 to 75ae529 Compare April 24, 2023 12:06
@ellatrix ellatrix removed the [Type] New API New API to be used by plugin developers or package users. label Apr 24, 2023
@ellatrix
Copy link
Member Author

Ok, I removed the api addition for now and we'll do it in a separate PR.

@oandregal
Copy link
Member

oandregal commented Apr 24, 2023

Documenting what I've learned by looking at the current state of things at trunk.

Mechanism to load assets via block.json and hooks:

Editor (with iframe) Editor (without iframe) Front-end
block.json
editorStyle x (in root doc & iframe) x -
style x (in root doc & iframe) x x
editorScript x (in root doc) x -
script x (in root doc & iframe) x x
viewScript - - x
hooks
enqueue_block_assets Assets present in the root document. CSS in the iframe: only if .wp-block-* present. JS in iframe: no. x x
enqueue_block_editor_assets Assets present in the root document. CSS in the iframe: only if .wp-block-* present. JS in iframe: no. x

How block.json and hooks compare to each other:

block.json hooks Status
editorStyle enqueue_block_editor_assets + wp_enqueue_style Behave differently. Hooks in iframe only enqueue CSS if .wp-block-* present while block.json always does.
style enqueue_block_assets + wp_enqueue_style Behave differently. Hooks in iframe only enqueue CSS if .wp-block-* present while block.json always does.
editorScript enqueue_block_editor_assets + wp_enqueue_script Same behavior. No JS enqueued.
script enqueue_block_assets + wp_enqueue_script Behave differently. Hooks in iframe do not enqueue JS while block.json always does.
viewScript Any exsting hook that only enqueues to the front?

$wp_scripts = $current_wp_scripts;

return array(
'styles' => $styles,
Copy link
Member

Choose a reason for hiding this comment

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

Documenting how we fill this array in core:

  • styles
    • wp-polyfill
    • for all registered blocks: the $script_handles (script asset from block.json as well as any other registered by other means)
    • all the dependencies of the previous two items (automatically resolved by wp_scripts->do_items)
  • scripts
    • wp-edit-blocks
    • wp-block-library-theme if theme supports wp-block-styles but hasn't provided any
    • wp-widgets and wp-edit-widgets for the widgets editor
    • for all registered blocks: the $style_handles and $editor_style_handles (style and editorStyles assets from block.json respectively, as well as any other registered by other means)
    • all the dependencies of the previous items (automatically resolved by wp_styles->do_items
    • wp-reset-editor-styles: avoid enqueuing it in the iframe by adding it to the done queue, so it's ignored

Copy link
Member Author

Choose a reason for hiding this comment

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

All of this should be covered, except the widgets stuff as the iframe is not being used there right now. wp-reset-editor-styles is not added.

Copy link
Member

Choose a reason for hiding this comment

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

I've looked at the assets loaded in the iframe for the post editor using the TwentyTwentyThree theme.

Extra things this PR has that are not present in trunk:

  • The assets added via enqueue_block_assets. This is correct. I've used this test plugin:
    • enqueue_block_assets_style_body is for styles without a .wp-block class
    • enqueue_block_assets_style_wp_block is for styles with .wp-block class
  • The inline styles for emojis, which are not present in trunk. Are these necessary?

Things this PR misses that are present in trunk:

  • wp-reusable-blocks. I'm a bit surprised about this. It should have been present because it's a dependency of wp-edit-blocks, which is enqueued. The same issue happens with wp-components and we had to declare it as a dependency of wp-block-editor-content for it to be enqueued. It sounds like all dependencies of wp-edit-blocks are missing. Any ideas why would this happen? 🤔
  • wp-fonts-local. It sounds like these are fonts defined by the theme.
Post Editor Assets Trunk This PR
html.height.auto, body.margin.0 (inline) x x
img.wp-smiley, img.emoji (inline) x
dashicons-css x x
wp-components-css x x
wp-block-editor-content-css x x
wp-block-library-css x x
wp-edit-blocks-css x x
wp-reusable-blocks-css x
wp-fonts-local (inline) x
enqueue_block_assets_style_body-css x
enqueue_block_assets_style_wp_block-css x x
enqueue_block_editor_assets_style_wp_block-css x x
wp-inert-polyfill-js x x
enqueue_block_assets_script_console-js x
enqueue_block_assets_wp_api-js x
wp-polyfill-inert-js x x
regenerator-runtime-js x x
wp-polyfill-js x x

Copy link
Member Author

Choose a reason for hiding this comment

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

wp-reusable-blocks is not there because wp-edit-blocks is added through the compat layer. We need to change wp-edit-blocks in a follow up PR so it's not added anymore. wp-reusable-blocks does not contain any styles relevant to the editor content.

wp-fonts-local this is not present in core either. Looks like these are added in the 6.2, but not added to WP core. I don't know why. Since they are not present in core I don't think it's a big deal (see lib/compat/wordpress-6.2/script-loader.php)

Copy link
Member

Choose a reason for hiding this comment

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

wp-reusable-blocks is not there because wp-edit-blocks is added through the compat layer.

I just checked and that's correct! It can be iterated in a follow-up.

img.wp-smiley, img.emoji (inline)

This is also enqueued in the front, so it's expected.

enqueue_block_assets_style_body-css, enqueue_block_assets_script_console-js, enqueue_block_assets_wp_api-js

What we aimed to get with this PR.

@ellatrix ellatrix force-pushed the fix/iframe-enqueuing branch from 62b0103 to e81da56 Compare April 25, 2023 05:45
@github-actions
Copy link

github-actions bot commented Apr 25, 2023

Size Change: +2.74 kB (0%)

Total Size: 1.37 MB

Filename Size Change
build/block-editor/index.min.js 201 kB -8 B (0%)
build/block-library/blocks/site-logo/editor-rtl.css 756 B +267 B (+55%) 🆘
build/block-library/blocks/site-logo/editor.css 756 B +267 B (+55%) 🆘
build/block-library/editor-rtl.css 11.8 kB +245 B (+2%)
build/block-library/editor.css 11.8 kB +247 B (+2%)
build/block-library/index.min.js 204 kB +489 B (0%)
build/components/index.min.js 210 kB +1.04 kB (0%)
build/components/style-rtl.css 11.8 kB +9 B (0%)
build/components/style.css 11.8 kB +4 B (0%)
build/edit-post/style-rtl.css 7.84 kB +3 B (0%)
build/edit-post/style.css 7.83 kB +3 B (0%)
build/edit-site/index.min.js 64.8 kB +277 B (0%)
build/edit-site/style-rtl.css 10.2 kB -53 B (-1%)
build/edit-site/style.css 10.2 kB -53 B (-1%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 993 B
build/annotations/index.min.js 2.78 kB
build/api-fetch/index.min.js 2.27 kB
build/autop/index.min.js 2.15 kB
build/blob/index.min.js 483 B
build/block-directory/index.min.js 7.2 kB
build/block-directory/style-rtl.css 1.04 kB
build/block-directory/style.css 1.04 kB
build/block-editor/content-rtl.css 4.17 kB
build/block-editor/content.css 4.17 kB
build/block-editor/default-editor-styles-rtl.css 403 B
build/block-editor/default-editor-styles.css 403 B
build/block-editor/style-rtl.css 15.1 kB
build/block-editor/style.css 15.1 kB
build/block-library/blocks/archives/editor-rtl.css 61 B
build/block-library/blocks/archives/editor.css 60 B
build/block-library/blocks/archives/style-rtl.css 90 B
build/block-library/blocks/archives/style.css 90 B
build/block-library/blocks/audio/editor-rtl.css 150 B
build/block-library/blocks/audio/editor.css 150 B
build/block-library/blocks/audio/style-rtl.css 122 B
build/block-library/blocks/audio/style.css 122 B
build/block-library/blocks/audio/theme-rtl.css 138 B
build/block-library/blocks/audio/theme.css 138 B
build/block-library/blocks/avatar/editor-rtl.css 116 B
build/block-library/blocks/avatar/editor.css 116 B
build/block-library/blocks/avatar/style-rtl.css 91 B
build/block-library/blocks/avatar/style.css 91 B
build/block-library/blocks/block/editor-rtl.css 305 B
build/block-library/blocks/block/editor.css 305 B
build/block-library/blocks/button/editor-rtl.css 587 B
build/block-library/blocks/button/editor.css 587 B
build/block-library/blocks/button/style-rtl.css 628 B
build/block-library/blocks/button/style.css 627 B
build/block-library/blocks/buttons/editor-rtl.css 337 B
build/block-library/blocks/buttons/editor.css 337 B
build/block-library/blocks/buttons/style-rtl.css 332 B
build/block-library/blocks/buttons/style.css 332 B
build/block-library/blocks/calendar/style-rtl.css 239 B
build/block-library/blocks/calendar/style.css 239 B
build/block-library/blocks/categories/editor-rtl.css 113 B
build/block-library/blocks/categories/editor.css 112 B
build/block-library/blocks/categories/style-rtl.css 124 B
build/block-library/blocks/categories/style.css 124 B
build/block-library/blocks/code/editor-rtl.css 53 B
build/block-library/blocks/code/editor.css 53 B
build/block-library/blocks/code/style-rtl.css 121 B
build/block-library/blocks/code/style.css 121 B
build/block-library/blocks/code/theme-rtl.css 124 B
build/block-library/blocks/code/theme.css 124 B
build/block-library/blocks/columns/editor-rtl.css 108 B
build/block-library/blocks/columns/editor.css 108 B
build/block-library/blocks/columns/style-rtl.css 409 B
build/block-library/blocks/columns/style.css 409 B
build/block-library/blocks/comment-author-avatar/editor-rtl.css 125 B
build/block-library/blocks/comment-author-avatar/editor.css 125 B
build/block-library/blocks/comment-content/style-rtl.css 92 B
build/block-library/blocks/comment-content/style.css 92 B
build/block-library/blocks/comment-template/style-rtl.css 199 B
build/block-library/blocks/comment-template/style.css 198 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 123 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 222 B
build/block-library/blocks/comments-pagination/editor.css 209 B
build/block-library/blocks/comments-pagination/style-rtl.css 235 B
build/block-library/blocks/comments-pagination/style.css 231 B
build/block-library/blocks/comments-title/editor-rtl.css 75 B
build/block-library/blocks/comments-title/editor.css 75 B
build/block-library/blocks/comments/editor-rtl.css 840 B
build/block-library/blocks/comments/editor.css 839 B
build/block-library/blocks/comments/style-rtl.css 637 B
build/block-library/blocks/comments/style.css 636 B
build/block-library/blocks/cover/editor-rtl.css 647 B
build/block-library/blocks/cover/editor.css 650 B
build/block-library/blocks/cover/style-rtl.css 1.6 kB
build/block-library/blocks/cover/style.css 1.59 kB
build/block-library/blocks/details-summary/editor-rtl.css 65 B
build/block-library/blocks/details-summary/editor.css 65 B
build/block-library/blocks/details-summary/style-rtl.css 61 B
build/block-library/blocks/details-summary/style.css 61 B
build/block-library/blocks/details/style-rtl.css 54 B
build/block-library/blocks/details/style.css 54 B
build/block-library/blocks/embed/editor-rtl.css 293 B
build/block-library/blocks/embed/editor.css 293 B
build/block-library/blocks/embed/style-rtl.css 410 B
build/block-library/blocks/embed/style.css 410 B
build/block-library/blocks/embed/theme-rtl.css 138 B
build/block-library/blocks/embed/theme.css 138 B
build/block-library/blocks/file/editor-rtl.css 300 B
build/block-library/blocks/file/editor.css 300 B
build/block-library/blocks/file/style-rtl.css 269 B
build/block-library/blocks/file/style.css 270 B
build/block-library/blocks/file/view.min.js 353 B
build/block-library/blocks/freeform/editor-rtl.css 2.44 kB
build/block-library/blocks/freeform/editor.css 2.44 kB
build/block-library/blocks/gallery/editor-rtl.css 984 B
build/block-library/blocks/gallery/editor.css 988 B
build/block-library/blocks/gallery/style-rtl.css 1.55 kB
build/block-library/blocks/gallery/style.css 1.55 kB
build/block-library/blocks/gallery/theme-rtl.css 122 B
build/block-library/blocks/gallery/theme.css 122 B
build/block-library/blocks/group/editor-rtl.css 654 B
build/block-library/blocks/group/editor.css 654 B
build/block-library/blocks/group/style-rtl.css 57 B
build/block-library/blocks/group/style.css 57 B
build/block-library/blocks/group/theme-rtl.css 78 B
build/block-library/blocks/group/theme.css 78 B
build/block-library/blocks/heading/style-rtl.css 76 B
build/block-library/blocks/heading/style.css 76 B
build/block-library/blocks/html/editor-rtl.css 340 B
build/block-library/blocks/html/editor.css 341 B
build/block-library/blocks/image/editor-rtl.css 834 B
build/block-library/blocks/image/editor.css 833 B
build/block-library/blocks/image/style-rtl.css 652 B
build/block-library/blocks/image/style.css 652 B
build/block-library/blocks/image/theme-rtl.css 137 B
build/block-library/blocks/image/theme.css 137 B
build/block-library/blocks/latest-comments/style-rtl.css 357 B
build/block-library/blocks/latest-comments/style.css 357 B
build/block-library/blocks/latest-posts/editor-rtl.css 213 B
build/block-library/blocks/latest-posts/editor.css 212 B
build/block-library/blocks/latest-posts/style-rtl.css 478 B
build/block-library/blocks/latest-posts/style.css 478 B
build/block-library/blocks/list/style-rtl.css 88 B
build/block-library/blocks/list/style.css 88 B
build/block-library/blocks/media-text/editor-rtl.css 266 B
build/block-library/blocks/media-text/editor.css 263 B
build/block-library/blocks/media-text/style-rtl.css 507 B
build/block-library/blocks/media-text/style.css 505 B
build/block-library/blocks/more/editor-rtl.css 431 B
build/block-library/blocks/more/editor.css 431 B
build/block-library/blocks/navigation-link/editor-rtl.css 716 B
build/block-library/blocks/navigation-link/editor.css 715 B
build/block-library/blocks/navigation-link/style-rtl.css 115 B
build/block-library/blocks/navigation-link/style.css 115 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 299 B
build/block-library/blocks/navigation-submenu/editor.css 299 B
build/block-library/blocks/navigation/editor-rtl.css 2.13 kB
build/block-library/blocks/navigation/editor.css 2.14 kB
build/block-library/blocks/navigation/style-rtl.css 2.22 kB
build/block-library/blocks/navigation/style.css 2.21 kB
build/block-library/blocks/navigation/view-modal.min.js 2.81 kB
build/block-library/blocks/navigation/view.min.js 447 B
build/block-library/blocks/nextpage/editor-rtl.css 395 B
build/block-library/blocks/nextpage/editor.css 395 B
build/block-library/blocks/page-list/editor-rtl.css 401 B
build/block-library/blocks/page-list/editor.css 401 B
build/block-library/blocks/page-list/style-rtl.css 175 B
build/block-library/blocks/page-list/style.css 175 B
build/block-library/blocks/paragraph/editor-rtl.css 174 B
build/block-library/blocks/paragraph/editor.css 174 B
build/block-library/blocks/paragraph/style-rtl.css 279 B
build/block-library/blocks/paragraph/style.css 281 B
build/block-library/blocks/post-author/style-rtl.css 175 B
build/block-library/blocks/post-author/style.css 176 B
build/block-library/blocks/post-comments-form/editor-rtl.css 96 B
build/block-library/blocks/post-comments-form/editor.css 96 B
build/block-library/blocks/post-comments-form/style-rtl.css 501 B
build/block-library/blocks/post-comments-form/style.css 501 B
build/block-library/blocks/post-date/style-rtl.css 61 B
build/block-library/blocks/post-date/style.css 61 B
build/block-library/blocks/post-excerpt/editor-rtl.css 71 B
build/block-library/blocks/post-excerpt/editor.css 71 B
build/block-library/blocks/post-excerpt/style-rtl.css 141 B
build/block-library/blocks/post-excerpt/style.css 141 B
build/block-library/blocks/post-featured-image/editor-rtl.css 588 B
build/block-library/blocks/post-featured-image/editor.css 586 B
build/block-library/blocks/post-featured-image/style-rtl.css 322 B
build/block-library/blocks/post-featured-image/style.css 322 B
build/block-library/blocks/post-navigation-link/style-rtl.css 153 B
build/block-library/blocks/post-navigation-link/style.css 153 B
build/block-library/blocks/post-template/editor-rtl.css 99 B
build/block-library/blocks/post-template/editor.css 98 B
build/block-library/blocks/post-template/style-rtl.css 281 B
build/block-library/blocks/post-template/style.css 281 B
build/block-library/blocks/post-terms/style-rtl.css 96 B
build/block-library/blocks/post-terms/style.css 96 B
build/block-library/blocks/post-time-to-read/style-rtl.css 69 B
build/block-library/blocks/post-time-to-read/style.css 69 B
build/block-library/blocks/post-title/style-rtl.css 100 B
build/block-library/blocks/post-title/style.css 100 B
build/block-library/blocks/preformatted/style-rtl.css 103 B
build/block-library/blocks/preformatted/style.css 103 B
build/block-library/blocks/pullquote/editor-rtl.css 135 B
build/block-library/blocks/pullquote/editor.css 135 B
build/block-library/blocks/pullquote/style-rtl.css 335 B
build/block-library/blocks/pullquote/style.css 335 B
build/block-library/blocks/pullquote/theme-rtl.css 167 B
build/block-library/blocks/pullquote/theme.css 167 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/query-pagination-numbers/editor.css 121 B
build/block-library/blocks/query-pagination/editor-rtl.css 221 B
build/block-library/blocks/query-pagination/editor.css 211 B
build/block-library/blocks/query-pagination/style-rtl.css 288 B
build/block-library/blocks/query-pagination/style.css 284 B
build/block-library/blocks/query-title/style-rtl.css 63 B
build/block-library/blocks/query-title/style.css 63 B
build/block-library/blocks/query/editor-rtl.css 450 B
build/block-library/blocks/query/editor.css 449 B
build/block-library/blocks/quote/style-rtl.css 222 B
build/block-library/blocks/quote/style.css 222 B
build/block-library/blocks/quote/theme-rtl.css 223 B
build/block-library/blocks/quote/theme.css 226 B
build/block-library/blocks/read-more/style-rtl.css 132 B
build/block-library/blocks/read-more/style.css 132 B
build/block-library/blocks/rss/editor-rtl.css 149 B
build/block-library/blocks/rss/editor.css 149 B
build/block-library/blocks/rss/style-rtl.css 289 B
build/block-library/blocks/rss/style.css 288 B
build/block-library/blocks/search/editor-rtl.css 165 B
build/block-library/blocks/search/editor.css 165 B
build/block-library/blocks/search/style-rtl.css 408 B
build/block-library/blocks/search/style.css 406 B
build/block-library/blocks/search/theme-rtl.css 114 B
build/block-library/blocks/search/theme.css 114 B
build/block-library/blocks/separator/editor-rtl.css 146 B
build/block-library/blocks/separator/editor.css 146 B
build/block-library/blocks/separator/style-rtl.css 234 B
build/block-library/blocks/separator/style.css 234 B
build/block-library/blocks/separator/theme-rtl.css 194 B
build/block-library/blocks/separator/theme.css 194 B
build/block-library/blocks/shortcode/editor-rtl.css 329 B
build/block-library/blocks/shortcode/editor.css 329 B
build/block-library/blocks/site-logo/style-rtl.css 203 B
build/block-library/blocks/site-logo/style.css 203 B
build/block-library/blocks/site-tagline/editor-rtl.css 86 B
build/block-library/blocks/site-tagline/editor.css 86 B
build/block-library/blocks/site-title/editor-rtl.css 116 B
build/block-library/blocks/site-title/editor.css 116 B
build/block-library/blocks/site-title/style-rtl.css 57 B
build/block-library/blocks/site-title/style.css 57 B
build/block-library/blocks/social-link/editor-rtl.css 184 B
build/block-library/blocks/social-link/editor.css 184 B
build/block-library/blocks/social-links/editor-rtl.css 674 B
build/block-library/blocks/social-links/editor.css 673 B
build/block-library/blocks/social-links/style-rtl.css 1.4 kB
build/block-library/blocks/social-links/style.css 1.39 kB
build/block-library/blocks/spacer/editor-rtl.css 359 B
build/block-library/blocks/spacer/editor.css 359 B
build/block-library/blocks/spacer/style-rtl.css 48 B
build/block-library/blocks/spacer/style.css 48 B
build/block-library/blocks/table/editor-rtl.css 433 B
build/block-library/blocks/table/editor.css 433 B
build/block-library/blocks/table/style-rtl.css 651 B
build/block-library/blocks/table/style.css 650 B
build/block-library/blocks/table/theme-rtl.css 157 B
build/block-library/blocks/table/theme.css 157 B
build/block-library/blocks/tag-cloud/style-rtl.css 251 B
build/block-library/blocks/tag-cloud/style.css 253 B
build/block-library/blocks/template-part/editor-rtl.css 403 B
build/block-library/blocks/template-part/editor.css 403 B
build/block-library/blocks/template-part/theme-rtl.css 101 B
build/block-library/blocks/template-part/theme.css 101 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B
build/block-library/blocks/text-columns/editor.css 95 B
build/block-library/blocks/text-columns/style-rtl.css 166 B
build/block-library/blocks/text-columns/style.css 166 B
build/block-library/blocks/verse/style-rtl.css 99 B
build/block-library/blocks/verse/style.css 99 B
build/block-library/blocks/video/editor-rtl.css 552 B
build/block-library/blocks/video/editor.css 555 B
build/block-library/blocks/video/style-rtl.css 179 B
build/block-library/blocks/video/style.css 179 B
build/block-library/blocks/video/theme-rtl.css 139 B
build/block-library/blocks/video/theme.css 139 B
build/block-library/classic-rtl.css 179 B
build/block-library/classic.css 179 B
build/block-library/common-rtl.css 1.12 kB
build/block-library/common.css 1.12 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/reset-rtl.css 478 B
build/block-library/reset.css 478 B
build/block-library/style-rtl.css 12.8 kB
build/block-library/style.css 12.8 kB
build/block-library/theme-rtl.css 698 B
build/block-library/theme.css 703 B
build/block-serialization-default-parser/index.min.js 1.13 kB
build/block-serialization-spec-parser/index.min.js 2.83 kB
build/blocks/index.min.js 51.1 kB
build/commands/index.min.js 14.8 kB
build/commands/style-rtl.css 789 B
build/commands/style.css 786 B
build/compose/index.min.js 12.4 kB
build/core-data/index.min.js 16.3 kB
build/customize-widgets/index.min.js 12.2 kB
build/customize-widgets/style-rtl.css 1.41 kB
build/customize-widgets/style.css 1.41 kB
build/data-controls/index.min.js 718 B
build/data/index.min.js 8.68 kB
build/date/index.min.js 40.4 kB
build/deprecated/index.min.js 518 B
build/dom-ready/index.min.js 336 B
build/dom/index.min.js 4.76 kB
build/edit-post/classic-rtl.css 571 B
build/edit-post/classic.css 571 B
build/edit-post/index.min.js 35.2 kB
build/edit-widgets/index.min.js 17.3 kB
build/edit-widgets/style-rtl.css 4.56 kB
build/edit-widgets/style.css 4.56 kB
build/editor/index.min.js 45.9 kB
build/editor/style-rtl.css 3.49 kB
build/editor/style.css 3.48 kB
build/element/index.min.js 4.95 kB
build/escape-html/index.min.js 548 B
build/format-library/index.min.js 7.26 kB
build/format-library/style-rtl.css 557 B
build/format-library/style.css 556 B
build/hooks/index.min.js 1.66 kB
build/html-entities/index.min.js 454 B
build/i18n/index.min.js 3.79 kB
build/is-shallow-equal/index.min.js 535 B
build/keyboard-shortcuts/index.min.js 1.79 kB
build/keycodes/index.min.js 1.94 kB
build/list-reusable-blocks/index.min.js 2.14 kB
build/list-reusable-blocks/style-rtl.css 865 B
build/list-reusable-blocks/style.css 865 B
build/media-utils/index.min.js 2.99 kB
build/notices/index.min.js 977 B
build/plugins/index.min.js 1.94 kB
build/preferences-persistence/index.min.js 2.23 kB
build/preferences/index.min.js 1.35 kB
build/primitives/index.min.js 960 B
build/priority-queue/index.min.js 1.52 kB
build/private-apis/index.min.js 942 B
build/react-i18n/index.min.js 702 B
build/react-refresh-entry/index.min.js 8.44 kB
build/react-refresh-runtime/index.min.js 7.31 kB
build/redux-routine/index.min.js 2.75 kB
build/reusable-blocks/index.min.js 2.26 kB
build/reusable-blocks/style-rtl.css 265 B
build/reusable-blocks/style.css 265 B
build/rich-text/index.min.js 11.1 kB
build/server-side-render/index.min.js 2.09 kB
build/shortcode/index.min.js 1.52 kB
build/style-engine/index.min.js 1.55 kB
build/token-list/index.min.js 650 B
build/url/index.min.js 3.74 kB
build/vendors/inert-polyfill.min.js 2.48 kB
build/vendors/react-dom.min.js 41.8 kB
build/vendors/react.min.js 4.02 kB
build/viewport/index.min.js 1.09 kB
build/warning/index.min.js 280 B
build/widgets/index.min.js 7.3 kB
build/widgets/style-rtl.css 1.18 kB
build/widgets/style.css 1.18 kB
build/wordcount/index.min.js 1.06 kB

compressed-size-action


ob_start();
wp_print_styles();
wp_print_fonts();
Copy link
Contributor

@arthur791004 arthur791004 May 5, 2023

Choose a reason for hiding this comment

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

There is an issue using wp_print_fonts since it will do nothing if the handles are empty.

Before, Gutenberg assigned the registered fonts to the queue so $wp_fonts can fallback to the handles in the queue. However, this function doesn't implement that mechanism and it leads to the font styles won't be printed

For example,

  1. Activate TT3 on your site
  2. Go to the site editor
  3. Select Styles > Typography > Text
  4. Try different fonts, e.g. Arvo, Bodoni Moda
  5. The selected font is not affected

Copy link
Member Author

Choose a reason for hiding this comment

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

Copy link
Contributor

Choose a reason for hiding this comment

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

Is this fixed now since #49655 (comment)? Thanks for looking into it!

@ellatrix Yes, it is fixed via PR #49655. That change was cherry-picked for 15.7.1, which will be released today.

/**
* Collect the block editor assets that need to be loaded into the editor's iframe.
*
* @since 6.0.0
Copy link
Contributor

Choose a reason for hiding this comment

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

Shouldn't this be 6.3.0?

Copy link
Member Author

Choose a reason for hiding this comment

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

This would be replacing the core function, which was introduced in 6.0.0?

@ellatrix
Copy link
Member Author

ellatrix commented May 9, 2023

@tyxla Could you open a new issue with the steps to reproduce? I opened the site editor and didn't see any errors.

@ellatrix
Copy link
Member Author

ellatrix commented May 9, 2023

Is there a special reason why we haven't been able to load any assets (not block related) for the iframe via the enqueue_block_editor_assets action so far?

enqueue_block_editor_assets should not be included in the iframe because that is used to enqueued many scripts that should either not be loaded twice.

This is why the PR introduced enqueue_block_editor_content_assets at first, but it looks like this will be for a separate PR. May I ask your use case?

@tyxla
Copy link
Member

tyxla commented May 9, 2023

@tyxla Could you open a new issue with the steps to reproduce? I opened the site editor and didn't see any errors.

This must have been something unrelated since I'm unable to reproduce it anymore. Will open a new issue if it comes up again. Thanks, Ella!

@CreativeDive
Copy link
Contributor

@ellatrix I noticed that using wp_localize_script() for the post editor iframe doesn't work. The extra script tag "<script id="my-script-name-extra"></script>" is empty and contains no variables. Everything works as expected without the iframe. Can you confirm this behavior?

@ramonjd
Copy link
Member

ramonjd commented Jun 26, 2023

@ellatrix @oandregal Does this need a 6.3 backport PR?

If not, we should move it to /lib/experimental

Thanks!

@ellatrix
Copy link
Member Author

ellatrix commented Jul 4, 2023

@CreativeDive I'll look into it!

@ellatrix
Copy link
Member Author

@CreativeDive Btw, this was fixed in #52405.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Developer Experience Ideas about improving block and theme developer experience Needs Dev Note Requires a developer note for a major WordPress release cycle [Package] Block editor /packages/block-editor [Type] Plugin Interoperability Incompatibilities between a specific plugin and the block editor. Close with workaround notes.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Blocks: enqueue_block_editor_assets not working with the editor's iframe
9 participants