Make WordPress Core


Ignore:
Timestamp:
03/06/2016 07:49:54 PM (9 years ago)
Author:
ocean90
Message:

Dependencies: Improve group processing of script dependencies.

This is a follow-up to [36604].

When processing dependencies $this->group will be the minimum of the script's registered group and all preceding siblings. This is wrong because only a scripts ancestors in the dependency chain should affect where it is loaded. Effectively $this->group introduced a form of global state which potentially corrupted the group of dependencies. Sorting covers up this problem.
The issue in #35873 was that script were not moving their dependencies to a lower group when necessary.

The fix:

  • In WP_Dependencies::all_deps() pass the new $group value to WP_Dependencies::all_deps(). Previously the wrong value was passed because the parent script could have moved with WP_Scripts::set_group().
  • In WP_Scripts::all_deps() pass the $group parameter to WP_Dependencies::all_deps() so it doesn't always use false for $group. Same for WP_Styles::all_deps().

Props stephenharris, gitlost.
Fixes #35956.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/class.wp-scripts.php

    r36744 r36871  
    510510     */
    511511    public function all_deps( $handles, $recursion = false, $group = false ) {
    512         $r = parent::all_deps( $handles, $recursion );
     512        $r = parent::all_deps( $handles, $recursion, $group );
    513513        if ( ! $recursion ) {
    514514            /**
Note: See TracChangeset for help on using the changeset viewer.