diff -u b/core/lib/Drupal/Core/Plugin/Factory/MethodFactory.php b/core/lib/Drupal/Core/Plugin/Factory/MethodFactory.php --- b/core/lib/Drupal/Core/Plugin/Factory/MethodFactory.php +++ b/core/lib/Drupal/Core/Plugin/Factory/MethodFactory.php @@ -17,8 +17,9 @@ * Overrides \Drupal\Component\Plugin\Factory\DefaultFactory::createInstance(). */ public function createInstance($plugin_id, array $configuration) { - $plugin_class = static::getPluginClass($plugin_id, $this->discovery); - return $plugin_class::create(drupal_container(), $configuration, $plugin_id, $this->discovery); + $plugin_definition = $this->discovery->getDefinition($plugin_id); + $plugin_class = static::getPluginClass($plugin_id, $plugin_definition); + return $plugin_class::create(drupal_container(), $configuration, $plugin_id, $plugin_definition); } } diff -u b/core/lib/Drupal/Core/Plugin/MethodFactoryPluginBase.php b/core/lib/Drupal/Core/Plugin/MethodFactoryPluginBase.php --- b/core/lib/Drupal/Core/Plugin/MethodFactoryPluginBase.php +++ b/core/lib/Drupal/Core/Plugin/MethodFactoryPluginBase.php @@ -27,15 +27,14 @@ * A configuration array containing information about the plugin instance. * @param string $plugin_id * The plugin_id for the plugin instance. - * @param \Drupal\Component\Plugin\Discovery\DiscoveryInterface $discovery - * The Discovery class that holds access to the plugin implementation - * definition. + * @param array $plugin_definition + * The plugin implementation definition. * * @return static * Returns an instance of this plugin. */ - public static function create(ContainerInterface $container, array $configuration, $plugin_id, DiscoveryInterface $discovery) { - return new static($configuration, $plugin_id, $discovery); + public static function create(ContainerInterface $container, array $configuration, $plugin_id, array $plugin_definition) { + return new static($configuration, $plugin_id, $plugin_definition); } }