Просмотр исходного кода

security update devel, metatag

Bachir Soussi Chiadmi 5 лет назад
Родитель
Сommit
04a4b8895d
80 измененных файлов с 897 добавлено и 384 удалено
  1. 5 0
      sites/all/modules/contrib/admin/metatag/CHANGELOG.txt
  2. 3 3
      sites/all/modules/contrib/admin/metatag/metatag.info.yml
  3. 3 3
      sites/all/modules/contrib/admin/metatag/metatag_app_links/metatag_app_links.info.yml
  4. 3 3
      sites/all/modules/contrib/admin/metatag/metatag_dc/metatag_dc.info.yml
  5. 3 3
      sites/all/modules/contrib/admin/metatag/metatag_dc_advanced/metatag_dc_advanced.info.yml
  6. 3 3
      sites/all/modules/contrib/admin/metatag/metatag_facebook/metatag_facebook.info.yml
  7. 3 3
      sites/all/modules/contrib/admin/metatag/metatag_favicons/metatag_favicons.info.yml
  8. 3 3
      sites/all/modules/contrib/admin/metatag/metatag_google_cse/metatag_google_cse.info.yml
  9. 3 3
      sites/all/modules/contrib/admin/metatag/metatag_google_plus/metatag_google_plus.info.yml
  10. 3 3
      sites/all/modules/contrib/admin/metatag/metatag_hreflang/metatag_hreflang.info.yml
  11. 3 3
      sites/all/modules/contrib/admin/metatag/metatag_mobile/metatag_mobile.info.yml
  12. 3 3
      sites/all/modules/contrib/admin/metatag/metatag_open_graph/metatag_open_graph.info.yml
  13. 3 3
      sites/all/modules/contrib/admin/metatag/metatag_open_graph_products/metatag_open_graph_products.info.yml
  14. 3 3
      sites/all/modules/contrib/admin/metatag/metatag_page_manager/metatag_page_manager.info.yml
  15. 3 3
      sites/all/modules/contrib/admin/metatag/metatag_pinterest/metatag_pinterest.info.yml
  16. 3 3
      sites/all/modules/contrib/admin/metatag/metatag_twitter_cards/metatag_twitter_cards.info.yml
  17. 3 3
      sites/all/modules/contrib/admin/metatag/metatag_verification/metatag_verification.info.yml
  18. 3 3
      sites/all/modules/contrib/admin/metatag/metatag_views/metatag_views.info.yml
  19. 0 5
      sites/all/modules/contrib/admin/metatag/src/MetatagServiceProvider.php
  20. 0 28
      sites/all/modules/contrib/admin/metatag/src/Normalizer/FieldItemNormalizer.php
  21. 0 1
      sites/all/modules/contrib/admin/metatag/src/Normalizer/MetatagHalNormalizer.php
  22. 4 1
      sites/all/modules/contrib/admin/metatag/src/Plugin/Field/FieldType/MetatagFieldItem.php
  23. 3 3
      sites/all/modules/contrib/admin/metatag/tests/modules/metatag_test_custom_route/metatag_test_custom_route.info.yml
  24. 3 3
      sites/all/modules/contrib/admin/metatag/tests/modules/metatag_test_tag/metatag_test_tag.info.yml
  25. 70 29
      sites/all/modules/contrib/dev/devel/README.txt
  26. 10 3
      sites/all/modules/contrib/dev/devel/composer.json
  27. 0 1
      sites/all/modules/contrib/dev/devel/config/install/devel.toolbar.settings.yml
  28. 3 3
      sites/all/modules/contrib/dev/devel/devel.info.yml
  29. 0 4
      sites/all/modules/contrib/dev/devel/devel.links.menu.yml
  30. 14 0
      sites/all/modules/contrib/dev/devel/devel.module
  31. 0 5
      sites/all/modules/contrib/dev/devel/devel.permissions.yml
  32. 0 10
      sites/all/modules/contrib/dev/devel/devel.routing.yml
  33. 1 1
      sites/all/modules/contrib/dev/devel/devel_generate/README.txt
  34. 52 0
      sites/all/modules/contrib/dev/devel/devel_generate/composer.json
  35. 4 4
      sites/all/modules/contrib/dev/devel/devel_generate/devel_generate.info.yml
  36. 1 1
      sites/all/modules/contrib/dev/devel/devel_generate/devel_generate.module
  37. 3 3
      sites/all/modules/contrib/dev/devel/devel_generate/src/Form/DevelGenerateForm.php
  38. 5 5
      sites/all/modules/contrib/dev/devel/devel_generate/tests/modules/devel_generate_example/devel_generate_example.info.yml
  39. 0 1
      sites/all/modules/contrib/dev/devel/devel_generate/tests/modules/devel_generate_example/devel_generate_example.module
  40. 1 1
      sites/all/modules/contrib/dev/devel/devel_generate/tests/modules/devel_generate_example/src/Plugin/DevelGenerate/ExampleDevelGenerate.php
  41. 0 38
      sites/all/modules/contrib/dev/devel/drush/develDrushTest.php
  42. 3 3
      sites/all/modules/contrib/dev/devel/kint/kint.info.yml
  43. 0 21
      sites/all/modules/contrib/dev/devel/run-tests-drush.sh
  44. 5 2
      sites/all/modules/contrib/dev/devel/src/DevelDumperManager.php
  45. 1 1
      sites/all/modules/contrib/dev/devel/src/EventSubscriber/ThemeInfoRebuildSubscriber.php
  46. 3 3
      sites/all/modules/contrib/dev/devel/src/Form/ConfigEditor.php
  47. 3 2
      sites/all/modules/contrib/dev/devel/src/Form/ConfigsList.php
  48. 3 3
      sites/all/modules/contrib/dev/devel/src/Form/DevelReinstall.php
  49. 0 55
      sites/all/modules/contrib/dev/devel/src/Form/ExecutePHP.php
  50. 1 1
      sites/all/modules/contrib/dev/devel/src/Form/SettingsForm.php
  51. 5 5
      sites/all/modules/contrib/dev/devel/src/Form/SystemStateEdit.php
  52. 0 33
      sites/all/modules/contrib/dev/devel/src/Plugin/Block/DevelExecutePHP.php
  53. 3 3
      sites/all/modules/contrib/dev/devel/tests/modules/devel_dumper_test/devel_dumper_test.info.yml
  54. 6 6
      sites/all/modules/contrib/dev/devel/tests/modules/devel_entity_test/devel_entity_test.info.yml
  55. 3 3
      sites/all/modules/contrib/dev/devel/tests/modules/devel_test/devel_test.info.yml
  56. 1 1
      sites/all/modules/contrib/dev/devel/tests/src/Functional/DevelDumperTest.php
  57. 0 2
      sites/all/modules/contrib/dev/devel/tests/src/Functional/DevelToolbarTest.php
  58. 2 2
      sites/all/modules/contrib/dev/devel/tests/src/Kernel/DevelQueryDebugTest.php
  59. 1 1
      sites/all/modules/contrib/dev/devel/tests/src/Kernel/DevelTwigExtensionTest.php
  60. 31 0
      sites/all/modules/contrib/dev/devel/tests/src/Unish/DevelDrushTest.php
  61. 6 0
      sites/all/modules/contrib/dev/devel/tests/src/Unish/README.md
  62. 3 1
      sites/all/modules/contrib/dev/devel/webprofiler/src/Controller/ToolbarController.php
  63. 10 2
      sites/all/modules/contrib/dev/devel/webprofiler/src/DataCollector/DatabaseDataCollector.php
  64. 7 2
      sites/all/modules/contrib/dev/devel/webprofiler/src/DataCollector/DrupalDataCollectorTrait.php
  65. 2 2
      sites/all/modules/contrib/dev/devel/webprofiler/src/DataCollector/FormsDataCollector.php
  66. 3 2
      sites/all/modules/contrib/dev/devel/webprofiler/src/DataCollector/RequestDataCollector.php
  67. 33 0
      sites/all/modules/contrib/dev/devel/webprofiler/src/Entity/Decorators/Config/ImageStyleStorageDecorator.php
  68. 4 0
      sites/all/modules/contrib/dev/devel/webprofiler/src/Entity/EntityManagerWrapper.php
  69. 27 6
      sites/all/modules/contrib/dev/devel/webprofiler/src/EventDispatcher/TraceableEventDispatcher.php
  70. 118 0
      sites/all/modules/contrib/dev/devel/webprofiler/src/EventSubscriber/ProfilerSubscriber.php
  71. 2 1
      sites/all/modules/contrib/dev/devel/webprofiler/src/Form/ConfigForm.php
  72. 11 1
      sites/all/modules/contrib/dev/devel/webprofiler/src/Http/HttpClientMiddleware.php
  73. 10 0
      sites/all/modules/contrib/dev/devel/webprofiler/src/Mail/MailManagerWrapper.php
  74. 325 0
      sites/all/modules/contrib/dev/devel/webprofiler/src/ProxyClass/Command/ListCommand.php
  75. 1 1
      sites/all/modules/contrib/dev/devel/webprofiler/templates/Collector/database.html.twig
  76. 7 1
      sites/all/modules/contrib/dev/devel/webprofiler/templates/Collector/events.html.twig
  77. 19 9
      sites/all/modules/contrib/dev/devel/webprofiler/templates/Collector/request.html.twig
  78. 3 3
      sites/all/modules/contrib/dev/devel/webprofiler/templates/Collector/views.html.twig
  79. 4 4
      sites/all/modules/contrib/dev/devel/webprofiler/webprofiler.info.yml
  80. 1 1
      sites/all/modules/contrib/dev/devel/webprofiler/webprofiler.services.yml

+ 5 - 0
sites/all/modules/contrib/admin/metatag/CHANGELOG.txt

@@ -1,3 +1,8 @@
+Metatag 8.x-1.8, 2019-02-20
+---------------------------
+By samuel.mortenson, Berdir, DamienMcKenna: Fix data property definition.
+
+
 Metatag 8.x-1.7, 2018-08-31
 ---------------------------
 #2994979 by DamienMcKenna, dspachos, ynotpeanutbutter, oxy86, IT-Cru, kdeds,

+ 3 - 3
sites/all/modules/contrib/admin/metatag/metatag.info.yml

@@ -13,8 +13,8 @@ test_dependencies:
   - restui:restui
   - schema_metatag:schema_web_page
 
-# Information added by Drupal.org packaging script on 2018-08-31
-version: '8.x-1.7'
+# Information added by Drupal.org packaging script on 2019-02-20
+version: '8.x-1.8'
 core: '8.x'
 project: 'metatag'
-datestamp: 1535726412
+datestamp: 1550683387

+ 3 - 3
sites/all/modules/contrib/admin/metatag/metatag_app_links/metatag_app_links.info.yml

@@ -6,8 +6,8 @@ package: SEO
 dependencies:
   - metatag:metatag
 
-# Information added by Drupal.org packaging script on 2018-08-31
-version: '8.x-1.7'
+# Information added by Drupal.org packaging script on 2019-02-20
+version: '8.x-1.8'
 core: '8.x'
 project: 'metatag'
-datestamp: 1535726412
+datestamp: 1550683387

+ 3 - 3
sites/all/modules/contrib/admin/metatag/metatag_dc/metatag_dc.info.yml

@@ -6,8 +6,8 @@ package: SEO
 dependencies:
   - metatag:metatag
 
-# Information added by Drupal.org packaging script on 2018-08-31
-version: '8.x-1.7'
+# Information added by Drupal.org packaging script on 2019-02-20
+version: '8.x-1.8'
 core: '8.x'
 project: 'metatag'
-datestamp: 1535726412
+datestamp: 1550683387

+ 3 - 3
sites/all/modules/contrib/admin/metatag/metatag_dc_advanced/metatag_dc_advanced.info.yml

@@ -7,8 +7,8 @@ dependencies:
   - metatag:metatag
   - metatag:metatag_dc
 
-# Information added by Drupal.org packaging script on 2018-08-31
-version: '8.x-1.7'
+# Information added by Drupal.org packaging script on 2019-02-20
+version: '8.x-1.8'
 core: '8.x'
 project: 'metatag'
-datestamp: 1535726412
+datestamp: 1550683387

+ 3 - 3
sites/all/modules/contrib/admin/metatag/metatag_facebook/metatag_facebook.info.yml

@@ -6,8 +6,8 @@ package: SEO
 dependencies:
   - metatag:metatag
 
-# Information added by Drupal.org packaging script on 2018-08-31
-version: '8.x-1.7'
+# Information added by Drupal.org packaging script on 2019-02-20
+version: '8.x-1.8'
 core: '8.x'
 project: 'metatag'
-datestamp: 1535726412
+datestamp: 1550683387

+ 3 - 3
sites/all/modules/contrib/admin/metatag/metatag_favicons/metatag_favicons.info.yml

@@ -6,8 +6,8 @@ package: SEO
 dependencies:
   - metatag:metatag
 
-# Information added by Drupal.org packaging script on 2018-08-31
-version: '8.x-1.7'
+# Information added by Drupal.org packaging script on 2019-02-20
+version: '8.x-1.8'
 core: '8.x'
 project: 'metatag'
-datestamp: 1535726412
+datestamp: 1550683387

+ 3 - 3
sites/all/modules/contrib/admin/metatag/metatag_google_cse/metatag_google_cse.info.yml

@@ -6,8 +6,8 @@ package: SEO
 dependencies:
   - metatag:metatag
 
-# Information added by Drupal.org packaging script on 2018-08-31
-version: '8.x-1.7'
+# Information added by Drupal.org packaging script on 2019-02-20
+version: '8.x-1.8'
 core: '8.x'
 project: 'metatag'
-datestamp: 1535726412
+datestamp: 1550683387

+ 3 - 3
sites/all/modules/contrib/admin/metatag/metatag_google_plus/metatag_google_plus.info.yml

@@ -6,8 +6,8 @@ package: SEO
 dependencies:
   - metatag:metatag
 
-# Information added by Drupal.org packaging script on 2018-08-31
-version: '8.x-1.7'
+# Information added by Drupal.org packaging script on 2019-02-20
+version: '8.x-1.8'
 core: '8.x'
 project: 'metatag'
-datestamp: 1535726412
+datestamp: 1550683387

+ 3 - 3
sites/all/modules/contrib/admin/metatag/metatag_hreflang/metatag_hreflang.info.yml

@@ -6,8 +6,8 @@ package: SEO
 dependencies:
   - metatag:metatag
 
-# Information added by Drupal.org packaging script on 2018-08-31
-version: '8.x-1.7'
+# Information added by Drupal.org packaging script on 2019-02-20
+version: '8.x-1.8'
 core: '8.x'
 project: 'metatag'
-datestamp: 1535726412
+datestamp: 1550683387

+ 3 - 3
sites/all/modules/contrib/admin/metatag/metatag_mobile/metatag_mobile.info.yml

@@ -6,8 +6,8 @@ package: SEO
 dependencies:
   - metatag:metatag
 
-# Information added by Drupal.org packaging script on 2018-08-31
-version: '8.x-1.7'
+# Information added by Drupal.org packaging script on 2019-02-20
+version: '8.x-1.8'
 core: '8.x'
 project: 'metatag'
-datestamp: 1535726412
+datestamp: 1550683387

+ 3 - 3
sites/all/modules/contrib/admin/metatag/metatag_open_graph/metatag_open_graph.info.yml

@@ -6,8 +6,8 @@ package: SEO
 dependencies:
   - metatag:metatag
 
-# Information added by Drupal.org packaging script on 2018-08-31
-version: '8.x-1.7'
+# Information added by Drupal.org packaging script on 2019-02-20
+version: '8.x-1.8'
 core: '8.x'
 project: 'metatag'
-datestamp: 1535726412
+datestamp: 1550683387

+ 3 - 3
sites/all/modules/contrib/admin/metatag/metatag_open_graph_products/metatag_open_graph_products.info.yml

@@ -7,8 +7,8 @@ dependencies:
   - metatag:metatag
   - metatag:metatag_open_graph
 
-# Information added by Drupal.org packaging script on 2018-08-31
-version: '8.x-1.7'
+# Information added by Drupal.org packaging script on 2019-02-20
+version: '8.x-1.8'
 core: '8.x'
 project: 'metatag'
-datestamp: 1535726412
+datestamp: 1550683387

+ 3 - 3
sites/all/modules/contrib/admin/metatag/metatag_page_manager/metatag_page_manager.info.yml

@@ -7,8 +7,8 @@ dependencies:
   - page_manager:page_manager
   - metatag:metatag
 
-# Information added by Drupal.org packaging script on 2018-08-31
-version: '8.x-1.7'
+# Information added by Drupal.org packaging script on 2019-02-20
+version: '8.x-1.8'
 core: '8.x'
 project: 'metatag'
-datestamp: 1535726412
+datestamp: 1550683387

+ 3 - 3
sites/all/modules/contrib/admin/metatag/metatag_pinterest/metatag_pinterest.info.yml

@@ -6,8 +6,8 @@ package: SEO
 dependencies:
   - metatag:metatag
 
-# Information added by Drupal.org packaging script on 2018-08-31
-version: '8.x-1.7'
+# Information added by Drupal.org packaging script on 2019-02-20
+version: '8.x-1.8'
 core: '8.x'
 project: 'metatag'
-datestamp: 1535726412
+datestamp: 1550683387

+ 3 - 3
sites/all/modules/contrib/admin/metatag/metatag_twitter_cards/metatag_twitter_cards.info.yml

@@ -6,8 +6,8 @@ package: SEO
 dependencies:
   - metatag:metatag
 
-# Information added by Drupal.org packaging script on 2018-08-31
-version: '8.x-1.7'
+# Information added by Drupal.org packaging script on 2019-02-20
+version: '8.x-1.8'
 core: '8.x'
 project: 'metatag'
-datestamp: 1535726412
+datestamp: 1550683387

+ 3 - 3
sites/all/modules/contrib/admin/metatag/metatag_verification/metatag_verification.info.yml

@@ -6,8 +6,8 @@ package: SEO
 dependencies:
   - metatag:metatag
 
-# Information added by Drupal.org packaging script on 2018-08-31
-version: '8.x-1.7'
+# Information added by Drupal.org packaging script on 2019-02-20
+version: '8.x-1.8'
 core: '8.x'
 project: 'metatag'
-datestamp: 1535726412
+datestamp: 1550683387

+ 3 - 3
sites/all/modules/contrib/admin/metatag/metatag_views/metatag_views.info.yml

@@ -7,8 +7,8 @@ dependencies:
   - metatag:metatag
   - drupal:views
 
-# Information added by Drupal.org packaging script on 2018-08-31
-version: '8.x-1.7'
+# Information added by Drupal.org packaging script on 2019-02-20
+version: '8.x-1.8'
 core: '8.x'
 project: 'metatag'
-datestamp: 1535726412
+datestamp: 1550683387

+ 0 - 5
sites/all/modules/contrib/admin/metatag/src/MetatagServiceProvider.php

@@ -4,7 +4,6 @@ namespace Drupal\metatag;
 
 use Drupal\Core\DependencyInjection\ContainerBuilder;
 use Drupal\Core\DependencyInjection\ServiceProviderBase;
-use Drupal\metatag\Normalizer\FieldItemNormalizer;
 use Drupal\metatag\Normalizer\MetatagHalNormalizer;
 use Drupal\metatag\Normalizer\MetatagNormalizer;
 use Symfony\Component\DependencyInjection\Definition;
@@ -30,10 +29,6 @@ class MetatagServiceProvider extends ServiceProviderBase {
       $metatag_hal = new Definition(MetatagHalNormalizer::class);
       $metatag_hal->addTag('normalizer', ['priority' => 31]);
       $container->setDefinition('metatag.normalizer.metatag.hal', $metatag_hal);
-
-      $metatag_field = new Definition(FieldItemNormalizer::class);
-      $metatag_field->addTag('normalizer', ['priority' => 30]);
-      $container->setDefinition('metatag.normalizer.metatag_field', $metatag_field);
     }
   }
 

+ 0 - 28
sites/all/modules/contrib/admin/metatag/src/Normalizer/FieldItemNormalizer.php

@@ -1,28 +0,0 @@
-<?php
-
-namespace Drupal\metatag\Normalizer;
-
-use Drupal\serialization\Normalizer\NormalizerBase;
-
-/**
- * Converts the Metatag field item object structure to METATAG array structure.
- */
-class FieldItemNormalizer extends NormalizerBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  protected $supportedInterfaceOrClass = 'Drupal\metatag\Plugin\Field\FieldType\MetatagFieldItem';
-
-  /**
-   * {@inheritdoc}
-   */
-  public function normalize($field_item, $format = NULL, array $context = []) {
-    $values = $field_item->getValue();
-
-    $normalized['value'] = unserialize($values['value']);
-
-    return $normalized;
-  }
-
-}

+ 0 - 1
sites/all/modules/contrib/admin/metatag/src/Normalizer/MetatagHalNormalizer.php

@@ -19,7 +19,6 @@ class MetatagHalNormalizer extends MetatagNormalizer {
     $normalized = parent::normalize($field_item, $format, $context);
 
     // Mock the field array similar to the other fields.
-    // @see Drupal\hal\Normalizer\FieldItemNormalizer
     return [
       'metatag' => [$normalized],
     ];

+ 4 - 1
sites/all/modules/contrib/admin/metatag/src/Plugin/Field/FieldType/MetatagFieldItem.php

@@ -14,7 +14,10 @@ use Drupal\Core\TypedData\DataDefinition;
  *   label = @Translation("Meta tags"),
  *   description = @Translation("This field stores code meta tags."),
  *   default_widget = "metatag_firehose",
- *   default_formatter = "metatag_empty_formatter"
+ *   default_formatter = "metatag_empty_formatter",
+ *   serialized_property_names = {
+ *     "value"
+ *   }
  * )
  */
 class MetatagFieldItem extends FieldItemBase {

+ 3 - 3
sites/all/modules/contrib/admin/metatag/tests/modules/metatag_test_custom_route/metatag_test_custom_route.info.yml

@@ -6,8 +6,8 @@ package: Testing
 dependencies:
   - metatag:metatag
 
-# Information added by Drupal.org packaging script on 2018-08-31
-version: '8.x-1.7'
+# Information added by Drupal.org packaging script on 2019-02-20
+version: '8.x-1.8'
 core: '8.x'
 project: 'metatag'
-datestamp: 1535726412
+datestamp: 1550683387

+ 3 - 3
sites/all/modules/contrib/admin/metatag/tests/modules/metatag_test_tag/metatag_test_tag.info.yml

@@ -6,8 +6,8 @@ package: Testing
 dependencies:
   - metatag:metatag
 
-# Information added by Drupal.org packaging script on 2018-08-31
-version: '8.x-1.7'
+# Information added by Drupal.org packaging script on 2019-02-20
+version: '8.x-1.8'
 core: '8.x'
 project: 'metatag'
-datestamp: 1535726412
+datestamp: 1550683387

+ 70 - 29
sites/all/modules/contrib/dev/devel/README.txt

@@ -1,8 +1,23 @@
-Devel
-==========
-Devel module contains helper functions and pages for Drupal developers and inquisitive admins:
+README.txt for Devel module
+---------------------------
+
+CONTENTS OF THIS FILE
+---------------------
+
+ * Introduction
+ * Requirements
+ * Included Modules and Features
+ * Recommended Modules
+ * Installation
+ * Configuration
+ * Maintainers
+
+INTRODUCTION
+------------
+
+Devel module contains helper functions and pages for Drupal developers and
+inquisitive admins:
 
- - A block for running custom PHP on a page
  - A block for quickly accessing devel pages
  - A block for masquerading as other users (useful for testing)
  - A mail-system class which redirects outbound email to files
@@ -13,35 +28,61 @@ Devel module contains helper functions and pages for Drupal developers and inqui
 This module is safe to use on a production site. Just be sure to only grant
 'access development information' permission to developers.
 
-Devel Kint
-===================
-Provides a dpr() function, which pretty prints variables.
+ - For a full description of the module visit:
+   https://www.drupal.org/project/devel
+
+ - To submit bug reports and feature suggestions, or to track changes visit:
+   https://www.drupal.org/project/issues/devel
+
+
+REQUIREMENTS
+------------
+
+This module requires no modules outside of Drupal core.
+
+
+INCLUDED MODULES AND FEATURES
+-----------------------------
+
+Devel Kint - Provides a dpr() function, which pretty prints variables.
 Useful during development. Also see similar helpers like dpm(), dvm().
 
-Webprofiler
-==============
-Adds a debug bar at bottom of all pages with tons of useful information like a query list,
-cache hit/miss data, memory profiling, page speed, php info, session info, etc.
+Webprofiler - Adds a debug bar at bottom of all pages with tons of useful
+information like a query list, cache hit/miss data, memory profiling, page
+speed, php info, session info, etc.
+
+Devel Generate - Bulk creates nodes, users, comment, terms for development. Has
+Drush integration.
+
+Drush Unit Testing - See develDrushTest.php for an example of unit testing of
+the Drush integration. This uses Drush's own test framework, based on PHPUnit.
+To run the tests, use run-tests-drush.sh. You may pass in any arguments that
+are valid for `phpunit`.
+
+
+RECOMMENDED MODULE
+------------------
 
-Devel Generate
-=================
-Bulk creates nodes, users, comment, terms for development. Has Drush integration.
+Devel Generate Extensions - Devel Images Provider allows to configure external
+providers for images.
 
-Devel Generate Extensions
-=========================
-Devel Images Provider [http://drupal.org/project/devel_image_provider] allows to configure external providers for images.
+ - http://drupal.org/project/devel_image_provider
+
+
+INSTALLATION
+------------
+
+ - Install the Devel module as you would normally install a contributed Drupal
+   module. Visit https://www.drupal.org/node/1897420 for further information.
 
-Drush Unit Testing
-==================
-See develDrushTest.php for an example of unit testing of the Drush integration.
-This uses Drush's own test framework, based on PHPUnit. To run the tests, use
-run-tests-drush.sh. You may pass in any arguments that are valid for `phpunit`.
 
 Author/Maintainers
-======================
-- Moshe Weitzman <weitzman at tejasa DOT com> http://www.acquia.com
-- Hans Salvisberg <drupal at salvisberg DOT com>
-- Pedro Cambra https://drupal.org/user/122101/contact http://www.ymbra.com/
-- Juan Pablo Novillo https://www.drupal.org/u/juampynr
-- lussoluca https://www.drupal.org/u/lussoluca
-- willzyx https://www.drupal.org/u/willzyx
+------------------
+
+ - Moshe Weitzman (moshe weitzman) - https://www.drupal.org/u/moshe-weitzman
+ - Hans Salvisberg (salvis) - https://www.drupal.org/u/salvis
+ - Pedro Cambra https://drupal.org/user/122101/contact http://www.ymbra.com/
+ - Juan Pablo Novillo https://www.drupal.org/u/juampynr
+ - lussoluca https://www.drupal.org/u/lussoluca
+ - willzyx https://www.drupal.org/u/willzyx
+

+ 10 - 3
sites/all/modules/contrib/dev/devel/composer.json

@@ -38,8 +38,15 @@
   },
   "license": "GPL-2.0+",
   "minimum-stability": "dev",
-  "require": {},
-  "suggest": {
-    "symfony/var-dumper": "Pretty print complex values better with var-dumper available"
+  "require": {
+    "symfony/var-dumper": "~2.7|^3"
+  },
+  "suggest": {},
+  "extra": {
+    "drush": {
+      "services": {
+        "drush.services.yml": "^9"
+      }
+    }
   }
 }

+ 0 - 1
sites/all/modules/contrib/dev/devel/config/install/devel.toolbar.settings.yml

@@ -2,7 +2,6 @@ toolbar_items:
   - 'devel.admin_settings_link'
   - 'devel.cache_clear'
   - 'devel.container_info.service'
-  - 'devel.execute_php'
   - 'devel.menu_rebuild'
   - 'devel.reinstall'
   - 'devel.route_info'

+ 3 - 3
sites/all/modules/contrib/dev/devel/devel.info.yml

@@ -7,8 +7,8 @@ configure: devel.admin_settings
 tags:
  - developer
 
-# Information added by Drupal.org packaging script on 2017-10-05
-version: '8.x-1.2'
+# Information added by Drupal.org packaging script on 2019-01-29
+version: '8.x-2.0'
 core: '8.x'
 project: 'devel'
-datestamp: 1507197848
+datestamp: 1548799386

+ 0 - 4
sites/all/modules/contrib/dev/devel/devel.links.menu.yml

@@ -46,10 +46,6 @@ devel.phpinfo:
   title: 'PHPinfo()'
   route_name: system.php
   menu_name: devel
-devel.execute_php:
-  title: 'Execute PHP'
-  route_name: devel.execute_php
-  menu_name: devel
 devel.session:
   title: 'View Session'
   route_name: devel.session

+ 14 - 0
sites/all/modules/contrib/dev/devel/devel.module

@@ -324,6 +324,9 @@ if (!function_exists('dd')) {
   /**
    * Wrapper for DevelDumperManager::debug().
    *
+   * @deprecated since Drupal 8.6.0 because symfony now has dd() as a function.
+   *   Use the ddm() function instead.
+   * 
    * @see \Drupal\devel\DevelDumperManager::debug()
    */
   function dd($data, $label = NULL) {
@@ -331,6 +334,17 @@ if (!function_exists('dd')) {
   }
 }
 
+if (!function_exists('ddm')) {
+  /**
+   * Wrapper for DevelDumperManager::debug() to replace previous dd function.
+   *
+   * @see \Drupal\devel\DevelDumperManager::debug()
+   */
+  function ddm($data, $label = NULL) {
+    return \Drupal::service('devel.dumper')->debug($data, $label, 'default');
+  }
+}
+
 /**
  * Wrapper for DevelDumperManager::message().
  *

+ 0 - 5
sites/all/modules/contrib/dev/devel/devel.permissions.yml

@@ -3,11 +3,6 @@ access devel information:
   title: 'Access developer information'
   restrict access: TRUE
 
-execute php code:
-  title: 'Execute PHP code'
-  description: 'Run arbitrary PHP from a block.'
-  restrict access: TRUE
-
 switch users:
   title: 'Switch users'
   description: 'Become any user on the site with just a click.'

+ 0 - 10
sites/all/modules/contrib/dev/devel/devel.routing.yml

@@ -96,16 +96,6 @@ devel.field_info_page:
   requirements:
     _permission: 'access devel information'
 
-devel.execute_php:
-  path: '/devel/php'
-  defaults:
-    _form: '\Drupal\devel\Form\ExecutePHP'
-    _title: 'Execute PHP code'
-  options:
-    _admin_route: TRUE
-  requirements:
-    _permission: 'execute php code'
-
 devel.session:
   path: '/devel/session'
   defaults:

+ 1 - 1
sites/all/modules/contrib/dev/devel/devel_generate/README.txt

@@ -38,7 +38,7 @@ will want to directly inherit from Drupal\devel_generate\DevelGenerateBase.
 
 To give support for a new field type the field type base class should properly
 implements \Drupal\Core\Field\FieldItemInterface::generateSampleValue().
-Devel generate automatically use the values returned by this method during the
+Devel Generate automatically uses the values returned by this method during the
 generate process for generate placeholder field values. For more information
 see:
 https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Field%21FieldItemInterface.php/function/FieldItemInterface::generateSampleValue

+ 52 - 0
sites/all/modules/contrib/dev/devel/devel_generate/composer.json

@@ -0,0 +1,52 @@
+{
+  "name": "drupal/devel_generate",
+  "description": "Generate dummy users, nodes, menus, taxonomy terms...",
+  "type": "drupal-module",
+  "homepage": "http://drupal.org/project/devel",
+  "authors": [
+    {
+      "name": "Moshe Weitzman",
+      "email": "weitzman@tejasa.com",
+      "homepage": "https://github.com/weitzman",
+      "role": "Maintainer"
+    },
+    {
+      "name": "Hans Salvisberg",
+      "email": "drupal@salvisberg.com",
+      "homepage": "https://www.drupal.org/u/salvis",
+      "role": "Maintainer"
+    },
+    {
+      "name": "Luca Lusso",
+      "homepage": "https://www.drupal.org/u/lussoluca",
+      "role": "Maintainer"
+    },
+    {
+      "name": "Marco (willzyx)",
+      "homepage": "https://www.drupal.org/u/willzyx",
+      "role": "Maintainer"
+    },
+    {
+      "name": "See contributors",
+      "homepage": "https://www.drupal.org/node/3236/committers"
+    }
+  ],
+  "support": {
+    "issues": "http://drupal.org/project/devel",
+    "irc": "irc://irc.freenode.org/drupal-contribute",
+    "source": "http://cgit.drupalcode.org/devel"
+  },
+  "license": "GPL-2.0+",
+  "minimum-stability": "dev",
+  "require": {},
+  "suggest": {
+    "drupal/realistic_dummy_content": "Generate realistic demo content with Devel's devel_generate module."
+  },
+  "extra": {
+    "drush": {
+      "services": {
+        "drush.services.yml": "^9"
+      }
+    }
+  }
+}

+ 4 - 4
sites/all/modules/contrib/dev/devel/devel_generate/devel_generate.info.yml

@@ -1,13 +1,13 @@
 type: module
-name: 'Devel generate'
+name: 'Devel Generate'
 description: 'Generate dummy users, nodes, menus, taxonomy terms...'
 package: Development
 # core: 8.x
 tags:
  - developer
 
-# Information added by Drupal.org packaging script on 2017-10-05
-version: '8.x-1.2'
+# Information added by Drupal.org packaging script on 2019-01-29
+version: '8.x-2.0'
 core: '8.x'
 project: 'devel'
-datestamp: 1507197848
+datestamp: 1548799386

+ 1 - 1
sites/all/modules/contrib/dev/devel/devel_generate/devel_generate.module

@@ -53,7 +53,7 @@ function devel_generate_entity_insert(EntityInterface $entity) {
       'source' => '/node/' . $entity->id(),
       'alias' => '/node-' . $entity->id() . '-' . $entity->bundle(),
     );
-    \Drupal::service('path.alias_storage')->save($path['source'], $path['alias']);
+    \Drupal::service('path.alias_storage')->save($path['source'], $path['alias'], $entity->language()->getId());
   }
 
   // Add node statistics.

+ 3 - 3
sites/all/modules/contrib/dev/devel/devel_generate/src/Form/DevelGenerateForm.php

@@ -77,12 +77,12 @@ class DevelGenerateForm extends FormBase {
     $plugin_id = $this->getPluginIdFromRequest();
     $instance = $this->getPluginInstance($plugin_id);
     $form = $instance->settingsForm($form, $form_state);
-    $form['actions'] = array('#type' => 'actions');
-    $form['actions']['submit'] = array(
+    $form['actions'] = ['#type' => 'actions'];
+    $form['actions']['submit'] = [
       '#type' => 'submit',
       '#value' => $this->t('Generate'),
       '#button_type' => 'primary',
-    );
+    ];
 
     return $form;
   }

+ 5 - 5
sites/all/modules/contrib/dev/devel/devel_generate/tests/modules/devel_generate_example/devel_generate_example.info.yml

@@ -1,14 +1,14 @@
-name: 'Devel generate Example'
+name: 'Devel Generate Example'
 type: module
-description: 'Create an example of DevelGenerate plugin type for testing purposing.'
+description: 'Create an example of a Devel Generate plugin type for testing purposes.'
 package: Development
 # core: 8.x
 configure: admin/config/development/generate
 tags:
  - developer
 
-# Information added by Drupal.org packaging script on 2017-10-05
-version: '8.x-1.2'
+# Information added by Drupal.org packaging script on 2019-01-29
+version: '8.x-2.0'
 core: '8.x'
 project: 'devel'
-datestamp: 1507197848
+datestamp: 1548799386

+ 0 - 1
sites/all/modules/contrib/dev/devel/devel_generate/tests/modules/devel_generate_example/devel_generate_example.module

@@ -1 +0,0 @@
-<?php

+ 1 - 1
sites/all/modules/contrib/dev/devel/devel_generate/tests/modules/devel_generate_example/src/Plugin/DevelGenerate/ExampleDevelGenerate.php

@@ -70,7 +70,7 @@ class ExampleDevelGenerate extends DevelGenerateBase {
     }
 
     // Populate all fields with sample values.
-    $this->populateFields($node);
+    $this->populateFields($account);
 
     $account->save();
 

+ 0 - 38
sites/all/modules/contrib/dev/devel/drush/develDrushTest.php

@@ -1,38 +0,0 @@
-<?php
-
-namespace Unish;
-
-if (class_exists('Unish\CommandUnishTestCase')) {
-
-  /**
-   * PHPUnit Tests for devel. This uses Drush's own test framework, based on PHPUnit.
-   * To run the tests, use run-tests-drush.sh from the devel directory.
-   */
-  class develCase extends CommandUnishTestCase {
-
-    public function testFnCommands() {
-      // Specify '8' just in case user has not set UNISH_DRUPAL_MAJOR_VERSION env variable.
-      $sites = $this->setUpDrupal(1, TRUE, '8');
-
-      // Symlink this module into the Site Under test so it can be enabled.
-      $target = dirname(__DIR__);
-      \symlink($target, $this->webroot() . '/modules/devel');
-      $options = array(
-        'root' => $this->webroot(),
-        'uri' => key($sites),
-      );
-      $this->drush('pm-enable', array('devel'), $options + array('skip' => NULL, 'yes' => NULL));
-
-      $this->drush('fn-view', array('drush_main'), $options);
-      $output = $this->getOutput();
-      $this->assertContains('@return', $output, 'Output contain @return Doxygen.');
-      $this->assertContains('function drush_main() {', $output, 'Output contains function drush_main() declaration');
-
-  //    $this->drush('fn-hook', array('cron'), $options);
-  //    $output = $this->getOutputAsList();
-  //    $expected = array('dblog', 'file', 'field', 'system', 'update');
-  //    $this->assertSame($expected, $output);
-    }
-  }
-
-}

+ 3 - 3
sites/all/modules/contrib/dev/devel/kint/kint.info.yml

@@ -6,8 +6,8 @@ package: Development
 tags:
  - developer
 
-# Information added by Drupal.org packaging script on 2017-10-05
-version: '8.x-1.2'
+# Information added by Drupal.org packaging script on 2019-01-29
+version: '8.x-2.0'
 core: '8.x'
 project: 'devel'
-datestamp: 1507197848
+datestamp: 1548799386

+ 0 - 21
sites/all/modules/contrib/dev/devel/run-tests-drush.sh

@@ -1,21 +0,0 @@
-#!/usr/bin/env sh
-
-# This script will run phpunit-based test classes using Drush's
-# test framework.  First, the Drush executable is located, and
-# then phpunit is invoked, pointing to Drush's phpunit.xml as
-# the configuration.
-#
-# Any parameters that may be passed to `phpunit` may also be used
-# with this script.
-
-DRUSH_PATH="`which drush`"
-DRUSH_DIRNAME="`dirname -- "$DRUSH_PATH"`"
-# The following line is needed is you use a `drush` that differs from `which drush`
-# export UNISH_DRUSH=$DRUSH_PATH
-
-if [ $# = 0 ] ; then
-   phpunit --configuration="$DRUSH_DIRNAME/tests" drush
-else
-   # Pass along any arguments.
-   phpunit --configuration="$DRUSH_DIRNAME/tests" $@
-fi

+ 5 - 2
sites/all/modules/contrib/dev/devel/src/DevelDumperManager.php

@@ -4,12 +4,15 @@ namespace Drupal\devel;
 
 use Drupal\Core\Config\ConfigFactoryInterface;
 use Drupal\Core\Session\AccountProxyInterface;
+use Drupal\Core\StringTranslation\StringTranslationTrait;
 
 /**
- * Class DevelDumperManager
+ * Class DevelDumperManager.
  */
 class DevelDumperManager implements DevelDumperManagerInterface {
 
+  use StringTranslationTrait;
+
   /**
    * The devel config.
    *
@@ -100,7 +103,7 @@ class DevelDumperManager implements DevelDumperManagerInterface {
     // The temp directory does vary across multiple simpletest instances.
     $file = file_directory_temp() . '/drupal_debug.txt';
     if (file_put_contents($file, $output, FILE_APPEND) === FALSE && $this->hasAccessToDevelInformation()) {
-      drupal_set_message(t('Devel was unable to write to %file.', ['%file' => $file]), 'error');
+      drupal_set_message($this->t('Devel was unable to write to %file.', ['%file' => $file]), 'error');
       return FALSE;
     }
   }

+ 1 - 1
sites/all/modules/contrib/dev/devel/src/EventSubscriber/ThemeInfoRebuildSubscriber.php

@@ -96,7 +96,7 @@ class ThemeInfoRebuildSubscriber implements EventSubscriberInterface {
   protected function triggerWarningIfNeeded(Request $request) {
     if ($this->account && $this->account->hasPermission('access devel information')) {
       $session = $request->getSession();
-      if (!$session->has($this->notificationFlag)) {
+      if ($session && !$session->has($this->notificationFlag)) {
         $session->set($this->notificationFlag, TRUE);
         $message = $this->t('The theme information is being rebuilt on every request. Remember to <a href=":url">turn off</a> this feature on production websites.', [':url' => Url::fromRoute('devel.admin_settings')->toString()]);
         drupal_set_message($message, 'warning', TRUE);

+ 3 - 3
sites/all/modules/contrib/dev/devel/src/Form/ConfigEditor.php

@@ -69,11 +69,11 @@ class ConfigEditor extends FormBase {
       '#required' => TRUE,
     );
 
-    $form['actions'] = array('#type' => 'actions');
-    $form['actions']['submit'] = array(
+    $form['actions'] = ['#type' => 'actions'];
+    $form['actions']['submit'] = [
       '#type' => 'submit',
       '#value' => $this->t('Save'),
-    );
+    ];
     $form['actions']['cancel'] = array(
       '#type' => 'link',
       '#title' => $this->t('Cancel'),

+ 3 - 2
sites/all/modules/contrib/dev/devel/src/Form/ConfigsList.php

@@ -35,10 +35,11 @@ class ConfigsList extends FormBase {
       '#title_display' => 'invisible',
       '#default_value' => $filter,
     );
-    $form['filter']['show'] = array(
+    $form['filter']['actions'] = ['#type' => 'actions'];
+    $form['filter']['actions']['show'] = [
       '#type' => 'submit',
       '#value' => $this->t('Filter'),
-    );
+    ];
 
     $header = array(
       'name' => array('data' => $this->t('Name')),

+ 3 - 3
sites/all/modules/contrib/dev/devel/src/Form/DevelReinstall.php

@@ -116,11 +116,11 @@ class DevelReinstall extends FormBase {
 
     $form['#attached']['library'][] = 'system/drupal.system.modules';
 
-    $form['actions'] = array('#type' => 'actions');
-    $form['actions']['submit'] = array(
+    $form['actions'] = ['#type' => 'actions'];
+    $form['actions']['submit'] = [
       '#type' => 'submit',
       '#value' => $this->t('Reinstall'),
-    );
+    ];
 
     return $form;
   }

+ 0 - 55
sites/all/modules/contrib/dev/devel/src/Form/ExecutePHP.php

@@ -1,55 +0,0 @@
-<?php
-
-namespace Drupal\devel\Form;
-
-use Drupal\Core\Form\FormBase;
-use Drupal\Core\Form\FormStateInterface;
-
-/**
- * Defines a form that allows privileged users to execute arbitrary PHP code.
- */
-class ExecutePHP extends FormBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getFormId() {
-    return 'devel_execute_form';
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function buildForm(array $form, FormStateInterface $form_state) {
-    $form = array(
-      '#title' => $this->t('Execute PHP Code'),
-      '#description' => $this->t('Execute some PHP code'),
-    );
-    $form['execute']['code'] = array(
-      '#type' => 'textarea',
-      '#title' => t('PHP code to execute'),
-      '#description' => t('Enter some code. Do not use <code>&lt;?php ?&gt;</code> tags.'),
-      '#default_value' => (isset($_SESSION['devel_execute_code']) ? $_SESSION['devel_execute_code'] : ''),
-      '#rows' => 20,
-    );
-    $form['execute']['op'] = array('#type' => 'submit', '#value' => t('Execute'));
-    $form['#redirect'] = FALSE;
-    if (isset($_SESSION['devel_execute_code'])) {
-      unset($_SESSION['devel_execute_code']);
-    }
-
-    return $form;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function submitForm(array &$form, FormStateInterface $form_state) {
-    ob_start();
-    $code = $form_state->getValue('code');
-    print eval($code);
-    $_SESSION['devel_execute_code'] = $code;
-    dpm(ob_get_clean());
-  }
-
-}

+ 1 - 1
sites/all/modules/contrib/dev/devel/src/Form/SettingsForm.php

@@ -66,7 +66,7 @@ class SettingsForm extends ConfigFormBase {
     $form['page_alter'] = array('#type' => 'checkbox',
       '#title' => t('Display $page array'),
       '#default_value' => $devel_config->get('page_alter'),
-      '#description' => t('Display $page array from <a href="http://api.drupal.org/api/function/hook_page_alter/7">hook_page_alter()</a> in the messages area of each page.'),
+      '#description' => t('Display $page array from <a href="https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Render%21theme.api.php/function/hook_page_attachments_alter/8">hook_page_attachments_alter()</a> in the messages area of each page.'),
     );
     $form['raw_names'] = array('#type' => 'checkbox',
       '#title' => t('Display machine names of permissions and modules'),

+ 5 - 5
sites/all/modules/contrib/dev/devel/src/Form/SystemStateEdit.php

@@ -108,17 +108,17 @@ class SystemStateEdit extends FormBase {
       '#rows' => 15,
     );
 
-    $form['actions'] = array('#type' => 'actions');
-    $form['actions']['submit'] = array(
+    $form['actions'] = ['#type' => 'actions'];
+    $form['actions']['submit'] = [
       '#type' => 'submit',
       '#value' => $this->t('Save'),
       '#disabled' => $disabled,
-    );
-    $form['actions']['cancel'] = array(
+    ];
+    $form['actions']['cancel'] = [
       '#type' => 'link',
       '#title' => $this->t('Cancel'),
       '#url' => Url::fromRoute('devel.state_system_page')
-    );
+    ];
 
     return $form;
   }

+ 0 - 33
sites/all/modules/contrib/dev/devel/src/Plugin/Block/DevelExecutePHP.php

@@ -1,33 +0,0 @@
-<?php
-
-namespace Drupal\devel\Plugin\Block;
-
-use Drupal\Core\Access\AccessResult;
-use Drupal\Core\Block\BlockBase;
-use Drupal\Core\Session\AccountInterface;
-
-/**
- * Provides a block for executing PHP code.
- *
- * @Block(
- *   id = "devel_execute_php",
- *   admin_label = @Translation("Execute PHP")
- * )
- */
-class DevelExecutePHP extends BlockBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function blockAccess(AccountInterface $account) {
-    return AccessResult::allowedIfHasPermission($account, 'execute php code');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function build() {
-    return \Drupal::formBuilder()->getForm('Drupal\devel\Form\ExecutePHP');
-  }
-
-}

+ 3 - 3
sites/all/modules/contrib/dev/devel/tests/modules/devel_dumper_test/devel_dumper_test.info.yml

@@ -5,8 +5,8 @@ package: Testing
 # version: VERSION
 # core: 8.x
 
-# Information added by Drupal.org packaging script on 2017-10-05
-version: '8.x-1.2'
+# Information added by Drupal.org packaging script on 2019-01-29
+version: '8.x-2.0'
 core: '8.x'
 project: 'devel'
-datestamp: 1507197848
+datestamp: 1548799386

+ 6 - 6
sites/all/modules/contrib/dev/devel/tests/modules/devel_entity_test/devel_entity_test.info.yml

@@ -5,12 +5,12 @@ package: Testing
 # version: VERSION
 # core: 8.x
 dependencies:
-  - field
-  - text
-  - entity_test
+  - drupal:field
+  - drupal:text
+  - drupal:entity_test
 
-# Information added by Drupal.org packaging script on 2017-10-05
-version: '8.x-1.2'
+# Information added by Drupal.org packaging script on 2019-01-29
+version: '8.x-2.0'
 core: '8.x'
 project: 'devel'
-datestamp: 1507197848
+datestamp: 1548799386

+ 3 - 3
sites/all/modules/contrib/dev/devel/tests/modules/devel_test/devel_test.info.yml

@@ -5,8 +5,8 @@ package: Testing
 # version: VERSION
 # core: 8.x
 
-# Information added by Drupal.org packaging script on 2017-10-05
-version: '8.x-1.2'
+# Information added by Drupal.org packaging script on 2019-01-29
+version: '8.x-2.0'
 core: '8.x'
 project: 'devel'
-datestamp: 1507197848
+datestamp: 1548799386

+ 1 - 1
sites/all/modules/contrib/dev/devel/tests/src/Functional/DevelDumperTest.php

@@ -50,7 +50,7 @@ class DevelDumperTest extends BrowserTestBase {
       'chromephp',
       'var_dumper',
     ];
-    $available_dumpers = ['default', 'drupal_variable'];
+    $available_dumpers = ['default', 'drupal_variable', 'var_dumper'];
 
     foreach ($dumpers as $dumper) {
       $this->assertFieldByXPath('//input[@type="radio" and @name="dumper"]', $dumper);

+ 0 - 2
sites/all/modules/contrib/dev/devel/tests/src/Functional/DevelToolbarTest.php

@@ -40,7 +40,6 @@ class DevelToolbarTest extends BrowserTestBase {
     'devel.cache_clear',
     'devel.container_info.service',
     'devel.admin_settings_link',
-    'devel.execute_php',
     'devel.menu_rebuild',
     'devel.reinstall',
     'devel.route_info',
@@ -59,7 +58,6 @@ class DevelToolbarTest extends BrowserTestBase {
     $this->develUser = $this->drupalCreateUser([
       'administer site configuration',
       'access devel information',
-      'execute php code',
       'access toolbar',
     ]);
     $this->toolbarUser = $this->drupalCreateUser([

+ 2 - 2
sites/all/modules/contrib/dev/devel/tests/src/Kernel/DevelQueryDebugTest.php

@@ -69,7 +69,7 @@ class DevelQueryDebugTest extends KernelTestBase {
     // permissions. We expect only one status message containing the SQL for
     // the debugged query.
     \Drupal::currentUser()->setAccount($this->develUser);
-    $expected_message = "SELECT u.uid AS uid\nFROM \n{users} u";
+    $expected_message = "SELECT u.uid AS uid\nFROM\n{users} u";
 
     $query = \Drupal::database()->select('users', 'u');
     $query->fields('u', ['uid']);
@@ -102,7 +102,7 @@ class DevelQueryDebugTest extends KernelTestBase {
     // permissions. We expect only one status message containing the SQL for
     // the debugged entity query.
     \Drupal::currentUser()->setAccount($this->develUser);
-    $expected_message = "SELECT base_table.uid AS uid, base_table.uid AS base_table_uid\nFROM \n{users} base_table";
+    $expected_message = "SELECT base_table.uid AS uid, base_table.uid AS base_table_uid\nFROM\n{users} base_table";
 
     $query = \Drupal::entityQuery('user');
     $query->addTag('debug');

+ 1 - 1
sites/all/modules/contrib/dev/devel/tests/src/Kernel/DevelTwigExtensionTest.php

@@ -70,7 +70,7 @@ class DevelTwigExtensionTest extends KernelTestBase {
    */
   public function testTwigExtensionLoaded() {
     $twig_service = \Drupal::service('twig');
-    $extension = $twig_service->getExtension('devel_debug');
+    $extension = $twig_service->getExtension(Debug::class);
     $this->assertEquals(get_class($extension), Debug::class, 'Debug Extension loaded successfully.');
   }
 

+ 31 - 0
sites/all/modules/contrib/dev/devel/tests/src/Unish/DevelDrushTest.php

@@ -0,0 +1,31 @@
+<?php
+
+namespace Drupal\Tests\devel\Unish;
+
+use Unish\CommandUnishTestCase;
+
+/**
+ * @group devel
+ * @group commands
+ */
+class DevelDrushTest extends CommandUnishTestCase {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    $this->setUpDrupal(1, true);
+    $this->drush('pm:enable', ['devel']);
+  }
+
+  /**
+   * Test devel:services command.
+   */
+  public function testServices() {
+    $this->drush('devel:services');
+    $output = $this->getOutput();
+    $this->assertContains('account_switcher', $output);
+  }
+
+}
+

+ 6 - 0
sites/all/modules/contrib/dev/devel/tests/src/Unish/README.md

@@ -0,0 +1,6 @@
+Running Unish Tests
+===================
+
+Follow instructions provided by [Drush test README.md](https://github.com/drush-ops/drush/blob/master/tests/README.md) in order to test Unish test cases provided by contrib modules.
+
+See: https://github.com/drush-ops/drush/blob/master/tests/README.md

+ 3 - 1
sites/all/modules/contrib/dev/devel/webprofiler/src/Controller/ToolbarController.php

@@ -62,7 +62,9 @@ class ToolbarController extends ControllerBase {
    *
    * @param Profile $profile
    *
-   * @return array
+   * @return \Symfony\Component\HttpFoundation\Response
+   *
+   * @throws \Exception
    */
   public function toolbarAction(Profile $profile) {
     $this->profiler->disable();

+ 10 - 2
sites/all/modules/contrib/dev/devel/webprofiler/src/DataCollector/DatabaseDataCollector.php

@@ -43,8 +43,16 @@ class DatabaseDataCollector extends DataCollector implements DrupalDataCollector
   public function collect(Request $request, Response $response, \Exception $exception = NULL) {
     $connections = [];
     foreach (Database::getAllConnectionInfo() as $key => $info) {
-      $database = Database::getConnection('default', $key);
-      $connections[$key] = $database->getLogger()->get('webprofiler');
+      try {
+        $database = Database::getConnection('default', $key);
+
+        if ($database->getLogger()) {
+          $connections[$key] = $database->getLogger()->get('webprofiler');
+        }
+      } catch(\Exception $e) {
+        // There was some error during database connection, maybe a stale
+        // configuration in settings.php or wrong values used for a migration.
+      }
     }
 
     $this->data['connections'] = array_keys($connections);

+ 7 - 2
sites/all/modules/contrib/dev/devel/webprofiler/src/DataCollector/DrupalDataCollectorTrait.php

@@ -7,6 +7,13 @@ namespace Drupal\webprofiler\DataCollector;
  */
 trait DrupalDataCollectorTrait {
 
+  /**
+   * {@inheritdoc}
+   */
+  public function reset() {
+    $this->data = array();
+  }
+
   /**
    * {@inheritdoc}
    */
@@ -47,8 +54,6 @@ trait DrupalDataCollectorTrait {
    * @param $method
    *
    * @return array
-   *
-   * @throws \ReflectionException
    */
   public function getMethodData($class, $method) {
     $class = is_object($class) ? get_class($class) : $class;

+ 2 - 2
sites/all/modules/contrib/dev/devel/webprofiler/src/DataCollector/FormsDataCollector.php

@@ -41,11 +41,11 @@ class FormsDataCollector extends DataCollector implements DrupalDataCollectorInt
    * @return array
    */
   public function getForms() {
-    return $this->data['forms'];
+    return (!empty($this->data['forms']) && is_array($this->data['forms'])) ? $this->data['forms'] : [];
   }
 
   /**
-   * @return array
+   * @return int
    */
   public function getFormsCount() {
     return count($this->getForms());

Разница между файлами не показана из-за своего большого размера
+ 3 - 2
sites/all/modules/contrib/dev/devel/webprofiler/src/DataCollector/RequestDataCollector.php


+ 33 - 0
sites/all/modules/contrib/dev/devel/webprofiler/src/Entity/Decorators/Config/ImageStyleStorageDecorator.php

@@ -0,0 +1,33 @@
+<?php
+
+namespace Drupal\webprofiler\Entity\Decorators\Config;
+
+use Drupal\image\ImageStyleStorageInterface;
+
+/**
+ * Class ImageStyleStorageDecorator
+ */
+class ImageStyleStorageDecorator extends ConfigEntityStorageDecorator implements ImageStyleStorageInterface {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setReplacementId($name, $replacement) {
+    return $this->getOriginalObject()->setReplacementId($name, $replacement);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getReplacementId($name) {
+    return $this->getOriginalObject()->getReplacementId($name);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function clearReplacementId($name) {
+    return $this->getOriginalObject()->clearReplacementId($name);
+  }
+
+}

+ 4 - 0
sites/all/modules/contrib/dev/devel/webprofiler/src/Entity/EntityManagerWrapper.php

@@ -8,6 +8,7 @@ use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\Entity\EntityViewBuilderInterface;
 use Drupal\Core\Plugin\DefaultPluginManager;
 use Drupal\webprofiler\Entity\Decorators\Config\ConfigEntityStorageDecorator;
+use Drupal\webprofiler\Entity\Decorators\Config\ImageStyleStorageDecorator;
 use Drupal\webprofiler\Entity\Decorators\Config\RoleStorageDecorator;
 use Drupal\webprofiler\Entity\Decorators\Config\ShortcutSetStorageDecorator;
 use Drupal\webprofiler\Entity\Decorators\Config\VocabularyStorageDecorator;
@@ -98,6 +99,9 @@ class EntityManagerWrapper extends DefaultPluginManager implements EntityTypeMan
         case 'shortcut_set':
           return new ShortcutSetStorageDecorator($handler);
           break;
+        case 'image_style':
+          return new ImageStyleStorageDecorator($handler);
+          break;
         default:
           return new ConfigEntityStorageDecorator($handler);
           break;

+ 27 - 6
sites/all/modules/contrib/dev/devel/webprofiler/src/EventDispatcher/TraceableEventDispatcher.php

@@ -170,10 +170,18 @@ class TraceableEventDispatcher extends ContainerAwareEventDispatcher implements
    * @param $priority
    */
   private function addCalledListener($definition, $event_name, $priority) {
-    $this->calledListeners[$event_name][$priority][] = [
-      'class' => get_class($definition['callable'][0]),
-      'method' => $definition['callable'][1],
-    ];
+    if ($this->isClosure($definition['callable'])) {
+      $this->calledListeners[$event_name][$priority][] = [
+        'class' => 'Closure',
+        'method' => '',
+      ];
+    }
+    else {
+      $this->calledListeners[$event_name][$priority][] = [
+        'class' => get_class($definition['callable'][0]),
+        'method' => $definition['callable'][1],
+      ];
+    }
 
     foreach ($this->notCalledListeners[$event_name][$priority] as $key => $listener) {
       if (isset($listener['service'])) {
@@ -182,12 +190,25 @@ class TraceableEventDispatcher extends ContainerAwareEventDispatcher implements
         }
       }
       else {
-        if (get_class($listener['callable'][0]) == get_class($definition['callable'][0]) && $listener['callable'][1] == $definition['callable'][1]) {
-          unset($this->notCalledListeners[$event_name][$priority][$key]);
+        if ($this->isClosure($listener['callable'])) {
+          if (is_callable($listener['callable'], TRUE, $listenerCallableName) && is_callable($definition['callable'], TRUE, $definitionCallableName)) {
+            if ($listenerCallableName == $definitionCallableName) {
+              unset($this->notCalledListeners[$event_name][$priority][$key]);
+            }
+          }
+        }
+        else {
+          if (get_class($listener['callable'][0]) == get_class($definition['callable'][0]) && $listener['callable'][1] == $definition['callable'][1]) {
+            unset($this->notCalledListeners[$event_name][$priority][$key]);
+          }
         }
       }
 
     }
   }
 
+  private function isClosure($t) {
+    return is_object($t) && ($t instanceof \Closure);
+  }
+
 }

+ 118 - 0
sites/all/modules/contrib/dev/devel/webprofiler/src/EventSubscriber/ProfilerSubscriber.php

@@ -0,0 +1,118 @@
+<?php
+
+namespace Drupal\webprofiler\EventSubscriber;
+
+use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
+use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
+use Symfony\Component\HttpKernel\Event\FinishRequestEvent;
+use Symfony\Component\HttpKernel\KernelEvents;
+use Symfony\Component\HttpKernel\Profiler\Profiler;
+use Symfony\Component\HttpFoundation\RequestMatcherInterface;
+use Symfony\Component\HttpFoundation\RequestStack;
+use Symfony\Component\EventDispatcher\EventSubscriberInterface;
+
+class ProfilerSubscriber implements EventSubscriberInterface {
+
+  protected $profiler;
+
+  protected $matcher;
+
+  protected $onlyException;
+
+  protected $onlyMasterRequests;
+
+  protected $exception;
+
+  protected $profiles;
+
+  protected $requestStack;
+
+  protected $parents;
+
+  /**
+   * @param Profiler $profiler A Profiler instance
+   * @param RequestStack $requestStack A RequestStack instance
+   * @param RequestMatcherInterface|null $matcher A RequestMatcher instance
+   * @param bool $onlyException True if the profiler only collects data when an
+   *   exception occurs, false otherwise
+   * @param bool $onlyMasterRequests True if the profiler only collects data
+   *   when the request is a master request, false otherwise
+   */
+  public function __construct(Profiler $profiler, RequestStack $requestStack, RequestMatcherInterface $matcher = NULL, $onlyException = FALSE, $onlyMasterRequests = FALSE) {
+    $this->profiler = $profiler;
+    $this->matcher = $matcher;
+    $this->onlyException = (bool) $onlyException;
+    $this->onlyMasterRequests = (bool) $onlyMasterRequests;
+    $this->profiles = new \SplObjectStorage();
+    $this->parents = new \SplObjectStorage();
+    $this->requestStack = $requestStack;
+  }
+
+  /**
+   * Handles the onKernelException event.
+   */
+  public function onKernelException(GetResponseForExceptionEvent $event) {
+    if ($this->onlyMasterRequests && !$event->isMasterRequest()) {
+      return;
+    }
+
+    $this->exception = $event->getException();
+  }
+
+  /**
+   * Handles the onKernelResponse event.
+   */
+  public function onKernelResponse(FilterResponseEvent $event) {
+    $master = $event->isMasterRequest();
+    if ($this->onlyMasterRequests && !$master) {
+      return;
+    }
+
+    if ($this->onlyException && NULL === $this->exception) {
+      return;
+    }
+
+    $request = $event->getRequest();
+    $exception = $this->exception;
+    $this->exception = NULL;
+
+    if (NULL !== $this->matcher && !$this->matcher->matches($request)) {
+      return;
+    }
+
+    if (!$profile = $this->profiler->collect($request, $event->getResponse(), $exception)) {
+      return;
+    }
+
+    $this->profiles[$request] = $profile;
+
+    $this->parents[$request] = $this->requestStack->getParentRequest();
+  }
+
+  public function onKernelFinishRequest(FinishRequestEvent $event) {
+    // attach children to parents
+    foreach ($this->profiles as $request) {
+      if (NULL !== $parentRequest = $this->parents[$request]) {
+        if (isset($this->profiles[$parentRequest])) {
+          $this->profiles[$parentRequest]->addChild($this->profiles[$request]);
+        }
+      }
+    }
+
+    // save profiles
+    foreach ($this->profiles as $request) {
+      $this->profiler->saveProfile($this->profiles[$request]);
+    }
+
+    $this->profiles = new \SplObjectStorage();
+    $this->parents = new \SplObjectStorage();
+  }
+
+  public static function getSubscribedEvents() {
+    return [
+      KernelEvents::RESPONSE => ['onKernelResponse', -100],
+      KernelEvents::EXCEPTION => 'onKernelException',
+      KernelEvents::FINISH_REQUEST => ['onKernelFinishRequest', -1024],
+    ];
+  }
+}

+ 2 - 1
sites/all/modules/contrib/dev/devel/webprofiler/src/Form/ConfigForm.php

@@ -165,7 +165,8 @@ class ConfigForm extends ConfigFormBase {
       '#open' => FALSE,
     ];
 
-    $form['purge']['purge'] = [
+    $form['purge']['actions'] = ['#type' => 'actions'];
+    $form['purge']['actions']['purge'] = [
       '#type' => 'submit',
       '#value' => $this->t('Purge'),
       '#submit' => [[$this, 'purge']],

+ 11 - 1
sites/all/modules/contrib/dev/devel/webprofiler/src/Http/HttpClientMiddleware.php

@@ -36,8 +36,18 @@ class HttpClientMiddleware {
     return function ($handler) {
       return function (RequestInterface $request, array $options) use ($handler) {
 
-        $options['on_stats'] = function (TransferStats $stats) use ($request) {
+        // If on_stats callback is already set then save it
+        // and call it after ours.
+        if (isset($options['on_stats'])) {
+          $next = $options['on_stats'];
+        }
+        else {
+          $next = function(TransferStats $stats) {};
+        }
+
+        $options['on_stats'] = function (TransferStats $stats) use ($request, $next) {
           $request->stats = $stats;
+          $next($stats);
         };
 
         return $handler($request, $options)->then(

+ 10 - 0
sites/all/modules/contrib/dev/devel/webprofiler/src/Mail/MailManagerWrapper.php

@@ -91,4 +91,14 @@ class MailManagerWrapper extends DefaultPluginManager implements MailManagerInte
 
     return $message;
   }
+
+  /**
+   * {@inheritdoc}
+   *
+   * Must call getInstance on the decorated MailManager.
+   * @see https://www.drupal.org/node/2625554
+   */
+  public function getInstance(array $options) {
+    return $this->mailManager->getInstance($options);
+  }
 }

+ 325 - 0
sites/all/modules/contrib/dev/devel/webprofiler/src/ProxyClass/Command/ListCommand.php

@@ -0,0 +1,325 @@
+<?php
+// @codingStandardsIgnoreFile
+
+/**
+ * This file was generated via php core/scripts/generate-proxy-class.php
+ * 'Drupal\webprofiler\Command\ListCommand'
+ * "modules/contrib/devel/webprofiler/src".
+ */
+
+namespace Drupal\webprofiler\ProxyClass\Command {
+
+  /**
+   * Provides a proxy class for \Drupal\webprofiler\Command\ListCommand.
+   *
+   * @see \Drupal\Component\ProxyBuilder
+   */
+  class ListCommand {
+
+    use \Drupal\Core\DependencyInjection\DependencySerializationTrait;
+
+    /**
+     * The id of the original proxied service.
+     *
+     * @var string
+     */
+    protected $drupalProxyOriginalServiceId;
+
+    /**
+     * The real proxied service, after it was lazy loaded.
+     *
+     * @var \Drupal\webprofiler\Command\ListCommand
+     */
+    protected $service;
+
+    /**
+     * The service container.
+     *
+     * @var \Symfony\Component\DependencyInjection\ContainerInterface
+     */
+    protected $container;
+
+    /**
+     * Constructs a ProxyClass Drupal proxy object.
+     *
+     * @param \Symfony\Component\DependencyInjection\ContainerInterface $container
+     *   The container.
+     * @param string $drupal_proxy_original_service_id
+     *   The service ID of the original service.
+     */
+    public function __construct(\Symfony\Component\DependencyInjection\ContainerInterface $container, $drupal_proxy_original_service_id) {
+      $this->container = $container;
+      $this->drupalProxyOriginalServiceId = $drupal_proxy_original_service_id;
+    }
+
+    /**
+     * Lazy loads the real service from the container.
+     *
+     * @return object
+     *   Returns the constructed real service.
+     */
+    protected function lazyLoadItself() {
+      if (!isset($this->service)) {
+        $this->service = $this->container->get($this->drupalProxyOriginalServiceId);
+      }
+
+      return $this->service;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function showMessage($output, $message, $type = 'info') {
+      return $this->lazyLoadItself()->showMessage($output, $message, $type);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function ignoreValidationErrors() {
+      return $this->lazyLoadItself()->ignoreValidationErrors();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setApplication(\Symfony\Component\Console\Application $application = NULL) {
+      return $this->lazyLoadItself()->setApplication($application);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setHelperSet(\Symfony\Component\Console\Helper\HelperSet $helperSet) {
+      return $this->lazyLoadItself()->setHelperSet($helperSet);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getHelperSet() {
+      return $this->lazyLoadItself()->getHelperSet();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getApplication() {
+      return $this->lazyLoadItself()->getApplication();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function isEnabled() {
+      return $this->lazyLoadItself()->isEnabled();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function run(\Symfony\Component\Console\Input\InputInterface $input, \Symfony\Component\Console\Output\OutputInterface $output) {
+      return $this->lazyLoadItself()->run($input, $output);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setCode(callable $code) {
+      return $this->lazyLoadItself()->setCode($code);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function mergeApplicationDefinition($mergeArgs = TRUE) {
+      return $this->lazyLoadItself()->mergeApplicationDefinition($mergeArgs);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setDefinition($definition) {
+      return $this->lazyLoadItself()->setDefinition($definition);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getDefinition() {
+      return $this->lazyLoadItself()->getDefinition();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getNativeDefinition() {
+      return $this->lazyLoadItself()->getNativeDefinition();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function addArgument($name, $mode = NULL, $description = '', $default = NULL) {
+      return $this->lazyLoadItself()
+        ->addArgument($name, $mode, $description, $default);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function addOption($name, $shortcut = NULL, $mode = NULL, $description = '', $default = NULL) {
+      return $this->lazyLoadItself()
+        ->addOption($name, $shortcut, $mode, $description, $default);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setName($name) {
+      return $this->lazyLoadItself()->setName($name);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setProcessTitle($title) {
+      return $this->lazyLoadItself()->setProcessTitle($title);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getName() {
+      return $this->lazyLoadItself()->getName();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setHidden($hidden) {
+      return $this->lazyLoadItself()->setHidden($hidden);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function isHidden() {
+      return $this->lazyLoadItself()->isHidden();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setDescription($description) {
+      return $this->lazyLoadItself()->setDescription($description);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getDescription() {
+      return $this->lazyLoadItself()->getDescription();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setHelp($help) {
+      return $this->lazyLoadItself()->setHelp($help);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getHelp() {
+      return $this->lazyLoadItself()->getHelp();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getProcessedHelp() {
+      return $this->lazyLoadItself()->getProcessedHelp();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setAliases($aliases) {
+      return $this->lazyLoadItself()->setAliases($aliases);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getAliases() {
+      return $this->lazyLoadItself()->getAliases();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getSynopsis($short = FALSE) {
+      return $this->lazyLoadItself()->getSynopsis($short);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function addUsage($usage) {
+      return $this->lazyLoadItself()->addUsage($usage);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getUsages() {
+      return $this->lazyLoadItself()->getUsages();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getHelper($name) {
+      return $this->lazyLoadItself()->getHelper($name);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setContainer($container) {
+      return $this->lazyLoadItself()->setContainer($container);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function has($key) {
+      return $this->lazyLoadItself()->has($key);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function get($key) {
+      return $this->lazyLoadItself()->get($key);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setTranslator($translator) {
+      return $this->lazyLoadItself()->setTranslator($translator);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function trans($key) {
+      return $this->lazyLoadItself()->trans($key);
+    }
+
+  }
+
+}

+ 1 - 1
sites/all/modules/contrib/dev/devel/webprofiler/templates/Collector/database.html.twig

@@ -57,7 +57,7 @@
                     <option value="1">{{ 'Yes'|t }}</option>
                     <option value="0">{{ 'No'|t }}</option>
                 </select>
-                <label for="edit-type" class="panel__filter-label">{{ 'Slow queryes'|t }}</label>
+                <label for="edit-type" class="panel__filter-label">{{ 'Slow queries'|t }}</label>
             </div>
             <div class="panel__filter--select">
                 <select id="edit-database" class="js--live-filter">

+ 7 - 1
sites/all/modules/contrib/dev/devel/webprofiler/templates/Collector/events.html.twig

@@ -44,7 +44,13 @@
                             <tr>
                                 <td><%= event_name %></td>
                                 <% if( listener.clazz ) { %>
-                                    <td><%= Drupal.webprofiler.helpers.classLink(listener.clazz) %></td>
+                                    <td>
+                                        <% if( listener.class == "Closure" ) { %>
+                                            <%= "Closure" %>
+                                        <% } else { %>
+                                            <%= Drupal.webprofiler.helpers.classLink(listener.clazz) %>
+                                        <% } %>
+                                    </td>
                                 <% } else { %>
                                     <td><%= listener.service[0] %>::<%= listener.service[1] %></td>
                                 <% } %>

+ 19 - 9
sites/all/modules/contrib/dev/devel/webprofiler/templates/Collector/request.html.twig

@@ -46,9 +46,10 @@
 
         <% if (!_.isEmpty(data.request_query)) { %>
         <div class="panel__container">
+            <h3>GET parameters</h3>
             <table class="table--duo">
                 <thead>
-                <th>{{ 'GET Parameters'|t }}</th>
+                <th>{{ 'Name'|t }}</th>
                 <th>{{ 'Value'|t }}</th>
                 </thead>
                 <tbody>
@@ -65,9 +66,10 @@
 
         <% if (!_.isEmpty(data.request_request)) { %>
         <div class="panel__container">
+            <h3>POST parameters</h3>
             <table class="table--duo">
                 <thead>
-                <th>{{ 'POST Parameters'|t }}</th>
+                <th>{{ 'Name'|t }}</th>
                 <th>{{ 'Value'|t }}</th>
                 </thead>
                 <tbody>
@@ -83,18 +85,20 @@
         <% } %>
 
         <div class="panel__container">
+            <h3>Request attributes</h3>
             <table class="table--duo">
                 <thead>
-                <th>{{ 'Attributes'|t }}</th>
+                <th>{{ 'Name'|t }}</th>
                 <th>{{ 'Value'|t }}</th>
                 </thead>
                 <tbody>
                 <% _.each( data.request_attributes, function( item, key ){ %>
                 <tr>
                     <td><%- key %></td>
-
                     <% if(key == '_controller') { %>
                     <td><%= Drupal.webprofiler.helpers.classLink(data.controller) %></td>
+                    <% } else if(key == '_form') { %>
+                    <td><%= Drupal.webprofiler.helpers.classLink(data.controller) %></td>
                     <% } else { %>
                     <td><%= Drupal.webprofiler.helpers.frm(item) %></td>
                     <% } %>
@@ -106,9 +110,10 @@
 
         <% if (!_.isEmpty(data.request_cookies)) { %>
         <div class="panel__container">
+            <h3>Cookies</h3>
             <table class="table--duo">
                 <thead>
-                <th>{{ 'Cookies'|t }}</th>
+                <th>{{ 'Name'|t }}</th>
                 <th>{{ 'Value'|t }}</th>
                 </thead>
                 <tbody>
@@ -124,9 +129,10 @@
         <% } %>
 
         <div class="panel__container">
+            <h3>Request headers</h3>
             <table class="table--duo">
                 <thead>
-                <th>{{ 'Request headers'|t }}</th>
+                <th>{{ 'Name'|t }}</th>
                 <th>{{ 'Value'|t }}</th>
                 </thead>
                 <tbody>
@@ -142,16 +148,18 @@
 
         <% if (!_.isEmpty(data.content)) { %>
         <div class="panel__container">
+            <h3>Raw content</h3>
             <div class="h--word-broken"><%- data.content %></div>
         </div>
         <% } %>
 
         <% if (!_.isEmpty(data.access_check)) { %>
         <div class="panel__container">
+            <h3>Access check</h3>
             <table class="table--duo">
                 <thead>
                 <th>{{ 'Path'|t }}</th>
-                <th>{{ 'Access check'|t }}</th>
+                <th>{{ 'Service'|t }}</th>
                 </thead>
                 <tbody>
                 <% _.each(data.access_check, function(items, key){ %>
@@ -170,9 +178,10 @@
         <% } %>
 
         <div class="panel__container">
+            <h3>Server Parameters</h3>
             <table class="table--duo">
                 <thead>
-                <th>{{ 'Server Parameters'|t }}</th>
+                <th>{{ 'Name'|t }}</th>
                 <th>{{ 'Value'|t }}</th>
                 </thead>
                 <tbody>
@@ -187,9 +196,10 @@
         </div>
 
         <div class="panel__container">
+            <h3>Response headers</h3>
             <table class="table--duo">
                 <thead>
-                <th>{{ 'Response headers'|t }}</th>
+                <th>{{ 'Name'|t }}</th>
                 <th>{{ 'Value'|t }}</th>
                 </thead>
                 <tbody>

+ 3 - 3
sites/all/modules/contrib/dev/devel/webprofiler/templates/Collector/views.html.twig

@@ -41,9 +41,9 @@
                 <tr>
                     <td><%- item.id %></td>
                     <td><%- item.current_display %></td>
-                    <td><%- Drupal.webprofiler.helpers.printTime(item.build_time) %></td>
-                    <td><%- Drupal.webprofiler.helpers.printTime(item.execute_time) %></td>
-                    <td><%- Drupal.webprofiler.helpers.printTime(item.render_time) %></td>
+                    <td><%- Drupal.webprofiler.helpers.printTime(item.build_time, 's') %></td>
+                    <td><%- Drupal.webprofiler.helpers.printTime(item.execute_time, 's') %></td>
+                    <td><%- Drupal.webprofiler.helpers.printTime(item.render_time, 's') %></td>
                     <td><a href="<%- item.route %>">{{ 'Edit'|t }}</a></td>
                 </tr>
                 <% }); %>

+ 4 - 4
sites/all/modules/contrib/dev/devel/webprofiler/webprofiler.info.yml

@@ -7,10 +7,10 @@ configure: webprofiler.settings
 tags:
  - developer
 dependencies:
- - devel
+ - devel:devel
 
-# Information added by Drupal.org packaging script on 2017-10-05
-version: '8.x-1.2'
+# Information added by Drupal.org packaging script on 2019-01-29
+version: '8.x-2.0'
 core: '8.x'
 project: 'devel'
-datestamp: 1507197848
+datestamp: 1548799386

+ 1 - 1
sites/all/modules/contrib/dev/devel/webprofiler/webprofiler.services.yml

@@ -46,7 +46,7 @@ services:
 
 # event subscribers
   webprofiler.profiler_listener:
-    class: Symfony\Component\HttpKernel\EventListener\ProfilerListener
+    class: Drupal\webprofiler\EventSubscriber\ProfilerSubscriber
     arguments: ['@profiler', '@request_stack', '@?webprofiler.matcher', '%webprofiler.only_exceptions%', '%webprofiler.only_master_requests%']
     tags:
       - { name: event_subscriber }

Некоторые файлы не были показаны из-за большого количества измененных файлов