2906 Commits

Author SHA1 Message Date
Joe McGill
d9a6440ca2 Upload: Fix upload failures of common text file types.
This adds some special case handling in 'wp_check_filetype_and_ext()' that prevents some common file types from being blocked based on mismatched MIME checks, which were made more strict in WordPress 5.0.1.

Merges [44438], [44439], [44441], and [44442] to the 4.9 branch.

Props Kloon, birgire, tellyworth, joemcgill.
See #45615.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@44443 602fd350-edb4-49c9-b593-d223f7449a82
2019-01-07 22:22:03 +00:00
Jonathan Desrosiers
f95257f204 General: Introduce wp_unique_id(), a PHP implementation of Underscore's uniqueId method.
A static variable contains an integer that is incremented with each call. This number is returned with the optional prefix.
As such the returned value is not universally unique, but it is unique across the life of the PHP process.

Props westonruter, dlh.

Merges [43658] and [44406] to the 5.0 branch.
See #44883.

git-svn-id: https://develop.svn.wordpress.org/branches/5.0@44407 602fd350-edb4-49c9-b593-d223f7449a82
2019-01-06 20:07:34 +00:00
Dominik Schilling (ocean90)
2acbb2a7e4 I18N/Script Loader: Support text domains other than "messages".
The inline JavaScript added by `WP_Scripts::print_translations()` should check whether `locale_data.$text_domain` exists and fall back to `locale_data.messages` otherwise.

Merge of [44403] to the 5.0 branch.

Props swissspidy.
Fixes #45441.

git-svn-id: https://develop.svn.wordpress.org/branches/5.0@44404 602fd350-edb4-49c9-b593-d223f7449a82
2019-01-06 17:05:24 +00:00
herregroen
902af362f8 I18N: Fix JavaScript translations for subdirectory installations.
Fixes the `load_script_textdomain` function not resolving the md5 hash based on the relative path for WordPress installations in a subdirectory. Also adds a filter to allow sites using CDNs or other alternative asset locations to filter the relative path resolution.

Props akirk, fierevere, swissspidy, mypacecreator, babaevan, tmatsuur, ocean90.
Fixes #45528.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@44209 602fd350-edb4-49c9-b593-d223f7449a82
2018-12-15 12:54:54 +00:00
Jeremy Felt
db9c4258f6 Media: Improve verification of MIME file types.
git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43988 602fd350-edb4-49c9-b593-d223f7449a82
2018-12-12 23:00:06 +00:00
Miguel Fonseca
81e0366e57 Update sidebars_widgets to match Twenty Nineteen's single widget area
* Also update the customizer tests to match it.

Props SergeyBiryukov, pento.



git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43954 602fd350-edb4-49c9-b593-d223f7449a82
2018-11-30 20:24:42 +00:00
Gary Pendergast
48500bf839 WPDB: Check that $wpdb->last_result is countable before counting with it.
`wpdb::get_col()` iterates over `$wpdb->last_result`, which can be a non-countable value, should the preceeding query have failed.

Props spacedmonkey, desrosj.
See #45299.



git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43934 602fd350-edb4-49c9-b593-d223f7449a82
2018-11-22 03:58:19 +00:00
Peter Wilson
e55da18ea2 Formatting: Revert pre-save filter adding rel="noopener".
Removes filters adding `rel="noopener"` to links targeting `_blank`.

Previous implementation could introduce blank `rel` attributes and could corrupt JSON data when saving via the customizer.

See #43187.
Reverts [43732] and [43733] from the 5.0 branch.



git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43930 602fd350-edb4-49c9-b593-d223f7449a82
2018-11-22 00:24:01 +00:00
Daniel Bachhuber
9ee7a34c9f REST API: Preserve unknown, respect null in server-side block rendering.
* Skips validation where there is no attribute definition, but keeps the attribute value. Previously, the attribute would be omitted from the attributes passed to `render_callback`. Notably, this resolves an issue where `render_callback` cannot receive a block's `align` and `customClassName` attribute values, since these are defined as a client-side filter.
* Validates `null` as a proper value in its own right. Previously, a client implementation of a block could track `{"attribute":null}` as an explicitly empty value, and the server would wrongly initiate defaulting behavior. The new behavior will now only populate a default value if the attribute is not defined at all, including when unset in its being invalid per the attribute schema.

Props aduth, noisysocks, youknowriad.
See #45145 for the patch, #45098 for the original ticket.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43918 602fd350-edb4-49c9-b593-d223f7449a82
2018-11-21 14:43:33 +00:00
Daniel Bachhuber
8ef1b05bfe REST API: Always include title.raw/content.raw for Blocks in context=view.
Demarcations for reusable blocks are always expected to be accessible by clients.

Props noisysocks, youknowriad.
See #45145 for the patch, #45098 for the original ticket.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43917 602fd350-edb4-49c9-b593-d223f7449a82
2018-11-21 14:34:09 +00:00
Daniel Bachhuber
9ea3656e1e REST API: Include fields with null schema in get_fields_for_response().
In [43736], we prevented rendering fields when not present in `?_fields=`. However, because `get_fields_for_response()` is dependent on `get_item_schema()`, any custom fields registered with a null schema would be incorrectly excluded from the response. Because the REST API permits a null schema for `register_rest_field()`, those fields should be included in the available fields for a response.

Fixes #45220.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43908 602fd350-edb4-49c9-b593-d223f7449a82
2018-11-19 14:09:07 +00:00
Gary Pendergast
3d4b1f1229 Tests: Update a test that relied on the Hello Dolly plugin version.
[43900] changed the plugin version, causing a unit test failure.

See #45345.



git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43902 602fd350-edb4-49c9-b593-d223f7449a82
2018-11-16 00:01:47 +00:00
Gary Pendergast
61ee6d9fa7 Nav Menus: Fix a PHP 7.3 error when switching themes.
When switching themes, `wp_map_nav_menu_locations()` is used to ensure nav menus are placed in the relevant menu location. Occasionally, menus are registered to locations with numeric slugs, rather than strings. `wp_map_nav_menu_locations()` assumed it would be the latter, and ran `stripos()` on those numeric slugs. This behaviour is deprecated in PHP 7.3.

As this is the last known PHP 7.3 incompatibility, this commit also removes PHP 7.3 from Travis' `allowed_failures` list.

Props desrosj, jorbin.
See #45018.



git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43899 602fd350-edb4-49c9-b593-d223f7449a82
2018-11-15 23:19:40 +00:00
herregroen
07736dc37c I18N: Fix warnings in JavaScript translations.
Fixes an undefined index PHP warning in the load_script_textdomain function and a non-interrupting JS error when registering a domain which has no translations.

Props omarreiss, ocean90, georgestephanis.
Fixes #45256.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43898 602fd350-edb4-49c9-b593-d223f7449a82
2018-11-15 14:36:39 +00:00
Daniel Bachhuber
4b791ecf5f REST API: Avoid using 'parent' as path argument name for autosaves.
When 'parent' is set as the path argument name, it gets passed down through to the `create_item()` method and can erroneously reset the 'parent' value on the post itself. Instead, we rename the argument to 'id' and replicate the revision controller's `get_items_permissions_check()` to instead reference 'id'.

Also ensures revision query params (of which there are many) aren't exposed as the query params for autosaves (of which there are two).

Props TimothyBlynJacobs.
See #43316.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43897 602fd350-edb4-49c9-b593-d223f7449a82
2018-11-15 12:56:54 +00:00
Gary Pendergast
26414eec37 Block Editor: Update @wordpress dependencies to the latest version.
Changes of note:
- Includes the new Annotations API package.
- `wp-polyfill-ecmascript.js` is renamed to `wp-polyfill.js`.
- `strip_dynamic_blocks()` has been removed in favour of `excerpt_remove_blocks()`.
- The PHP block parser is now syncing from the `block-serialization-default-parser` package.
- `do_blocks()` uses the new parser.
- The `do_block` filter has been removed from `do_blocks()`, in favour of a `render_block` filter in `render_block()`.

See #45145, #45190, #45264, #45282.



git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43884 602fd350-edb4-49c9-b593-d223f7449a82
2018-11-12 02:26:18 +00:00
Gary Pendergast
e2c2c1bd25 Tests: Fix a failing test after [43879].
See #45290.



git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43881 602fd350-edb4-49c9-b593-d223f7449a82
2018-11-09 08:55:50 +00:00
Gary Pendergast
55ccd0f2ee Formatting: Ensure wpautop() isn't run on content generated from blocks.
As `do_blocks()` is run before `wpautop()` in `the_content` filter, we can remove in a Just In Time fashion, before that filter is run.

After `wpautop()`s original priority has passed, we can re-add it in a Just Too Late fashion, to ensure it's available if `the_content` filter is run multiple times on a page load.

Props pento, nerrad.
Fixes #45290.



git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43879 602fd350-edb4-49c9-b593-d223f7449a82
2018-11-09 08:28:40 +00:00
herregroen
7138832595 I18N: Set translations for all WordPress packages scripts.
Calls `wp_set_script_translations` for all packages scripts that have translations. Also correctly sets the domain on the translations.

Props omarreiss, pento, ocean90.
Fixes #45161.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43878 602fd350-edb4-49c9-b593-d223f7449a82
2018-11-08 11:33:46 +00:00
Gary Pendergast
1f4c84c65d Tests: Skip symlinked theme file tests if the links could not be created, or if symlink() is not available
Merges [42812,42819] to the 5.0 branch.

Props SergeyBiryukov.
Fixes #43508.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43866 602fd350-edb4-49c9-b593-d223f7449a82
2018-11-05 02:46:14 +00:00
Daniel Bachhuber
a4b6ac656f REST API: Prevent duplicate firing of rest(_after)?_insert_attachment actions.
Props danielbachhuber, peterwilsoncc.
Fixes #45269.
See #42864.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43862 602fd350-edb4-49c9-b593-d223f7449a82
2018-11-03 14:13:16 +00:00
herregroen
c4bffce143 I18N: Improve JavaScript translation support.
Improves upon [43825] by adding unit tests to cover additional use-cases and changes loading translations to only occur when outputting the script to allow setting translations on dependencies.

Props atimmer, omarreiss, nerrad, swissspidy, ocean90.
Fixes #45103.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43859 602fd350-edb4-49c9-b593-d223f7449a82
2018-11-01 13:50:59 +00:00
Daniel Bachhuber
7818e29cc5 REST API: Fix array syntax after [43851].
I thought I was writing JavaScript. Alas.

See #45196.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43852 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-31 14:02:45 +00:00
Daniel Bachhuber
fcd9381149 REST API: Regenerate fixure schema after introduction of new endpoints.
This fixture schema ensures `wp-api-generated.js` doesn't change when running tests in local dev environments.

Fixes #45196.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43851 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-31 13:25:28 +00:00
Gary Pendergast
1a826d1f31 Tests: Fix failing unit tests caused by [43840].
See #45145.



git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43841 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-29 08:00:56 +00:00
Daniel Bachhuber
b5e73f7e7f Block Editor: Preload wp/v2/media with OPTIONS for caps check.
Also introduces a `block_editor_preload_paths` filter for plugins and themes to preload additional data.

Props imath, mattheu.
Fixes #45194.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43833 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-29 00:23:11 +00:00
Sergey Biryukov
845f569b46 Tests: Use DIR_TESTDATA in test_wp_set_script_translation().
`__DIR__` is not available in PHP 5.2.x.

See #45103.

git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43828 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-26 03:54:02 +00:00
herregroen
4f05bb81f6 I18N: Add JavaScript translation support.
Adds the `wp_set_script_translations` function which registers translations for a JavaScript file. This function takes a handle, domain and optionally a path and ensures JavaScript translation files are loaded if they exist.

Props atimmer, omarreiss, nerrad, swissspidy, ocean90.
Fixes #45103.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43825 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-25 13:59:51 +00:00
Aaron Jorbin
5a3ad21aeb php7.3 compatibility: Fix compact throwing notices
In PHP 7.3, the compact() function has been changed to issue an E_NOTICE level error if a passed string refers to an unset variable. In previous versions of PHP, this notice was silently skipped. The full RFC can be viewed here: https://wiki.php.net/rfc/compact

This fixes all unit tested code that uses compact.

Props desrosj.
Fixes #44416.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43819 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-24 16:32:29 +00:00
Gary Pendergast
52beb9c65d KSES: Allow the download attribute on <a> tags.
To avoid this being a vector for bypassing the filetypes that are allowed to be uploaded, this attribute is only allowed to be added without a value.

Props kalpshit, arshidkv12, welcher, peterwilsoncc, marina_wp, pento.
See #44724.



git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43813 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-24 01:18:38 +00:00
Gary Pendergast
2bfffb3e1c Styles: Add helper functions for loading block styles.
Blocks are able to register styles that used in the editor and the frontend, or only in the editor. These functions ensure the correct styles are loaded in the correct place.

See #45065.



git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43812 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-24 00:35:51 +00:00
Daniel Bachhuber
dfbe885115 Meta: Allow empty strings to be set by Custom Fields meta box.
Because the REST API allows meta keys to have empty values, the Custom Fields meta box should permit the same behavior.

Props charlestonsw, soulseekah.
Fixes #43559.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43811 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-23 18:55:45 +00:00
Daniel Bachhuber
8c0b678862 Embeds: Filter HTML response in oEmbed proxy controller.
Adapts the response from `WP_oEmbed_Controller::get_proxy_item()` so that the response is correctly filtered and embeds work properly in JavaSccript editors. Introduces new `get_oembed_response_data_for_url()` function for preparing internal oEmbed responses.

Props danielbachhuber, imath, swissspidy.
Fixes #45142. 


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43810 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-23 17:47:28 +00:00
Aaron Jorbin
51d04a18dc Bundled Theme: Make twentynineteen the default theme.
After [43808], we can now make twentynineteen the default theme. Twentyseventeen has been a great default, but 5.0 and twentynineteen is guten.

Fixes #45152.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43809 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-23 16:50:33 +00:00
Gary Pendergast
9811439172 REST API: Add endpoints for blocks.
`WP_REST_Block_Renderer_Controller` allows rendering of server-side rendered blocks, whilst `WP_REST_Blocks_Controller` allows retrieving of reusable blocks.

Props desrosj, danielbachhuber, pento.
See #45065.



git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43805 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-23 07:03:47 +00:00
Gary Pendergast
2b18dcdecd Blocks: Add the reusable block post type, wp_block.
See #45098.



git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43804 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-23 06:52:03 +00:00
Gary Pendergast
ff39bf3d68 Build: Update the @wordpress/editor package.
The `@wordpress/editor` wasn't upgraded to the correct version in [43789].

This commit includes changes from the `@wordpress/block-library` upgrade in [43789], that weren't copied to the correct location in core.

This also regenerates the `package-lock.json` in Linux, which the build server requires.

See #45145.



git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43801 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-23 05:34:43 +00:00
Daniel Bachhuber
443771e51b Themes: Introduce responsive embeds support.
Responsive embeds is a way for a theme to opt in to WordPress dynamically scaling the width/height of an embed. When a theme supports responsive embeds, a `wp-embed-responsive` class is added to the `<body>` tag. This information is also presented through the REST API for clients to respect.

Props desrosj.
Fixes #45125.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43790 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-22 19:57:07 +00:00
Gary Pendergast
91f1b57473 Script/Style Dependencies: Make sure that inline scripts for handles without a source are printed.
See [36550] for `WP_Styles`.

Merges [43565] to the 5.0 branch.

Props bpayton.
Fixes #44551.



git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43788 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-22 06:12:55 +00:00
Gary Pendergast
0dffb08553 KSES: Allow url() to be used in inline CSS.
The cover image block uses the `url()` function in its inline CSS, to show the cover image. KSES didn't allow this, causing the block to not save correctly for Author and Contributor users. As KSES does already check each attribute name against an allowed list, we're able to add an extra check for certain attributes to be able to use the `url()` function, too.

Props peterwilsoncc, azaozz, pento, dd32.
See #45067.



git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43781 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-22 04:03:07 +00:00
Sergey Biryukov
48ae93d41e REST API: Restore Autosaves controller test for multisite.
PHPUnit 3.6.x requires `exclude` and `file` paths to be relative to the checkout root.

PHPUnit 4.0.0+ requires the paths to be relative to the configuration file.

See #45131.

git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43774 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-20 04:20:58 +00:00
Daniel Bachhuber
7eeb2e599e REST API: Handle api-request query parameters with plain permalinks.
When constructing the request URL, ensure that `?` is replaced with `&` when the API root already contains a `?`. Fixes an issue where requests were broken when sites had permalinks set to plain.

Props aduth.
Merges [42965] to the 5.0 branch.
Fixes #42382.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43771 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-19 18:32:03 +00:00
Daniel Bachhuber
e9613346e6 REST API: Include block_version on Post content object.
The `block_version` denotes which version of Blocks the `post_content` contains. Introduces new `block_version()` function for versioning Blocks.

Props danielbachhuber, birgire.
Fixes #43887.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43770 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-19 17:57:38 +00:00
Daniel Bachhuber
523213aa06 REST API: Skip Autosaves controller test for multisite.
There's some PHP 5.2 (cough, cough) edge case where paths calculated differently, possibly caused by differing version of PHPUnit.

See #45132, #45131, #43316.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43769 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-19 14:08:12 +00:00
Daniel Bachhuber
ef67f4ad75 REST API: Introduce Autosaves controller and endpoint.
* Adds `WP_REST_Autosaves_Controller` which extends `WP_REST_Revisions_Controller`.
* Autosaves endpoint is registered for all post types except `attachment` because even post types without revisions enabled are expected to autosave.
* Because setting the `DOING_AUTOSAVE` constant pollutes the test suite, autosaves tests are run last. We may want to improve upon this later.

Props adamsilverstein, aduth, azaozz, danielbachhuber, rmccue.
Fixes #43316.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43768 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-19 13:48:42 +00:00
Daniel Bachhuber
e8eabb8583 REST API: Use a truly impossibly high number in User Controller tests.
The `100` number could be valid in certain test run configurations. The `REST_TESTS_IMPOSSIBLY_HIGH_NUMBER` constant is impossibly high for this very reason.

Fixes #45128.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43767 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-19 11:56:20 +00:00
Daniel Bachhuber
60b2d59358 REST API: Ensure rest_url() consistently has leading slash.
`rest_url()` inconsistent addes slashes to the passed path depending on whether the site has pretty permalinks enabled. Apart from being inconsistent, this also caused the unit tests to fail when pretty permalinks are enabled.

Props frank-klein.
Merges [42250] to the 5.0 branch.
Partially reverts [43720].
Fixes #42452. See #41451, #45017.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43766 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-19 11:13:57 +00:00
Gary Pendergast
88fbc8f35d REST API: Introduce the rest_preload_api_request() function.
This function helps perform multiple REST API requests, for the purpose of preloading data into a page.

See #45110.



git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43763 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-19 08:56:58 +00:00
Gary Pendergast
3ba1a2b33c Block Editor: Add helper functions for displaying the editor.
`use_block_editor_for_post()` and `use_block_editor_for_post_type()` determine if the block editor should be loaded.

`get_block_categories()` and `get_block_editor_server_block_settings()` provide data be included while the block editor is loading.

See #45110.



git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43762 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-19 08:43:25 +00:00
Daniel Bachhuber
111a9eaaf9 REST API: Correct HTTP status code in error for requests to create a duplicate term.
The 409 error code is intended for situations where it is expected that the user will resolve the conflict and resubmit the same request. We use 400 error codes for other routes when a duplicate request is made. The 400 status code tells the user they need to modify their request for it to be successful.

Props shooper.
Merges [42354] to the 5.0 branch.
Fixes #42781. See #41370.


git-svn-id: https://develop.svn.wordpress.org/branches/5.0@43756 602fd350-edb4-49c9-b593-d223f7449a82
2018-10-18 20:31:58 +00:00