diff --git a/core/modules/action/tests/action_bulk_test/config/install/views.view.test_bulk_form.yml b/core/modules/action/tests/action_bulk_test/config/install/views.view.test_bulk_form.yml
index ea0f50a..5304853 100644
--- a/core/modules/action/tests/action_bulk_test/config/install/views.view.test_bulk_form.yml
+++ b/core/modules/action/tests/action_bulk_test/config/install/views.view.test_bulk_form.yml
@@ -71,7 +71,6 @@ display:
           empty_zero: false
           link_to_node: true
           plugin_id: node
-          provider: node
         node_bulk_form:
           id: node_bulk_form
           table: node
@@ -121,7 +120,6 @@ display:
           empty_zero: false
           hide_alter_empty: true
           plugin_id: node_bulk_form
-          provider: node
       filters:
         status:
           value: true
@@ -132,7 +130,6 @@ display:
             operator: ''
           group: 1
           plugin_id: boolean
-          provider: views
       sorts:
         created:
           id: created
@@ -140,7 +137,6 @@ display:
           field: created
           order: DESC
           plugin_id: date
-          provider: views
       title: form
   page_1:
     display_plugin: page
@@ -169,7 +165,6 @@ display:
           empty: true
           content: 'This view is empty.'
           plugin_id: text_custom
-          provider: views
 base_field: nid
 status: true
 module: views
diff --git a/core/modules/aggregator/config/install/views.view.aggregator_rss_feed.yml b/core/modules/aggregator/config/install/views.view.aggregator_rss_feed.yml
index a88b35f..8fb130d 100644
--- a/core/modules/aggregator/config/install/views.view.aggregator_rss_feed.yml
+++ b/core/modules/aggregator/config/install/views.view.aggregator_rss_feed.yml
@@ -13,11 +13,9 @@ display:
       access:
         type: none
         options: {  }
-        provider: views
       cache:
         type: none
         options: {  }
-        provider: views
       query:
         type: views_query
         options:
@@ -26,7 +24,6 @@ display:
           replica: false
           query_comment: false
           query_tags: {  }
-        provider: views
       exposed_form:
         type: basic
         options:
@@ -37,7 +34,6 @@ display:
           expose_sort_order: true
           sort_asc_label: Asc
           sort_desc_label: Desc
-        provider: views
       pager:
         type: full
         options:
@@ -59,13 +55,10 @@ display:
             first: '« first'
             last: 'last »'
           quantity: 9
-        provider: views
       style:
         type: default
-        provider: views
       row:
         type: 'entity:aggregator_item'
-        provider: views
       fields:
         iid:
           table: aggregator_item
diff --git a/core/modules/aggregator/config/install/views.view.aggregator_sources.yml b/core/modules/aggregator/config/install/views.view.aggregator_sources.yml
index c2f90ad..392f1a8 100644
--- a/core/modules/aggregator/config/install/views.view.aggregator_sources.yml
+++ b/core/modules/aggregator/config/install/views.view.aggregator_sources.yml
@@ -17,17 +17,14 @@ display:
     id: default
     display_title: Master
     position: 0
-    provider: views
     display_options:
       access:
         type: perm
         options:
           perm: 'access news feeds'
-        provider: null
       cache:
         type: none
         options: {  }
-        provider: views
       query:
         type: views_query
         options:
@@ -36,7 +33,6 @@ display:
           replica: false
           query_comment: false
           query_tags: {  }
-        provider: views
       exposed_form:
         type: basic
         options:
@@ -47,7 +43,6 @@ display:
           expose_sort_order: true
           sort_asc_label: Asc
           sort_desc_label: Desc
-        provider: views
       pager:
         type: full
         options:
@@ -82,11 +77,9 @@ display:
           field: fid
           id: fid
           plugin_id: numeric
-          provider: views
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies: {  }
           label: ''
           exclude: false
           alter:
@@ -152,7 +145,6 @@ display:
     id: page_1
     display_title: Page
     position: 1
-    provider: views
     display_options:
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
@@ -169,7 +161,6 @@ display:
     id: feed_1
     display_title: Feed
     position: 2
-    provider: views
     display_options:
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
@@ -177,7 +168,6 @@ display:
         type: opml
         options:
           grouping: {  }
-        provider: views
       path: aggregator/opml
       fields:
         title:
@@ -187,9 +177,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - aggregator
           label: ''
           exclude: false
           alter:
@@ -233,7 +220,6 @@ display:
           hide_alter_empty: true
           display_as_link: false
           plugin_id: aggregator_title_link
-          provider: aggregator
         url:
           id: url
           table: aggregator_feed
@@ -241,9 +227,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
           label: ''
           exclude: false
           alter:
@@ -287,7 +270,6 @@ display:
           hide_alter_empty: true
           display_as_link: false
           plugin_id: url
-          provider: views
         description:
           id: description
           table: aggregator_feed
@@ -295,9 +277,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
           label: ''
           exclude: false
           alter:
@@ -340,7 +319,6 @@ display:
           empty_zero: false
           hide_alter_empty: true
           plugin_id: xss
-          provider: views
         link:
           id: link
           table: aggregator_feed
@@ -348,9 +326,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
           label: ''
           exclude: false
           alter:
@@ -394,7 +369,6 @@ display:
           hide_alter_empty: true
           display_as_link: false
           plugin_id: url
-          provider: views
       defaults:
         fields: false
         title: false
@@ -409,7 +383,6 @@ display:
           language_field: ''
           xml_url_field: url
           url_field: ''
-        provider: views
       displays:
         page_1: page_1
         default: '0'
diff --git a/core/modules/block/tests/modules/block_test_views/test_views/views.view.test_view_block.yml b/core/modules/block/tests/modules/block_test_views/test_views/views.view.test_view_block.yml
index f1b113c..1599f21 100644
--- a/core/modules/block/tests/modules/block_test_views/test_views/views.view.test_view_block.yml
+++ b/core/modules/block/tests/modules/block_test_views/test_views/views.view.test_view_block.yml
@@ -31,14 +31,12 @@ display:
           id: name
           table: views_test_data
           field: name
-          provider: views_test_data
       title: test_view_block
   block_1:
     display_plugin: block
     id: block_1
     display_title: Block
     position: null
-    provider: views
     display_options:
       field:
         title:
diff --git a/core/modules/block/tests/modules/block_test_views/test_views/views.view.test_view_block2.yml b/core/modules/block/tests/modules/block_test_views/test_views/views.view.test_view_block2.yml
index c992084..b6b7cdb 100644
--- a/core/modules/block/tests/modules/block_test_views/test_views/views.view.test_view_block2.yml
+++ b/core/modules/block/tests/modules/block_test_views/test_views/views.view.test_view_block2.yml
@@ -31,10 +31,8 @@ display:
           id: name
           table: views_test_data
           field: name
-          provider: views_test_data
       title: test_view_block2
   block_1:
-    provider: views
     display_plugin: block
     id: block_1
     display_title: Block
@@ -44,7 +42,6 @@ display:
         title:
           link_to_node: true
   block_2:
-    provider: views
     display_plugin: block
     id: block_2
     display_title: Block
@@ -54,7 +51,6 @@ display:
         title:
           link_to_node: true
   block_3:
-    provider: views
     display_plugin: block
     id: block_3
     display_title: Block
diff --git a/core/modules/comment/config/install/views.view.comments_recent.yml b/core/modules/comment/config/install/views.view.comments_recent.yml
index 7a4b559..fe30b01 100644
--- a/core/modules/comment/config/install/views.view.comments_recent.yml
+++ b/core/modules/comment/config/install/views.view.comments_recent.yml
@@ -22,22 +22,17 @@ display:
         type: perm
         options:
           perm: 'access comments'
-        provider: user
       cache:
         type: none
-        provider: views
       query:
         type: views_query
-        provider: views
       exposed_form:
         type: basic
-        provider: views
       pager:
         type: some
         options:
           items_per_page: 10
           offset: 0
-        provider: views
       style:
         type: html_list
         options:
@@ -47,7 +42,6 @@ display:
           type: ul
           wrapper_class: item-list
           class: ''
-        provider: views
       row:
         type: fields
         options:
@@ -57,7 +51,6 @@ display:
             changed: changed
           separator: ' '
           hide_empty: false
-        provider: views
       relationships:
         node:
           field: node
@@ -231,7 +224,6 @@ display:
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
   block_1:
-    provider: views
     display_plugin: block
     id: block_1
     display_title: Block
diff --git a/core/modules/comment/src/Plugin/views/wizard/Comment.php b/core/modules/comment/src/Plugin/views/wizard/Comment.php
index f88e43f..6c69729 100644
--- a/core/modules/comment/src/Plugin/views/wizard/Comment.php
+++ b/core/modules/comment/src/Plugin/views/wizard/Comment.php
@@ -158,7 +158,6 @@ protected function defaultDisplayOptions() {
     $display_options['fields']['subject']['id'] = 'subject';
     $display_options['fields']['subject']['table'] = 'comment_field_data';
     $display_options['fields']['subject']['field'] = 'subject';
-    $display_options['fields']['subject']['provider'] = 'comment';
     $display_options['fields']['subject']['label'] = '';
     $display_options['fields']['subject']['alter']['alter_text'] = 0;
     $display_options['fields']['subject']['alter']['make_link'] = 0;
diff --git a/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_rss.yml b/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_rss.yml
index be5db60..75ad57a 100644
--- a/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_rss.yml
+++ b/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_rss.yml
@@ -37,7 +37,6 @@ display:
           id: node
           required: true
           table: comment_field_data
-          provider: views
       fields:
         subject:
           id: subject
@@ -57,7 +56,6 @@ display:
           hide_empty: false
           empty_zero: false
           link_to_comment: true
-          provider: comment
       filters: {  }
       sorts: {  }
 label: test_comment_rss
diff --git a/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_user_uid.yml b/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_user_uid.yml
index e8cb5dc..6f240d2 100644
--- a/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_user_uid.yml
+++ b/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_user_uid.yml
@@ -20,7 +20,6 @@ display:
             items_per_page: 25
           table: node_field_data
           plugin_id: argument_comment_user_uid
-          provider: comment
       cache:
         type: none
       exposed_form:
@@ -31,7 +30,6 @@ display:
           id: nid
           table: node
           plugin_id: node
-          provider: node
       pager:
         type: full
       query:
diff --git a/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_field_filters.yml b/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_field_filters.yml
index a743eea..c0368e6 100644
--- a/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_field_filters.yml
+++ b/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_field_filters.yml
@@ -18,19 +18,14 @@ display:
     id: default
     display_title: Master
     position: 0
-    provider: views
     display_options:
       access:
         type: perm
         options:
           perm: 'access content'
-        provider: user
-        dependencies: {  }
       cache:
         type: none
         options: {  }
-        provider: views
-        dependencies: {  }
       query:
         type: views_query
         options:
@@ -39,8 +34,6 @@ display:
           replica: false
           query_comment: false
           query_tags: {  }
-        provider: views
-        dependencies: {  }
       exposed_form:
         type: basic
         options:
@@ -51,8 +44,6 @@ display:
           expose_sort_order: true
           sort_asc_label: Asc
           sort_desc_label: Desc
-        provider: views
-        dependencies: {  }
       pager:
         type: none
         options:
@@ -72,17 +63,14 @@ display:
           field: node
           required: true
           plugin_id: standard
-          provider: views
           relationship: none
           group_type: group
           admin_label: Content
-          dependencies: {  }
       fields:
         subject:
           id: subject
           table: comment_field_data
           field: subject
-          provider: comment
           label: ''
           alter:
             alter_text: false
@@ -99,7 +87,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies: {  }
           exclude: false
           element_type: ''
           element_class: ''
@@ -120,9 +107,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
           operator: contains
           value: Comida
           group: 1
@@ -152,7 +136,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: string
-          provider: views
       sorts: {  }
       title: 'Title filter page'
       header: {  }
@@ -166,7 +149,6 @@ display:
     id: page_tc
     display_title: 'Title Comida'
     position: 1
-    provider: views
     display_options:
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
@@ -177,7 +159,6 @@ display:
     id: page_bp
     display_title: 'Body Paris'
     position: 1
-    provider: views
     display_options:
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
@@ -191,9 +172,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
           operator: contains
           value: Paris
           group: 1
@@ -223,7 +201,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: string
-          provider: views
       defaults:
         filters: false
         filter_groups: false
@@ -238,7 +215,6 @@ display:
     id: page_tp
     display_title: 'Title Paris'
     position: 1
-    provider: views
     display_options:
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
@@ -252,10 +228,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
-              - views
           operator: contains
           value: Paris
           group: 1
@@ -285,7 +257,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: string
-          provider: views
       defaults:
         filters: false
         filter_groups: false
@@ -298,7 +269,6 @@ display:
     id: page_bf
     display_title: 'Body Comida'
     position: 1
-    provider: views
     display_options:
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
@@ -312,10 +282,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
-              - views
           operator: contains
           value: Comida
           group: 1
@@ -345,7 +311,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: string
-          provider: views
       defaults:
         filters: false
         filter_groups: false
diff --git a/core/modules/content_translation/tests/modules/content_translation_test_views/test_views/views.view.test_entity_translations_link.yml b/core/modules/content_translation/tests/modules/content_translation_test_views/test_views/views.view.test_entity_translations_link.yml
index 7b495a2..d710f84 100644
--- a/core/modules/content_translation/tests/modules/content_translation_test_views/test_views/views.view.test_entity_translations_link.yml
+++ b/core/modules/content_translation/tests/modules/content_translation_test_views/test_views/views.view.test_entity_translations_link.yml
@@ -44,7 +44,6 @@ display:
           link_to_user: true
           format_username: true
           plugin_id: user_name
-          provider: user
         translation_link:
           id: translation_link
           table: users
@@ -72,7 +71,6 @@ display:
           group: true
           exposed: false
           plugin_id: numeric
-          provider: views
       sorts:
         created:
           id: created
@@ -80,7 +78,6 @@ display:
           field: created
           order: DESC
           plugin_id: date
-          provider: views
       title: People
       empty:
         area:
@@ -91,7 +88,6 @@ display:
           content: 'No people available.'
           format: plain_text
           plugin_id: text
-          provider: views
   page_1:
     display_plugin: page
     id: page_1
diff --git a/core/modules/entity_reference/tests/modules/entity_reference_test/config/install/views.view.test_entity_reference.yml b/core/modules/entity_reference/tests/modules/entity_reference_test/config/install/views.view.test_entity_reference.yml
index 46c20ac..d647faa 100644
--- a/core/modules/entity_reference/tests/modules/entity_reference_test/config/install/views.view.test_entity_reference.yml
+++ b/core/modules/entity_reference/tests/modules/entity_reference_test/config/install/views.view.test_entity_reference.yml
@@ -9,7 +9,6 @@ display:
     id: entity_reference_1
     display_title: EntityReference
     position: null
-    provider: entity_reference
     display_options:
       style:
         type: entity_reference
@@ -92,7 +91,6 @@ display:
           hide_alter_empty: true
           link_to_node: true
           plugin_id: node
-          provider: node
       filters:
         status:
           value: true
@@ -103,7 +101,6 @@ display:
             operator: ''
           group: 1
           plugin_id: boolean
-          provider: views
       sorts:
         created:
           id: created
@@ -111,7 +108,6 @@ display:
           field: created
           order: DESC
           plugin_id: date
-          provider: views
 label: 'Entity reference'
 module: entity_reference_test
 id: test_entity_reference
diff --git a/core/modules/field/src/Plugin/views/field/Field.php b/core/modules/field/src/Plugin/views/field/Field.php
index 6cb97ba..558551e 100644
--- a/core/modules/field/src/Plugin/views/field/Field.php
+++ b/core/modules/field/src/Plugin/views/field/Field.php
@@ -938,9 +938,11 @@ function field_langcode(EntityInterface $entity) {
   /**
    * {@inheritdoc}
    */
-  public function getDependencies() {
+  public function calculateDependencies() {
     // Add the module providing the configured field storage as a dependency.
-    return array('config' => array($this->getFieldStorageConfig()->getConfigDependencyName()));
+    return [
+      'config' => [$this->getFieldStorageConfig()->getConfigDependencyName()]
+    ];
   }
 
   /**
diff --git a/core/modules/field/src/Tests/Views/FieldUITest.php b/core/modules/field/src/Tests/Views/FieldUITest.php
index 8e94404..884f82d 100644
--- a/core/modules/field/src/Tests/Views/FieldUITest.php
+++ b/core/modules/field/src/Tests/Views/FieldUITest.php
@@ -83,6 +83,10 @@ public function testHandlerUI() {
     $view->initHandlers();
     $this->assertEqual($view->field['field_name_0']->options['type'], 'text_trimmed');
     $this->assertEqual($view->field['field_name_0']->options['settings']['trim_length'], $random_number);
+
+    // Ensure that the view depends on the field storage.
+    $dependencies = \Drupal::service('config.manager')->findConfigEntityDependents('config', [$this->fieldStorages[0]->getConfigDependencyName()]);
+    $this->assertTrue(isset($dependencies['views.view.test_view_fieldapi']), 'The view is dependent on the field storage.');
   }
 
   /**
diff --git a/core/modules/field/tests/modules/field_test_views/test_views/views.view.test_view_fieldapi.yml b/core/modules/field/tests/modules/field_test_views/test_views/views.view.test_view_fieldapi.yml
index 8ad5a08..faaf4bd 100644
--- a/core/modules/field/tests/modules/field_test_views/test_views/views.view.test_view_fieldapi.yml
+++ b/core/modules/field/tests/modules/field_test_views/test_views/views.view.test_view_fieldapi.yml
@@ -13,19 +13,16 @@ display:
           id: nid
           table: node
           plugin_id: node
-          provider: node
         field_name_0:
           id: field_name_0
           table: node__field_name_0
           field: field_name_0
           plugin_id: field
-          provider: field
         field_name_5:
           id: field_name_5
           table: node__field_name_5
           field: field_name_5
           plugin_id: field
-          provider: field
       cache:
         type: none
       exposed_form:
diff --git a/core/modules/file/config/install/views.view.files.yml b/core/modules/file/config/install/views.view.files.yml
index ead1fe8..ec3bd40 100644
--- a/core/modules/file/config/install/views.view.files.yml
+++ b/core/modules/file/config/install/views.view.files.yml
@@ -14,11 +14,9 @@ display:
         type: perm
         options:
           perm: 'access files overview'
-        provider: views
       cache:
         type: none
         options: {  }
-        provider: views
       query:
         type: views_query
         options:
@@ -27,7 +25,6 @@ display:
           replica: false
           query_comment: false
           query_tags: {  }
-        provider: views
       exposed_form:
         type: basic
         options:
@@ -38,7 +35,6 @@ display:
           expose_sort_order: true
           sort_asc_label: Asc
           sort_desc_label: Desc
-        provider: views
       pager:
         type: mini
         options:
@@ -57,7 +53,6 @@ display:
             items_per_page_options_all_label: '- All -'
             offset: false
             offset_label: Offset
-        provider: views
       style:
         type: table
         options:
@@ -137,10 +132,8 @@ display:
               responsive: priority-medium
           default: 'changed'
           empty_table: true
-        provider: views
       row:
         type: fields
-        provider: views
       fields:
         fid:
           id: fid
@@ -726,7 +719,6 @@ display:
             items_per_page_options_all_label: '- All -'
             offset: false
             offset_label: Offset
-        provider: views
       pager_options: false
       filters: {  }
       filter_groups:
@@ -783,7 +775,6 @@ display:
           hide_alter_empty: true
           link_to_entity: true
           plugin_id: entity_label
-          provider: views
         type:
           id: type
           table: file_usage
@@ -833,7 +824,6 @@ display:
           empty_zero: false
           hide_alter_empty: true
           plugin_id: standard
-          provider: views
         module:
           id: module
           table: file_usage
@@ -883,7 +873,6 @@ display:
           empty_zero: false
           hide_alter_empty: true
           plugin_id: standard
-          provider: views
         count:
           id: count
           table: file_usage
@@ -942,7 +931,6 @@ display:
           prefix: ''
           suffix: ''
           plugin_id: numeric
-          provider: views
       group_by: false
       title: 'File usage'
       arguments:
@@ -981,7 +969,6 @@ display:
           break_phrase: false
           not: false
           plugin_id: file_fid
-          provider: file
       style:
         type: table
         options:
@@ -1029,11 +1016,9 @@ display:
               responsive: ''
           default: entity_label
           empty_table: true
-        provider: views
       row:
         type: fields
         options: {  }
-        provider: views
       relationships:
         fid:
           id: fid
diff --git a/core/modules/file/src/Plugin/views/wizard/File.php b/core/modules/file/src/Plugin/views/wizard/File.php
index 94529a0..7e10127 100644
--- a/core/modules/file/src/Plugin/views/wizard/File.php
+++ b/core/modules/file/src/Plugin/views/wizard/File.php
@@ -53,7 +53,6 @@ protected function defaultDisplayOptions() {
     $display_options['fields']['filename']['id'] = 'filename';
     $display_options['fields']['filename']['table'] = 'file_managed';
     $display_options['fields']['filename']['field'] = 'filename';
-    $display_options['fields']['filename']['provider'] = 'file';
     $display_options['fields']['filename']['label'] = '';
     $display_options['fields']['filename']['alter']['alter_text'] = 0;
     $display_options['fields']['filename']['alter']['make_link'] = 0;
diff --git a/core/modules/file/tests/modules/file_test_views/test_views/views.view.file_extension_view.yml b/core/modules/file/tests/modules/file_test_views/test_views/views.view.file_extension_view.yml
index fe65a09..ea140c6 100644
--- a/core/modules/file/tests/modules/file_test_views/test_views/views.view.file_extension_view.yml
+++ b/core/modules/file/tests/modules/file_test_views/test_views/views.view.file_extension_view.yml
@@ -17,21 +17,18 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
         id:
           field: id
           id: id
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
         name:
           field: name
           id: file_extension
           relationship: none
           table: views_test_data
           plugin_id: string
-          provider: views_test_data
       pager:
         options:
           offset: '0'
@@ -45,7 +42,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/forum/tests/modules/forum_test_views/test_views/views.view.test_forum_index.yml b/core/modules/forum/tests/modules/forum_test_views/test_views/views.view.test_forum_index.yml
index 4edfdff..a22b8c0 100644
--- a/core/modules/forum/tests/modules/forum_test_views/test_views/views.view.test_forum_index.yml
+++ b/core/modules/forum/tests/modules/forum_test_views/test_views/views.view.test_forum_index.yml
@@ -29,7 +29,6 @@ display:
           table: forum_index
           field: nid
           id: nid
-          provider: views
         sticky:
           id: sticky
           table: forum_index
@@ -83,7 +82,6 @@ display:
           type_custom_false: ''
           not: false
           plugin_id: boolean
-          provider: views
         comment_count:
           id: comment_count
           table: forum_index
@@ -142,7 +140,6 @@ display:
           prefix: ''
           suffix: ''
           plugin_id: numeric
-          provider: views
       filters: {  }
       sorts: {  }
 label: test_forum_index
diff --git a/core/modules/node/config/install/views.view.archive.yml b/core/modules/node/config/install/views.view.archive.yml
index d1bc01d..5ea021e 100644
--- a/core/modules/node/config/install/views.view.archive.yml
+++ b/core/modules/node/config/install/views.view.archive.yml
@@ -26,16 +26,13 @@ display:
           distinct: false
           replica: false
           query_tags: {  }
-        provider: views
       title: 'Monthly archive'
       access:
         type: none
         options: {  }
-        provider: views
       cache:
         type: none
         options: {  }
-        provider: views
       exposed_form:
         type: basic
         options:
@@ -46,7 +43,6 @@ display:
           expose_sort_order: true
           sort_asc_label: Asc
           sort_desc_label: Desc
-        provider: views
       pager:
         type: mini
         options:
@@ -65,7 +61,6 @@ display:
           tags:
             previous: ‹‹
             next: ››
-        provider: views
       sorts:
         created:
           id: created
@@ -80,7 +75,6 @@ display:
           expose:
             label: ''
           granularity: second
-          provider: views
       arguments:
         created_year_month:
           id: created_year_month
@@ -100,7 +94,6 @@ display:
             items_per_page: 30
           specify_validation: true
           plugin_id: date_year_month
-          provider: views
       filters:
         status:
           id: status
@@ -111,7 +104,6 @@ display:
           expose:
             operator: '0'
           plugin_id: boolean
-          provider: views
         langcode:
           id: langcode
           table: node_field_data
@@ -119,9 +111,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
           operator: in
           value:
             '***LANGUAGE_language_content***': '***LANGUAGE_language_content***'
@@ -153,7 +142,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: language
-          provider: views
       style:
         type: default
         options:
@@ -161,13 +149,11 @@ display:
           row_class: ''
           default_row_class: true
           uses_fields: false
-        provider: views
       row:
         type: 'entity:node'
         options:
           view_mode: teaser
           comments: false
-        provider: node
       header: {  }
       footer: {  }
       empty: {  }
@@ -180,12 +166,10 @@ display:
     display_title: Block
     display_plugin: block
     position: 1
-    provider: views
     display_options:
       query:
         type: views_query
         options: {  }
-        provider: views
       defaults:
         arguments: false
       arguments:
@@ -205,7 +189,6 @@ display:
             items_per_page: 30
           specify_validation: true
           plugin_id: date_year_month
-          provider: views
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
   page_1:
@@ -217,7 +200,6 @@ display:
       query:
         type: views_query
         options: {  }
-        provider: views
       path: archive
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
diff --git a/core/modules/node/config/install/views.view.content.yml b/core/modules/node/config/install/views.view.content.yml
index b42a141..106fd92 100644
--- a/core/modules/node/config/install/views.view.content.yml
+++ b/core/modules/node/config/install/views.view.content.yml
@@ -20,13 +20,10 @@ display:
         type: perm
         options:
           perm: 'access content overview'
-        provider: user
       cache:
         type: none
-        provider: views
       query:
         type: views_query
-        provider: views
       exposed_form:
         type: basic
         options:
@@ -37,12 +34,10 @@ display:
           expose_sort_order: true
           sort_asc_label: Asc
           sort_desc_label: Desc
-        provider: views
       pager:
         type: full
         options:
           items_per_page: 50
-        provider: views
       style:
         type: table
         options:
@@ -136,10 +131,8 @@ display:
               responsive: ''
           default: changed
           empty_table: true
-        provider: views
       row:
         type: fields
-        provider: views
       fields:
         node_bulk_form:
           id: node_bulk_form
@@ -156,7 +149,6 @@ display:
           empty_zero: false
           hide_alter_empty: true
           plugin_id: node_bulk_form
-          provider: node
         title:
           id: title
           table: node_field_data
@@ -173,7 +165,6 @@ display:
           hide_alter_empty: true
           link_to_node: true
           plugin_id: node
-          provider: node
         type:
           id: type
           table: node_field_data
@@ -191,7 +182,6 @@ display:
           link_to_node: false
           machine_name: ''
           plugin_id: node_type
-          provider: node
         name:
           id: name
           table: users_field_data
@@ -212,7 +202,6 @@ display:
           anonymous_text: ''
           format_username: true
           plugin_id: user_name
-          provider: user
         status:
           id: status
           table: node_field_data
@@ -232,7 +221,6 @@ display:
           type_custom_false: ''
           not: ''
           plugin_id: boolean
-          provider: views
         changed:
           id: changed
           table: node_field_data
@@ -251,7 +239,6 @@ display:
           custom_date_format: ''
           timezone: ''
           plugin_id: date
-          provider: views
         edit_node:
           id: edit_node
           table: node
@@ -260,7 +247,6 @@ display:
           exclude: true
           text: Edit
           plugin_id: node_link_edit
-          provider: node
         delete_node:
           id: delete_node
           table: node
@@ -269,7 +255,6 @@ display:
           exclude: true
           text: Delete
           plugin_id: node_link_delete
-          provider: node
         dropbutton:
           id: dropbutton
           table: views
@@ -280,7 +265,6 @@ display:
             delete_node: delete_node
           destination: true
           plugin_id: dropbutton
-          provider: views
       filters:
         status_extra:
           id: status_extra
@@ -289,7 +273,6 @@ display:
           operator: '='
           value: false
           plugin_id: node_status
-          provider: node
           group: 1
         status:
           id: status
@@ -335,7 +318,6 @@ display:
                 operator: '='
                 value: '0'
           plugin_id: boolean
-          provider: views
         type:
           id: type
           table: node_field_data
@@ -375,7 +357,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: bundle
-          provider: views
         title:
           id: title
           table: node_field_data
@@ -414,7 +395,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: string
-          provider: views
         langcode:
           id: langcode
           table: node_field_data
@@ -422,9 +402,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
           operator: in
           value: {  }
           group: 1
@@ -457,7 +434,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: language
-          provider: views
       sorts: {  }
       title: Content
       empty:
@@ -468,7 +444,6 @@ display:
           empty: true
           content: 'No content available.'
           plugin_id: text_custom
-          provider: views
       arguments: {  }
       relationships:
         uid:
@@ -478,7 +453,6 @@ display:
           admin_label: author
           required: true
           plugin_id: standard
-          provider: views
       show_admin_links: false
       filter_groups:
         operator: AND
diff --git a/core/modules/node/config/install/views.view.content_recent.yml b/core/modules/node/config/install/views.view.content_recent.yml
index 31a7c84..4dbde41 100644
--- a/core/modules/node/config/install/views.view.content_recent.yml
+++ b/core/modules/node/config/install/views.view.content_recent.yml
@@ -24,11 +24,9 @@ display:
         type: perm
         options:
           perm: 'access content'
-        provider: user
       cache:
         type: none
         options: {  }
-        provider: views
       query:
         type: views_query
         options:
@@ -37,7 +35,6 @@ display:
           replica: false
           query_comment: false
           query_tags: {  }
-        provider: views
       exposed_form:
         type: basic
         options:
@@ -48,13 +45,11 @@ display:
           expose_sort_order: true
           sort_asc_label: Asc
           sort_desc_label: Desc
-        provider: views
       pager:
         type: some
         options:
           items_per_page: 10
           offset: 0
-        provider: views
       style:
         type: table
         options:
@@ -110,10 +105,8 @@ display:
               responsive: ''
           default: '-1'
           empty_table: false
-        provider: views
       row:
         type: fields
-        provider: views
       fields:
         title:
           id: title
@@ -165,7 +158,6 @@ display:
           hide_alter_empty: true
           link_to_node: true
           plugin_id: node
-          provider: node
         name:
           id: name
           table: users_field_data
@@ -219,7 +211,6 @@ display:
           anonymous_text: ''
           format_username: true
           plugin_id: user_name
-          provider: user
         edit_node:
           id: edit_node
           table: node
@@ -270,7 +261,6 @@ display:
           hide_alter_empty: true
           text: edit
           plugin_id: node_link_edit
-          provider: node
         delete_node:
           id: delete_node
           table: node
@@ -321,7 +311,6 @@ display:
           hide_alter_empty: true
           text: delete
           plugin_id: node_link_delete
-          provider: node
       filters:
         status_extra:
           id: status_extra
@@ -359,7 +348,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: node_status
-          provider: node
         langcode:
           id: langcode
           table: node_field_data
@@ -367,9 +355,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
           operator: in
           value:
             '***LANGUAGE_language_content***': '***LANGUAGE_language_content***'
@@ -401,7 +386,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: language
-          provider: views
       sorts:
         changed:
           id: changed
@@ -416,7 +400,6 @@ display:
             label: ''
           granularity: second
           plugin_id: date
-          provider: views
       title: 'Recent content'
       header: {  }
       footer: {  }
@@ -432,7 +415,6 @@ display:
           tokenize: false
           content: 'No content available.'
           plugin_id: text_custom
-          provider: views
       relationships:
         uid:
           id: uid
@@ -443,7 +425,6 @@ display:
           admin_label: author
           required: true
           plugin_id: standard
-          provider: views
       arguments: {  }
       filter_groups:
         operator: AND
@@ -464,4 +445,3 @@ display:
       block_category: 'Lists (Views)'
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
-    provider: views
diff --git a/core/modules/node/config/install/views.view.frontpage.yml b/core/modules/node/config/install/views.view.frontpage.yml
index f178b96..ef7f38e 100644
--- a/core/modules/node/config/install/views.view.frontpage.yml
+++ b/core/modules/node/config/install/views.view.frontpage.yml
@@ -18,11 +18,9 @@ display:
         type: perm
         options:
           perm: 'access content'
-        provider: user
       cache:
         type: none
         options: {  }
-        provider: views
       empty:
         area_text_custom:
           admin_label: ''
@@ -36,7 +34,6 @@ display:
           table: views
           tokenize: false
           plugin_id: text
-          provider: views
         node_listing_empty:
           admin_label: ''
           empty: true
@@ -47,7 +44,6 @@ display:
           relationship: none
           table: node
           plugin_id: node_listing_empty
-          provider: node
         title:
           id: title
           table: views
@@ -59,7 +55,6 @@ display:
           empty: true
           title: 'Welcome to [site:name]'
           plugin_id: title
-          provider: views
       exposed_form:
         type: basic
         options:
@@ -107,7 +102,6 @@ display:
           table: node_field_data
           value: true
           plugin_id: boolean
-          provider: views
         status:
           expose:
             operator: ''
@@ -117,7 +111,6 @@ display:
           table: node_field_data
           value: true
           plugin_id: boolean
-          provider: views
         langcode:
           id: langcode
           table: node_field_data
@@ -125,9 +118,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
           operator: in
           value:
             '***LANGUAGE_language_content***': '***LANGUAGE_language_content***'
@@ -159,7 +149,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: language
-          provider: views
       pager:
         type: full
         options:
@@ -181,7 +170,6 @@ display:
             first: '« first'
             last: 'last »'
           quantity: 9
-        provider: views
       query:
         type: views_query
         options:
@@ -190,14 +178,12 @@ display:
           replica: false
           query_comment: false
           query_tags: {  }
-        provider: views
       row:
         type: 'entity:node'
         options:
           build_mode: teaser
           comments: false
           view_mode: teaser
-        provider: views
       sorts:
         sticky:
           admin_label: ''
@@ -211,7 +197,6 @@ display:
           relationship: none
           table: node_field_data
           plugin_id: boolean
-          provider: views
         created:
           field: created
           id: created
@@ -225,7 +210,6 @@ display:
           expose:
             label: ''
           granularity: second
-          provider: views
       style:
         type: default
         options:
@@ -270,19 +254,16 @@ display:
         options:
           items_per_page: 10
           offset: 0
-        provider: views
       style:
         type: rss
         options:
           description: ''
           grouping: {  }
           uses_fields: false
-        provider: views
       row:
         type: node_rss
         options:
           relationship: none
           view_mode: rss
-        provider: views
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
diff --git a/core/modules/node/config/install/views.view.glossary.yml b/core/modules/node/config/install/views.view.glossary.yml
index f7ccaef..957a4cc 100644
--- a/core/modules/node/config/install/views.view.glossary.yml
+++ b/core/modules/node/config/install/views.view.glossary.yml
@@ -27,16 +27,13 @@ display:
           distinct: false
           replica: false
           query_tags: {  }
-        provider: views
       use_ajax: true
       access:
         type: none
         options: {  }
-        provider: views
       cache:
         type: none
         options: {  }
-        provider: views
       exposed_form:
         type: basic
         options:
@@ -47,7 +44,6 @@ display:
           expose_sort_order: true
           sort_asc_label: Asc
           sort_desc_label: Desc
-        provider: views
       pager:
         type: mini
         options:
@@ -66,7 +62,6 @@ display:
           tags:
             previous: ‹‹
             next: ››
-        provider: views
       fields:
         title:
           id: title
@@ -118,7 +113,6 @@ display:
           hide_empty: false
           empty_zero: false
           hide_alter_empty: true
-          provider: node
         name:
           id: name
           table: users_field_data
@@ -172,7 +166,6 @@ display:
           overwrite_anonymous: false
           anonymous_text: ''
           format_username: true
-          provider: user
         changed:
           id: changed
           table: node_field_data
@@ -225,7 +218,6 @@ display:
           hide_alter_empty: true
           custom_date_format: ''
           timezone: ''
-          provider: views
       arguments:
         title:
           id: title
@@ -258,7 +250,6 @@ display:
             fail: 'not found'
           validate_options: {  }
           break_phrase: false
-          provider: views
       relationships:
         uid:
           id: uid
@@ -269,7 +260,6 @@ display:
           group_type: group
           admin_label: author
           required: false
-          provider: views
       style:
         type: table
         options:
@@ -297,7 +287,6 @@ display:
           order: asc
           summary: ''
           empty_table: false
-        provider: views
       row:
         type: fields
         options:
@@ -305,7 +294,6 @@ display:
           separator: ''
           hide_empty: false
           default_field_elements: true
-        provider: views
       header: {  }
       footer: {  }
       empty: {  }
@@ -320,9 +308,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
           operator: in
           value:
             '***LANGUAGE_language_content***': '***LANGUAGE_language_content***'
@@ -354,7 +339,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: language
-          provider: views
   page_1:
     id: page_1
     display_title: Page
@@ -382,13 +366,11 @@ display:
       query:
         type: views_query
         options: {  }
-        provider: views
       pager:
         type: none
         options:
           offset: 0
           items_per_page: 0
-        provider: views
       defaults:
         arguments: false
       arguments:
@@ -426,7 +408,6 @@ display:
             fail: 'not found'
           validate_options: {  }
           break_phrase: false
-          provider: views
       displays:
         default: default
         page_1: page_1
diff --git a/core/modules/node/src/Plugin/views/wizard/Node.php b/core/modules/node/src/Plugin/views/wizard/Node.php
index 05ba0d1..3a90219 100644
--- a/core/modules/node/src/Plugin/views/wizard/Node.php
+++ b/core/modules/node/src/Plugin/views/wizard/Node.php
@@ -137,7 +137,6 @@ protected function defaultDisplayOptions() {
     $display_options['fields']['title']['id'] = 'title';
     $display_options['fields']['title']['table'] = 'node_field_data';
     $display_options['fields']['title']['field'] = 'title';
-    $display_options['fields']['title']['provider'] = 'node';
     $display_options['fields']['title']['label'] = '';
     $display_options['fields']['title']['alter']['alter_text'] = 0;
     $display_options['fields']['title']['alter']['make_link'] = 0;
diff --git a/core/modules/node/src/Plugin/views/wizard/NodeRevision.php b/core/modules/node/src/Plugin/views/wizard/NodeRevision.php
index 3eb7d2e..48461b5 100644
--- a/core/modules/node/src/Plugin/views/wizard/NodeRevision.php
+++ b/core/modules/node/src/Plugin/views/wizard/NodeRevision.php
@@ -98,7 +98,6 @@ protected function defaultDisplayOptions() {
     $display_options['fields']['changed']['id'] = 'changed';
     $display_options['fields']['changed']['table'] = 'node_field_revision';
     $display_options['fields']['changed']['field'] = 'changed';
-    $display_options['fields']['changed']['provider'] = 'node';
     $display_options['fields']['changed']['alter']['alter_text'] = FALSE;
     $display_options['fields']['changed']['alter']['make_link'] = FALSE;
     $display_options['fields']['changed']['alter']['absolute'] = FALSE;
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_contextual_links.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_contextual_links.yml
index 1850ce6..49bfab5 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_contextual_links.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_contextual_links.yml
@@ -77,7 +77,6 @@ display:
           relationship: none
           table: node
           plugin_id: numeric
-          provider: views
       menu:
         type: tab
         title: 'Test contextual link'
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_field_filters.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_field_filters.yml
index 30626e1..c326f1d 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_field_filters.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_field_filters.yml
@@ -18,19 +18,14 @@ display:
     id: default
     display_title: Master
     position: 0
-    provider: views
     display_options:
       access:
         type: perm
         options:
           perm: 'access content'
-        provider: user
-        dependencies: {  }
       cache:
         type: none
         options: {  }
-        provider: views
-        dependencies: {  }
       query:
         type: views_query
         options:
@@ -39,8 +34,6 @@ display:
           replica: false
           query_comment: false
           query_tags: {  }
-        provider: views
-        dependencies: {  }
       exposed_form:
         type: basic
         options:
@@ -51,8 +44,6 @@ display:
           expose_sort_order: true
           sort_asc_label: Asc
           sort_desc_label: Desc
-        provider: views
-        dependencies: {  }
       pager:
         type: none
         options:
@@ -72,7 +63,6 @@ display:
           id: title
           table: node_field_data
           field: title
-          provider: node
           label: ''
           alter:
             alter_text: false
@@ -89,7 +79,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies: {  }
           exclude: false
           element_type: ''
           element_class: ''
@@ -106,7 +95,6 @@ display:
           value: true
           table: node_field_data
           field: status
-          provider: node
           id: status
           expose:
             operator: ''
@@ -118,11 +106,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
-              - views
-              - views
           operator: contains
           value: Paris
           group: 1
@@ -152,7 +135,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: string
-          provider: views
       sorts:
         created:
           id: created
@@ -162,7 +144,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies: {  }
           exposed: false
           expose:
             label: ''
@@ -180,7 +161,6 @@ display:
     id: page_tf
     display_title: 'Title filter page'
     position: 1
-    provider: views
     display_options:
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
@@ -196,7 +176,6 @@ display:
           value: true
           table: node_field_data
           field: status
-          provider: node
           id: status
           expose:
             operator: ''
@@ -208,12 +187,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
-              - views
-              - views
-              - views
           operator: contains
           value: Comida
           group: 1
@@ -243,7 +216,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: string
-          provider: views
       filter_groups:
         operator: AND
         groups:
@@ -253,7 +225,6 @@ display:
     id: page_bf
     display_title: 'Body filter page'
     position: 1
-    provider: views
     display_options:
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
@@ -269,7 +240,6 @@ display:
           value: true
           table: node_field_data
           field: status
-          provider: node
           id: status
           expose:
             operator: ''
@@ -281,10 +251,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
-              - views
           operator: contains
           value: Comida
           group: 1
@@ -314,7 +280,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: string
-          provider: views
       filter_groups:
         operator: AND
         groups:
@@ -324,7 +289,6 @@ display:
     id: page_bfp
     display_title: 'Body filter page Paris'
     position: 1
-    provider: views
     display_options:
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
@@ -340,7 +304,6 @@ display:
           value: true
           table: node_field_data
           field: status
-          provider: node
           id: status
           expose:
             operator: ''
@@ -352,11 +315,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
-              - views
-              - views
           operator: contains
           value: Paris
           group: 1
@@ -386,7 +344,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: string
-          provider: views
       filter_groups:
         operator: AND
         groups:
@@ -396,7 +353,6 @@ display:
     id: page_tfp
     display_title: 'Title filter page Paris'
     position: 1
-    provider: views
     display_options:
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_field_type.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_field_type.yml
index a60b7b3..b7102f4 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_field_type.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_field_type.yml
@@ -11,7 +11,6 @@ display:
           id: type
           table: node_field_data
           plugin_id: node_type
-          provider: node
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_filter_node_uid_revision.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_filter_node_uid_revision.yml
index 76f3bd9..b435eb1 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_filter_node_uid_revision.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_filter_node_uid_revision.yml
@@ -17,7 +17,6 @@ display:
           table: node
           field: nid
           plugin_id: node
-          provider: node
       filter_groups:
         groups:
           1: AND
@@ -34,7 +33,6 @@ display:
           value:
             - '1'
           plugin_id: node_uid_revision
-          provider: node
       sorts:
         nid:
           id: nid
@@ -43,7 +41,6 @@ display:
           order: ASC
           plugin_id: standard
           relationship: none
-          provider: views
       pager:
         type: full
       query:
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_language.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_language.yml
index c21e026..cc95a31 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_language.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_language.yml
@@ -18,19 +18,14 @@ display:
     id: default
     display_title: Master
     position: 0
-    provider: views
     display_options:
       access:
         type: perm
         options:
           perm: 'access content'
-        provider: user
-        dependencies: {  }
       cache:
         type: none
         options: {  }
-        provider: views
-        dependencies: {  }
       query:
         type: views_query
         options:
@@ -39,8 +34,6 @@ display:
           replica: false
           query_comment: false
           query_tags: {  }
-        provider: views
-        dependencies: {  }
       exposed_form:
         type: basic
         options:
@@ -51,8 +44,6 @@ display:
           expose_sort_order: true
           sort_asc_label: Asc
           sort_desc_label: Desc
-        provider: views
-        dependencies: {  }
       pager:
         type: none
         options:
@@ -67,7 +58,6 @@ display:
           inline: {  }
           separator: ''
           hide_empty: false
-        provider: views
       fields:
         title:
           id: title
@@ -76,9 +66,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - node
           label: ''
           exclude: false
           alter:
@@ -121,7 +108,6 @@ display:
           empty_zero: false
           hide_alter_empty: true
           link_to_node: 0
-          provider: node
         langcode:
           id: langcode
           table: node_field_data
@@ -129,9 +115,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - node
           label: Language
           exclude: false
           alter:
@@ -176,13 +159,11 @@ display:
           link_to_node: false
           native_language: 0
           plugin_id: node_language
-          provider: node
       filters:
         status:
           value: true
           table: node_field_data
           field: status
-          provider: node
           id: status
           expose:
             operator: ''
@@ -200,12 +181,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
-              - views
-              - views
-              - views
           operator: in
           value:
             fr: fr
@@ -238,7 +213,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: language
-          provider: views
       sorts:
         langcode:
           id: langcode
@@ -247,16 +221,11 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
-              - views
           order: ASC
           exposed: false
           expose:
             label: ''
           plugin_id: standard
-          provider: views
       title: 'Language filter test'
       header: {  }
       footer: {  }
@@ -270,9 +239,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
           default_action: ignore
           exception:
             value: all
@@ -299,7 +265,6 @@ display:
             fail: 'not found'
           validate_options: {  }
           plugin_id: language
-          provider: views
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
   page_1:
@@ -307,7 +272,6 @@ display:
     id: page_1
     display_title: Page
     position: 1
-    provider: views
     display_options:
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_bulk_form.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_bulk_form.yml
index fa63477..413053f 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_bulk_form.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_bulk_form.yml
@@ -20,13 +20,11 @@ display:
           table: node
           field: node_bulk_form
           plugin_id: node_bulk_form
-          provider: node
         title:
           id: title
           table: node_field_data
           field: title
           plugin_id: node
-          provider: node
       sorts:
         nid:
           id: nid
@@ -34,7 +32,6 @@ display:
           field: nid
           order: ASC
           plugin_id: standard
-          provider: views
   page_1:
     display_plugin: page
     id: page_1
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_nid.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_nid.yml
index fae1b18..5fa84dc 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_nid.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_nid.yml
@@ -11,34 +11,29 @@ display:
           field: nid
           required: true
           plugin_id: standard
-          provider: views
       fields:
         vid:
           id: vid
           table: node_revision
           field: vid
           plugin_id: standard
-          provider: views
         nid_1:
           id: nid_1
           table: node_revision
           field: nid
           plugin_id: standard
-          provider: views
         nid:
           id: nid
           table: node
           field: nid
           relationship: nid
           plugin_id: node
-          provider: node
       arguments:
         nid:
           id: nid
           table: node_revision
           field: nid
           plugin_id: node_nid
-          provider: node
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_vid.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_vid.yml
index 7871029..a59c3e2 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_vid.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_vid.yml
@@ -11,34 +11,29 @@ display:
           field: vid
           required: true
           plugin_id: standard
-          provider: views
       fields:
         vid:
           id: vid
           table: node_revision
           field: vid
           plugin_id: standard
-          provider: views
         nid_1:
           id: nid_1
           table: node_revision
           field: nid
           plugin_id: standard
-          provider: views
         nid:
           id: nid
           table: node
           field: nid
           relationship: vid
           plugin_id: node
-          provider: node
       arguments:
         nid:
           id: nid
           table: node_revision
           field: nid
           plugin_id: node_nid
-          provider: node
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_row_plugin.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_row_plugin.yml
index 036b80b..80b7823 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_row_plugin.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_row_plugin.yml
@@ -22,7 +22,6 @@ display:
           table: node
           value: true
           plugin_id: boolean
-          provider: views
       pager:
         options:
           items_per_page: 10
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_view.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_view.yml
index 4bc240e..ea229c6 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_view.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_view.yml
@@ -118,7 +118,6 @@ display:
           hide_alter_empty: true
           link_to_node: false
           plugin_id: node
-          provider: node
       filters:
         status:
           value: true
@@ -128,7 +127,6 @@ display:
           expose:
             operator: ''
           group: 1
-          provider: views
       sorts:
         created:
           id: created
@@ -142,7 +140,6 @@ display:
           expose:
             label: ''
           granularity: second
-          provider: views
       title: test_node_view
       header: {  }
       footer: {  }
@@ -188,7 +185,6 @@ display:
           transform_dash: false
           break_phrase: false
           plugin_id: node_type
-          provider: node
 label: test_node_view
 module: views
 id: test_node_view
diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_status_extra.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_status_extra.yml
index ec77a6a..d4792a1 100644
--- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_status_extra.yml
+++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_status_extra.yml
@@ -76,7 +76,6 @@ display:
           hide_alter_empty: true
           link_to_node: false
           plugin_id: node
-          provider: node
       filters:
         status_extra:
           id: status_extra
@@ -114,7 +113,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: node_status
-          provider: node
       sorts:
         nid:
           id: nid
@@ -122,7 +120,6 @@ display:
           field: nid
           order: ASC
           plugin_id: standard
-          provider: views
       filter_groups:
         operator: AND
         groups:
diff --git a/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_display_entity.yml b/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_display_entity.yml
index 687f3f2..de45ae0 100644
--- a/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_display_entity.yml
+++ b/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_display_entity.yml
@@ -32,7 +32,6 @@ display:
           field: id
           order: DESC
           plugin_id: date
-          provider: views
       title: 'Test serialize'
       arguments: {  }
   rest_export_1:
@@ -40,7 +39,6 @@ display:
     id: rest_export_1
     display_title: serializer
     position: null
-    provider: rest
     display_options:
       defaults:
         access: false
diff --git a/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_display_field.yml b/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_display_field.yml
index 9a85fb8..f1d0249 100644
--- a/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_display_field.yml
+++ b/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_display_field.yml
@@ -32,7 +32,6 @@ display:
           field: name
           label: ''
           plugin_id: string
-          provider: views_test_data
         nothing:
           id: nothing
           table: views
@@ -46,13 +45,11 @@ display:
             alter_text: true
             text: TEST
           plugin_id: custom
-          provider: views
         created:
           id: created
           table: views_test_data
           field: created
           plugin_id: date
-          provider: views_test_data
       sorts:
         created:
           id: created
@@ -60,7 +57,6 @@ display:
           field: created
           order: DESC
           plugin_id: date
-          provider: views_test_data
       title: 'Test serialize'
       arguments: {  }
   rest_export_1:
@@ -68,7 +64,6 @@ display:
     id: rest_export_1
     display_title: serializer
     position: null
-    provider: rest
     display_options:
       defaults:
         access: false
@@ -86,7 +81,6 @@ display:
     id: rest_export_2
     display_title: 'serialize - access denied'
     position: null
-    provider: rest
     display_options:
       defaults:
         access: false
diff --git a/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_node_display_field.yml b/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_node_display_field.yml
index 41c8241..9e035db 100644
--- a/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_node_display_field.yml
+++ b/core/modules/rest/tests/modules/rest_test_views/test_views/views.view.test_serializer_node_display_field.yml
@@ -31,7 +31,6 @@ display:
           table: node
           field: nid
           plugin_id: numeric
-          provider: node
         body:
           id: body
           table: node__body
@@ -94,7 +93,6 @@ display:
           separator: ', '
           field_api_classes: false
           plugin_id: field
-          provider: field
       title: 'Test serialize'
       arguments: {  }
   rest_export_1:
@@ -102,7 +100,6 @@ display:
     id: rest_export_1
     display_title: serializer
     position: null
-    provider: rest
     display_options:
       defaults:
         access: false
diff --git a/core/modules/statistics/tests/modules/statistics_test_views/test_views/views.view.test_statistics_integration.yml b/core/modules/statistics/tests/modules/statistics_test_views/test_views/views.view.test_statistics_integration.yml
index a666e27..1658eb0 100644
--- a/core/modules/statistics/tests/modules/statistics_test_views/test_views/views.view.test_statistics_integration.yml
+++ b/core/modules/statistics/tests/modules/statistics_test_views/test_views/views.view.test_statistics_integration.yml
@@ -45,7 +45,6 @@ display:
           hide_empty: false
           empty_zero: false
           link_to_node: true
-          provider: node
         timestamp:
           id: timestamp
           table: node_counter
@@ -97,7 +96,6 @@ display:
           date_format: html_year
           custom_date_format: ''
           timezone: ''
-          provider: views
         totalcount:
           id: totalcount
           table: node_counter
@@ -155,7 +153,6 @@ display:
           format_plural_plural: '@count'
           prefix: ''
           suffix: ''
-          provider: views
         daycount:
           id: daycount
           table: node_counter
@@ -213,7 +210,6 @@ display:
           format_plural_plural: '@count'
           prefix: ''
           suffix: ''
-          provider: views
       filters:
         status:
           value: true
@@ -223,14 +219,12 @@ display:
           expose:
             operator: false
           group: true
-          provider: views
       sorts:
         created:
           id: created
           table: node_field_data
           field: created
           order: DESC
-          provider: views
   page_1:
     display_plugin: page
     id: page_1
diff --git a/core/modules/taxonomy/config/install/views.view.taxonomy_term.yml b/core/modules/taxonomy/config/install/views.view.taxonomy_term.yml
index 8b7bf6a..289c419 100644
--- a/core/modules/taxonomy/config/install/views.view.taxonomy_term.yml
+++ b/core/modules/taxonomy/config/install/views.view.taxonomy_term.yml
@@ -27,15 +27,12 @@ display:
           distinct: false
           replica: false
           query_tags: {  }
-        provider: views
       access:
         type: none
         options: {  }
-        provider: views
       cache:
         type: none
         options: {  }
-        provider: views
       exposed_form:
         type: basic
         options:
@@ -46,7 +43,6 @@ display:
           expose_sort_order: true
           sort_asc_label: Asc
           sort_desc_label: Desc
-        provider: views
       pager:
         type: mini
         options:
@@ -65,7 +61,6 @@ display:
           tags:
             previous: ‹‹
             next: ››
-        provider: views
       sorts:
         sticky:
           id: sticky
@@ -79,7 +74,6 @@ display:
           exposed: false
           expose:
             label: ''
-          provider: views
         created:
           id: created
           table: taxonomy_index
@@ -93,7 +87,6 @@ display:
           expose:
             label: ''
           granularity: second
-          provider: views
       arguments:
         tid:
           id: tid
@@ -102,9 +95,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - taxonomy
           default_action: ignore
           exception:
             value: all
@@ -139,7 +129,6 @@ display:
           require_value: false
           reduce_duplicates: false
           plugin_id: taxonomy_index_tid
-          provider: taxonomy
       filters:
         langcode:
           id: langcode
@@ -148,9 +137,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
           operator: in
           value:
             '***LANGUAGE_language_content***': '***LANGUAGE_language_content***'
@@ -182,7 +168,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: language
-          provider: views
       style:
         type: default
         options:
@@ -190,13 +175,11 @@ display:
           row_class: ''
           default_row_class: true
           uses_fields: false
-        provider: views
       row:
         type: 'entity:node'
         options:
           view_mode: teaser
           comments: false
-        provider: views
       header:
         entity_taxonomy_term:
           id: entity_taxonomy_term
@@ -211,7 +194,6 @@ display:
           view_mode: full
           bypass_access: false
           plugin_id: entity
-          provider: views
       footer: {  }
       empty: {  }
       relationships: {  }
@@ -227,7 +209,6 @@ display:
       query:
         type: views_query
         options: {  }
-        provider: views
       path: taxonomy/term/%
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
@@ -240,7 +221,6 @@ display:
       query:
         type: views_query
         options: {  }
-        provider: views
       pager:
         type: full
         options:
@@ -262,7 +242,6 @@ display:
             first: '« first'
             last: 'last »'
           quantity: 9
-        provider: views
       path: taxonomy/term/%/feed
       displays:
         page: page
@@ -273,12 +252,10 @@ display:
           description: ''
           grouping: {  }
           uses_fields: false
-        provider: views
       row:
         type: node_rss
         options:
           relationship: none
           view_mode: default
-        provider: views
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
diff --git a/core/modules/taxonomy/src/Plugin/views/wizard/TaxonomyTerm.php b/core/modules/taxonomy/src/Plugin/views/wizard/TaxonomyTerm.php
index 480dc26..565ef61 100644
--- a/core/modules/taxonomy/src/Plugin/views/wizard/TaxonomyTerm.php
+++ b/core/modules/taxonomy/src/Plugin/views/wizard/TaxonomyTerm.php
@@ -51,7 +51,6 @@ protected function defaultDisplayOptions() {
     $display_options['fields']['name']['id'] = 'name';
     $display_options['fields']['name']['table'] = 'taxonomy_term_field_data';
     $display_options['fields']['name']['field'] = 'name';
-    $display_options['fields']['name']['provider'] = 'taxonomy';
     $display_options['fields']['name']['label'] = '';
     $display_options['fields']['name']['alter']['alter_text'] = 0;
     $display_options['fields']['name']['alter']['make_link'] = 0;
diff --git a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.taxonomy_default_argument_test.yml b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.taxonomy_default_argument_test.yml
index d01c979..ec5e8ba 100644
--- a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.taxonomy_default_argument_test.yml
+++ b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.taxonomy_default_argument_test.yml
@@ -17,19 +17,14 @@ display:
     id: default
     display_title: Master
     position: 0
-    provider: views
     display_options:
       access:
         type: perm
         options:
           perm: 'access content'
-        provider: user
-        dependencies: {  }
       cache:
         type: none
         options: {  }
-        provider: views
-        dependencies: {  }
       query:
         type: views_query
         options:
@@ -38,8 +33,6 @@ display:
           replica: false
           query_comment: false
           query_tags: {  }
-        provider: views
-        dependencies: {  }
       exposed_form:
         type: basic
         options:
@@ -50,8 +43,6 @@ display:
           expose_sort_order: true
           sort_asc_label: Asc
           sort_desc_label: Desc
-        provider: views
-        dependencies: {  }
       pager:
         type: full
         options:
@@ -73,8 +64,6 @@ display:
             first: '« first'
             last: 'last »'
           quantity: 9
-        provider: views
-        dependencies: {  }
       style:
         type: default
         options:
@@ -82,21 +71,17 @@ display:
           row_class: ''
           default_row_class: true
           uses_fields: false
-        provider: views
-        dependencies: {  }
       row:
         type: 'entity:taxonomy_term'
         options:
           relationship: none
           view_mode: default
           rendering_language: translation_language_renderer
-        provider: views
       fields:
         name:
           id: name
           table: taxonomy_term_data
           field: name
-          provider: taxonomy
           label: ''
           alter:
             alter_text: false
@@ -113,7 +98,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies: {  }
           exclude: false
           element_type: ''
           element_class: ''
@@ -140,9 +124,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - taxonomy
           default_action: default
           exception:
             value: all
@@ -175,6 +156,5 @@ display:
           break_phrase: false
           not: false
           plugin_id: taxonomy
-          provider: taxonomy
       field_langcode: '***LANGUAGE_site_default***'
       field_langcode_add_to_query: null
diff --git a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_field_filters.yml b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_field_filters.yml
index 664f316..7b6918b 100644
--- a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_field_filters.yml
+++ b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_field_filters.yml
@@ -18,19 +18,14 @@ display:
     id: default
     display_title: Master
     position: 0
-    provider: views
     display_options:
       access:
         type: perm
         options:
           perm: 'access content'
-        provider: user
-        dependencies: {  }
       cache:
         type: none
         options: {  }
-        provider: views
-        dependencies: {  }
       query:
         type: views_query
         options:
@@ -39,8 +34,6 @@ display:
           replica: false
           query_comment: false
           query_tags: {  }
-        provider: views
-        dependencies: {  }
       exposed_form:
         type: basic
         options:
@@ -51,8 +44,6 @@ display:
           expose_sort_order: true
           sort_asc_label: Asc
           sort_desc_label: Desc
-        provider: views
-        dependencies: {  }
       pager:
         type: none
         options:
@@ -67,7 +58,6 @@ display:
           id: name
           table: taxonomy_term_field_data
           field: name
-          provider: taxonomy
           label: ''
           alter:
             alter_text: false
@@ -84,7 +74,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies: {  }
           exclude: false
           element_type: ''
           element_class: ''
@@ -105,9 +94,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
           operator: contains
           value: Comida
           group: 1
@@ -137,7 +123,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: string
-          provider: views
       sorts: {  }
       title: 'Name filter page'
       header: {  }
@@ -152,7 +137,6 @@ display:
     id: page_dc
     display_title: 'Description Comida'
     position: 3
-    provider: views
     display_options:
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
@@ -166,9 +150,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
           operator: contains
           value: Comida
           group: 1
@@ -198,7 +179,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: string
-          provider: views
       defaults:
         filters: false
         filter_groups: false
@@ -213,7 +193,6 @@ display:
     id: page_dp
     display_title: 'Description Comida'
     position: 3
-    provider: views
     display_options:
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
@@ -227,10 +206,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
-              - views
           operator: contains
           value: Paris
           group: 1
@@ -260,7 +235,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: string
-          provider: views
       defaults:
         filters: false
         filter_groups: false
@@ -275,7 +249,6 @@ display:
     id: page_nc
     display_title: 'Name Comida'
     position: 1
-    provider: views
     display_options:
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
@@ -286,7 +259,6 @@ display:
     id: page_np
     display_title: 'Name Paris'
     position: 1
-    provider: views
     display_options:
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
@@ -300,10 +272,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
-              - views
           operator: contains
           value: Paris
           group: 1
@@ -333,7 +301,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: string
-          provider: views
       defaults:
         filters: false
         filter_groups: false
@@ -346,7 +313,6 @@ display:
     id: page_fp
     display_title: 'Field Paris'
     position: 3
-    provider: views
     display_options:
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
@@ -360,10 +326,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
-              - views
           operator: contains
           value: Paris
           group: 1
@@ -393,7 +355,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: string
-          provider: views
       defaults:
         filters: false
         filter_groups: false
@@ -408,7 +369,6 @@ display:
     id: page_fc
     display_title: 'Field Comida'
     position: 3
-    provider: views
     display_options:
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
@@ -422,9 +382,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
           operator: contains
           value: Comida
           group: 1
@@ -454,7 +411,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: string
-          provider: views
       defaults:
         filters: false
         filter_groups: false
diff --git a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_filter_taxonomy_index_tid.yml b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_filter_taxonomy_index_tid.yml
index a73c238..ea39d0e 100644
--- a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_filter_taxonomy_index_tid.yml
+++ b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_filter_taxonomy_index_tid.yml
@@ -75,7 +75,6 @@ display:
           id: title
           table: node_field_data
           field: title
-          provider: node
           label: ''
           alter:
             alter_text: false
@@ -108,7 +107,6 @@ display:
           value: true
           table: node_field_data
           field: status
-          provider: node
           id: status
           expose:
             operator: '0'
@@ -157,7 +155,6 @@ display:
           hierarchy: true
           error_message: true
           plugin_id: taxonomy_index_tid
-          provider: taxonomy
       sorts: {  }
       header: {  }
       footer: {  }
diff --git a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_groupwise_term.yml b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_groupwise_term.yml
index fa61b8b..b8510ed 100644
--- a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_groupwise_term.yml
+++ b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_groupwise_term.yml
@@ -18,14 +18,12 @@ display:
           id: name
           table: taxonomy_term_field_data
           plugin_id: taxonomy
-          provider: taxonomy
         nid:
           field: nid
           id: nid
           relationship: tid_representative
           table: node
           plugin_id: node
-          provider: node
       pager:
         options:
           items_per_page: 10
@@ -48,7 +46,6 @@ display:
           subquery_view: ''
           table: taxonomy_term_data
           plugin_id: groupwise_max
-          provider: views
       row:
         type: fields
       sorts:
@@ -58,7 +55,6 @@ display:
           order: DESC
           table: taxonomy_term_data
           plugin_id: standard
-          provider: views
       style:
         type: default
       title: test_groupwise
diff --git a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_node_term_data.yml b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_node_term_data.yml
index afdd91e..da857f0 100644
--- a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_node_term_data.yml
+++ b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_node_term_data.yml
@@ -20,7 +20,6 @@ display:
             items_per_page: 25
           table: taxonomy_term_data
           plugin_id: taxonomy
-          provider: taxonomy
         tid_1:
           default_argument_type: fixed
           field: tid
@@ -33,7 +32,6 @@ display:
             items_per_page: 25
           table: taxonomy_term_data
           plugin_id: taxonomy
-          provider: taxonomy
       cache:
         type: none
       exposed_form:
@@ -51,7 +49,6 @@ display:
           vids:
             tags: false
           plugin_id: node_term_data
-          provider: taxonomy
         term_node_tid_1:
           field: term_node_tid
           id: term_node_tid_1
@@ -60,7 +57,6 @@ display:
           vids:
             tags: false
           plugin_id: node_term_data
-          provider: taxonomy
       sorts:
         nid:
           field: nid
@@ -68,7 +64,6 @@ display:
           order: DESC
           table: node
           plugin_id: standard
-          provider: views
       style:
         type: default
       row:
diff --git a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_parent.yml b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_parent.yml
index 8e9e5a4..f984447 100644
--- a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_parent.yml
+++ b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_parent.yml
@@ -9,17 +9,14 @@ display:
     id: default
     display_title: Master
     position: 0
-    provider: views
     display_options:
       access:
         type: perm
         options:
           perm: 'access content'
-        provider: user
       cache:
         type: none
         options: {  }
-        provider: views
       query:
         type: views_query
         options:
@@ -28,7 +25,6 @@ display:
           replica: false
           query_comment: false
           query_tags: {  }
-        provider: views
       exposed_form:
         type: basic
         options:
@@ -39,7 +35,6 @@ display:
           expose_sort_order: true
           sort_asc_label: Asc
           sort_desc_label: Desc
-        provider: views
       pager:
         type: full
         options:
@@ -61,7 +56,6 @@ display:
             first: '« first'
             last: 'last »'
           quantity: 9
-        provider: views
       style:
         type: default
         options:
@@ -69,7 +63,6 @@ display:
           row_class: ''
           default_row_class: true
           uses_fields: false
-        provider: views
       row:
         type: fields
         options:
@@ -77,13 +70,11 @@ display:
           separator: ''
           hide_empty: false
           default_field_elements: true
-        provider: views
       fields:
         name:
           id: name
           table: taxonomy_term_data
           field: name
-          provider: taxonomy
           label: ''
           alter:
             alter_text: false
@@ -127,7 +118,6 @@ display:
           admin_label: Parent
           required: true
           plugin_id: standard
-          provider: views
       arguments: {  }
 label: test_taxonomy_parent
 module: views
diff --git a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_tid_field.yml b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_tid_field.yml
index ed3e033..0e712af 100644
--- a/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_tid_field.yml
+++ b/core/modules/taxonomy/tests/modules/taxonomy_test_views/test_views/views.view.test_taxonomy_tid_field.yml
@@ -17,19 +17,14 @@ display:
     id: default
     display_title: Master
     position: 0
-    provider: views
     display_options:
       access:
         type: perm
         options:
           perm: 'access content'
-        provider: user
-        dependencies: {  }
       cache:
         type: none
         options: {  }
-        provider: views
-        dependencies: {  }
       query:
         type: views_query
         options:
@@ -38,8 +33,6 @@ display:
           replica: false
           query_comment: false
           query_tags: {  }
-        provider: views
-        dependencies: {  }
       exposed_form:
         type: basic
         options:
@@ -50,8 +43,6 @@ display:
           expose_sort_order: true
           sort_asc_label: Asc
           sort_desc_label: Desc
-        provider: views
-        dependencies: {  }
       pager:
         type: full
         options:
@@ -73,8 +64,6 @@ display:
             first: '« first'
             last: 'last »'
           quantity: 9
-        provider: views
-        dependencies: {  }
       style:
         type: default
         options:
@@ -82,8 +71,6 @@ display:
           row_class: ''
           default_row_class: true
           uses_fields: false
-        provider: views
-        dependencies: {  }
       row:
         type: fields
         options:
@@ -91,8 +78,6 @@ display:
           separator: ''
           hide_empty: false
           default_field_elements: true
-        provider: views
-        dependencies: {  }
       fields:
         name:
           id: name
@@ -101,9 +86,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - taxonomy
           label: Name
           exclude: false
           alter:
@@ -148,7 +130,6 @@ display:
           link_to_taxonomy: true
           convert_spaces: false
           plugin_id: taxonomy
-          provider: taxonomy
       filters: {  }
       sorts:
         tid:
@@ -158,15 +139,11 @@ display:
           relationship: none
           group_type: group
           admin_label: ''
-          dependencies:
-            module:
-              - views
           order: ASC
           exposed: false
           expose:
             label: ''
           plugin_id: standard
-          provider: views
       header: {  }
       footer: {  }
       empty: {  }
diff --git a/core/modules/tracker/tests/modules/tracker_test_views/test_views/views.view.test_tracker_user_uid.yml b/core/modules/tracker/tests/modules/tracker_test_views/test_views/views.view.test_tracker_user_uid.yml
index 32cfffe..324a23f 100644
--- a/core/modules/tracker/tests/modules/tracker_test_views/test_views/views.view.test_tracker_user_uid.yml
+++ b/core/modules/tracker/tests/modules/tracker_test_views/test_views/views.view.test_tracker_user_uid.yml
@@ -93,7 +93,6 @@ display:
           empty_zero: false
           hide_alter_empty: true
           link_to_node: true
-          provider: node
       filters:
         uid_touch_tracker:
           id: uid_touch_tracker
@@ -133,7 +132,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: tracker_user_uid
-          provider: tracker
       arguments:
         uid_touch_tracker:
           id: uid_touch_tracker
@@ -168,7 +166,6 @@ display:
             fail: 'not found'
           validate_options: {  }
           plugin_id: tracker_user_uid
-          provider: tracker
 label: 'tracker test'
 module: views
 id: test_tracker_user_uid
diff --git a/core/modules/user/config/install/views.view.user_admin_people.yml b/core/modules/user/config/install/views.view.user_admin_people.yml
index 854d128..6c6adf3 100644
--- a/core/modules/user/config/install/views.view.user_admin_people.yml
+++ b/core/modules/user/config/install/views.view.user_admin_people.yml
@@ -14,10 +14,8 @@ display:
         type: perm
         options:
           perm: 'administer users'
-        provider: user
       cache:
         type: none
-        provider: views
       query:
         type: views_query
         options:
@@ -26,7 +24,6 @@ display:
           replica: false
           query_comment: false
           query_tags: {  }
-        provider: views
       exposed_form:
         type: basic
         options:
@@ -37,7 +34,6 @@ display:
           expose_sort_order: true
           sort_asc_label: Asc
           sort_desc_label: Desc
-        provider: views
       pager:
         type: full
         options:
@@ -59,7 +55,6 @@ display:
             offset: false
             offset_label: Offset
           quantity: 9
-        provider: views
       style:
         type: table
         options:
@@ -133,10 +128,8 @@ display:
               responsive: ''
           default: created
           empty_table: true
-        provider: views
       row:
         type: fields
-        provider: views
       fields:
         user_bulk_form:
           id: user_bulk_form
@@ -187,7 +180,6 @@ display:
           empty_zero: false
           hide_alter_empty: true
           plugin_id: user_bulk_form
-          provider: user
         name:
           id: name
           table: users_field_data
@@ -241,7 +233,6 @@ display:
           anonymous_text: ''
           format_username: true
           plugin_id: user_name
-          provider: user
         status:
           id: status
           table: users_field_data
@@ -295,7 +286,6 @@ display:
           type_custom_false: ''
           not: '0'
           plugin_id: boolean
-          provider: views
         rid:
           id: rid
           table: users_roles
@@ -347,7 +337,6 @@ display:
           type: ul
           separator: ', '
           plugin_id: user_roles
-          provider: user
         created:
           id: created
           table: users_field_data
@@ -400,7 +389,6 @@ display:
           custom_date_format: ''
           timezone: ''
           plugin_id: date
-          provider: views
         access:
           id: access
           table: users_field_data
@@ -453,7 +441,6 @@ display:
           custom_date_format: ''
           timezone: ''
           plugin_id: date
-          provider: views
         edit_node:
           id: edit_node
           table: users
@@ -504,7 +491,6 @@ display:
           hide_alter_empty: true
           text: Edit
           plugin_id: user_link_edit
-          provider: user
         dropbutton:
           id: dropbutton
           table: views
@@ -695,7 +681,6 @@ display:
             group_items: {  }
           reduce_duplicates: false
           plugin_id: user_roles
-          provider: user
         permission:
           id: permission
           table: users_roles
@@ -736,7 +721,6 @@ display:
             group_items: {  }
           reduce_duplicates: false
           plugin_id: user_permissions
-          provider: user
         status:
           id: status
           table: users_field_data
@@ -783,7 +767,6 @@ display:
                 operator: '='
                 value: '0'
           plugin_id: boolean
-          provider: views
         uid_raw:
           id: uid_raw
           table: users
@@ -823,7 +806,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: numeric
-          provider: views
       sorts:
         created:
           id: created
@@ -838,7 +820,6 @@ display:
             label: ''
           granularity: second
           plugin_id: date
-          provider: views
       title: People
       empty:
         area_text_custom:
@@ -852,7 +833,6 @@ display:
           tokenize: false
           content: 'No people available.'
           plugin_id: text_custom
-          provider: views
       use_more: false
       use_more_always: false
       use_more_text: more
diff --git a/core/modules/user/config/install/views.view.who_s_new.yml b/core/modules/user/config/install/views.view.who_s_new.yml
index 694827a..fc7727d 100644
--- a/core/modules/user/config/install/views.view.who_s_new.yml
+++ b/core/modules/user/config/install/views.view.who_s_new.yml
@@ -14,11 +14,9 @@ display:
         type: perm
         options:
           perm: 'access content'
-        provider: user
       cache:
         type: none
         options: {  }
-        provider: views
       query:
         type: views_query
         options:
@@ -27,7 +25,6 @@ display:
           replica: false
           query_comment: false
           query_tags: {  }
-        provider: views
       exposed_form:
         type: basic
         options:
@@ -38,19 +35,15 @@ display:
           expose_sort_order: true
           sort_asc_label: Asc
           sort_desc_label: Desc
-        provider: views
       pager:
         type: some
         options:
           items_per_page: 5
           offset: 0
-        provider: views
       style:
         type: html_list
-        provider: views
       row:
         type: fields
-        provider: views
       fields:
         name:
           id: name
@@ -162,7 +155,6 @@ display:
     id: block_1
     display_title: 'Who''s new'
     position: 1
-    provider: views
     display_options:
       display_description: 'A list of new users'
       block_description: 'Who''s new'
diff --git a/core/modules/user/config/install/views.view.who_s_online.yml b/core/modules/user/config/install/views.view.who_s_online.yml
index 5b22082..b151769 100644
--- a/core/modules/user/config/install/views.view.who_s_online.yml
+++ b/core/modules/user/config/install/views.view.who_s_online.yml
@@ -14,11 +14,9 @@ display:
         type: perm
         options:
           perm: 'access user profiles'
-        provider: user
       cache:
         type: none
         options: {  }
-        provider: views
       query:
         type: views_query
         options:
@@ -27,7 +25,6 @@ display:
           replica: false
           query_comment: false
           query_tags: {  }
-        provider: views
       exposed_form:
         type: basic
         options:
@@ -38,13 +35,11 @@ display:
           expose_sort_order: true
           sort_asc_label: Asc
           sort_desc_label: Desc
-        provider: views
       pager:
         type: some
         options:
           items_per_page: 10
           offset: 0
-        provider: views
       style:
         type: html_list
         options:
@@ -54,10 +49,8 @@ display:
           type: ul
           wrapper_class: item-list
           class: ''
-        provider: views
       row:
         type: fields
-        provider: views
       fields:
         name:
           id: name
@@ -159,7 +152,6 @@ display:
           expose:
             label: ''
           granularity: second
-          provider: views
           plugin_id: date
       title: 'Who''s online'
       header:
@@ -193,7 +185,6 @@ display:
     id: who_s_online_block
     display_title: 'Who''s online'
     position: 1
-    provider: views
     display_options:
       block_description: 'Who''s online'
       display_description: 'A list of users that are currently logged in.'
diff --git a/core/modules/user/src/Plugin/views/wizard/Users.php b/core/modules/user/src/Plugin/views/wizard/Users.php
index 127b84b..787b919 100644
--- a/core/modules/user/src/Plugin/views/wizard/Users.php
+++ b/core/modules/user/src/Plugin/views/wizard/Users.php
@@ -74,7 +74,6 @@ protected function defaultDisplayOptions() {
     $display_options['fields']['name']['id'] = 'name';
     $display_options['fields']['name']['table'] = 'users_field_data';
     $display_options['fields']['name']['field'] = 'name';
-    $display_options['fields']['name']['provider'] = 'user';
     $display_options['fields']['name']['label'] = '';
     $display_options['fields']['name']['alter']['alter_text'] = 0;
     $display_options['fields']['name']['alter']['make_link'] = 0;
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_filter_permission.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_filter_permission.yml
index 8b62fc7..5cda19b 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_filter_permission.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_filter_permission.yml
@@ -128,7 +128,6 @@ display:
           expose:
             label: ''
           plugin_id: standard
-          provider: views
 human_name: test_filter_permission
 module: views
 id: test_filter_permission
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_groupwise_user.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_groupwise_user.yml
index c1d4c89..b7bb8eb 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_groupwise_user.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_groupwise_user.yml
@@ -19,14 +19,12 @@ display:
           id: name
           table: users_field_data
           plugin_id: user_name
-          provider: user
         nid:
           field: nid
           id: nid
           relationship: uid_representative
           table: node
           plugin_id: node
-          provider: node
       filters:
         status:
           expose:
@@ -37,7 +35,6 @@ display:
           table: users_field_data
           value: '1'
           plugin_id: boolean
-          provider: views
       pager:
         options:
           items_per_page: '10'
@@ -60,7 +57,6 @@ display:
           subquery_view: ''
           table: users
           plugin_id: groupwise_max
-          provider: views
       row:
         type: fields
       sorts:
@@ -70,7 +66,6 @@ display:
           order: DESC
           table: users_field_data
           plugin_id: date
-          provider: views
       style:
         type: default
       title: test_groupwise_user
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_plugin_argument_default_current_user.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_plugin_argument_default_current_user.yml
index 1a3362f..92e688c 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_plugin_argument_default_current_user.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_plugin_argument_default_current_user.yml
@@ -16,7 +16,6 @@ display:
           must_not_be: '0'
           style_plugin: default_summary
           table: views
-          provider: views
       cache:
         type: none
       exposed_form:
@@ -37,7 +36,6 @@ display:
           id: title
           link_to_node: '0'
           table: node_field_data
-          provider: node
       pager:
         options:
           id: '0'
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_bulk_form.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_bulk_form.yml
index 3ccfd61..e23c59c 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_bulk_form.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_bulk_form.yml
@@ -20,13 +20,11 @@ display:
           table: users
           field: user_bulk_form
           plugin_id: user_bulk_form
-          provider: user
         name:
           id: name
           table: users_field_data
           field: name
           plugin_id: user_name
-          provider: user
       sorts:
         uid:
           id: uid
@@ -34,7 +32,6 @@ display:
           field: uid
           order: ASC
           plugin_id: user
-          provider: views
       filters:
         status:
           id: status
@@ -43,7 +40,6 @@ display:
           operator: '='
           value: '1'
           plugin_id: boolean
-          provider: views
   page_1:
     display_plugin: page
     id: page_1
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_changed.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_changed.yml
index b1d9080..637e6b9 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_changed.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_changed.yml
@@ -22,13 +22,11 @@ display:
           id: uid
           table: users
           field: uid
-          provider: user
         changed:
           id: changed
           table: users_field_data
           field: changed
           label: Updated date
-          provider: user
           date_format: html_date
       filters: { }
     display_plugin: default
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_data.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_data.yml
index d6ec56a..147f9bf 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_data.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_data.yml
@@ -45,7 +45,6 @@ display:
           link_to_user: '1'
           overwrite_anonymous: '0'
           plugin_id: string
-          provider: views
         data:
           id: data
           table: users
@@ -108,7 +107,6 @@ display:
             operator: '0'
           group: '1'
           plugin_id: numeric
-          provider: user
       sorts:
         created:
           id: created
@@ -116,7 +114,6 @@ display:
           field: created
           order: DESC
           plugin_id: date
-          provider: views
 label: test_user_data
 module: views
 id: test_user_data
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_name.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_name.yml
index b1efe81..00aaf8a 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_name.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_name.yml
@@ -22,7 +22,6 @@ display:
           id: uid
           table: users
           field: uid
-          provider: user
       filters:
         uid:
           id: uid
@@ -37,7 +36,6 @@ display:
             remember_roles:
               authenticated: authenticated
               anonymous: 0
-          provider: user
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_relationship.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_relationship.yml
index fa54249..03e5955 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_relationship.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_relationship.yml
@@ -37,7 +37,6 @@ display:
           overwrite_anonymous: '0'
           table: users_field_data
           plugin_id: user_name
-          provider: user
         title:
           alter:
             absolute: '0'
@@ -56,7 +55,6 @@ display:
           link_to_node: '1'
           table: node_field_data
           plugin_id: node
-          provider: node
         uid:
           alter:
             absolute: '0'
@@ -81,7 +79,6 @@ display:
           link_to_user: '1'
           table: users
           plugin_id: user
-          provider: user
       pager:
         options:
           items_per_page: '10'
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_uid_argument.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_uid_argument.yml
index 388d154..d16deb3 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_uid_argument.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_user_uid_argument.yml
@@ -11,7 +11,6 @@ display:
           table: users
           field: uid
           plugin_id: user
-          provider: user
       arguments:
         uid:
           id: uid
@@ -20,7 +19,6 @@ display:
           title_enable: true
           title: '%1'
           plugin_id: user_uid
-          provider: user
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_view_argument_validate_user.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_view_argument_validate_user.yml
index 97915b5..78ccb3e 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_view_argument_validate_user.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_view_argument_validate_user.yml
@@ -18,7 +18,6 @@ display:
           validate:
             type: entity:user
           plugin_id: 'null'
-          provider: views
       cache:
         type: none
       exposed_form:
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_view_argument_validate_username.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_view_argument_validate_username.yml
index b8e86b5..497df30 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_view_argument_validate_username.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_view_argument_validate_username.yml
@@ -18,7 +18,6 @@ display:
           validate:
             type: user_name
           plugin_id: 'null'
-          provider: views
       cache:
         type: none
       exposed_form:
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_views_handler_field_role.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_views_handler_field_role.yml
index 7cf5f93..f6d939b 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_views_handler_field_role.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_views_handler_field_role.yml
@@ -81,7 +81,6 @@ display:
           anonymous_text: ''
           format_username: '1'
           plugin_id: user_name
-          provider: user
         rid:
           id: rid
           table: users_roles
@@ -133,7 +132,6 @@ display:
           type: separator
           separator: ''
           plugin_id: user_roles
-          provider: user
       filters:
         status:
           value: '1'
@@ -144,7 +142,6 @@ display:
             operator: '0'
           group: '1'
           plugin_id: boolean
-          provider: views
       sorts: {  }
       title: test_user_role
   page_1:
diff --git a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_views_handler_field_user_name.yml b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_views_handler_field_user_name.yml
index 15faf1e..8e973bd 100644
--- a/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_views_handler_field_user_name.yml
+++ b/core/modules/user/tests/modules/user_test_views/test_views/views.view.test_views_handler_field_user_name.yml
@@ -31,7 +31,6 @@ display:
           overwrite_anonymous: '0'
           table: users_field_data
           plugin_id: user_name
-          provider: user
       pager:
         type: full
       query:
diff --git a/core/modules/views/config/schema/views.data_types.schema.yml b/core/modules/views/config/schema/views.data_types.schema.yml
index 3e1c25b..0c684ca 100644
--- a/core/modules/views/config/schema/views.data_types.schema.yml
+++ b/core/modules/views/config/schema/views.data_types.schema.yml
@@ -24,12 +24,6 @@ views_display:
           label: 'Pager type'
         options:
           type: views.pager.[%parent.type]
-        provider:
-          type: string
-          label: 'Provider'
-        dependencies:
-          type: config_dependencies
-          label: 'Dependencies'
     exposed_form:
       type: mapping
       label: 'Exposed form'
@@ -40,12 +34,6 @@ views_display:
         options:
           label: 'Options'
           type: views.exposed_form.[%parent.type]
-        provider:
-          type: string
-          label: 'Provider'
-        dependencies:
-          type: config_dependencies
-          label: 'Dependencies'
     access:
       type: mapping
       label: 'Access'
@@ -55,12 +43,6 @@ views_display:
           label: 'Access type'
         options:
           type: views.access.[%parent.type]
-        provider:
-          type: string
-          label: 'Provider'
-        dependencies:
-          type: config_dependencies
-          label: 'Dependencies'
     cache:
       type: views.cache.[type]
     empty:
@@ -105,12 +87,6 @@ views_display:
           label: 'Type'
         options:
           type: views.style.[%parent.type]
-        provider:
-          type: string
-          label: 'Provider'
-        dependencies:
-          type: config_dependencies
-          label: 'Dependencies'
     row:
       type: mapping
       label: 'Row'
@@ -120,12 +96,6 @@ views_display:
           label: 'Row type'
         options:
           type: views.row.[%parent.type]
-        provider:
-          type: string
-          label: 'Provider'
-        dependencies:
-          type: config_dependencies
-          label: 'Dependencies'
     query:
       type: mapping
       label: 'Query'
@@ -135,12 +105,6 @@ views_display:
           label: 'Query type'
         options:
           type: views.query.[%parent.type]
-        provider:
-          type: string
-          label: 'Provider'
-        dependencies:
-          type: config_dependencies
-          label: 'Dependencies'
     defaults:
       type: mapping
       label: 'Defaults'
@@ -355,12 +319,6 @@ views_handler:
     admin_label:
       type: label
       label: 'A string to identify the handler instance in the admin UI.'
-    provider:
-      type: string
-      label: 'Provider'
-    dependencies:
-      type: config_dependencies
-      label: 'Dependencies'
 
 views_argument:
   type: views_handler
@@ -451,10 +409,6 @@ views_argument:
     plugin_id:
       type: string
       label: 'Plugin ID'
-    provider:
-      type: string
-      label: 'Provider'
-
 
 views_exposed_form:
   type: mapping
@@ -611,9 +565,6 @@ views_field:
     plugin_id:
       type: string
       label: 'Plugin ID'
-    provider:
-      type: string
-      label: 'Provider'
 
 views_pager:
   type: mapping
@@ -802,9 +753,6 @@ views_filter:
     plugin_id:
       type: string
       label: 'Plugin ID'
-    provider:
-      type: string
-      label: 'Provider'
 
 views_filter_group_items:
   type: sequence
@@ -849,9 +797,6 @@ views_relationship:
     required:
       type: boolean
       label: 'Require this relationship'
-    provider:
-      type: string
-      label: 'Provider'
 
 views_query:
   type: mapping
@@ -898,9 +843,3 @@ views_cache:
     type:
       type: string
       label: 'Cache type'
-    provider:
-      type: string
-      label: 'Provider'
-    dependencies:
-      type: config_dependencies
-      label: 'Dependencies'
diff --git a/core/modules/views/config/schema/views.schema.yml b/core/modules/views/config/schema/views.schema.yml
index 6efcba1..66abe11 100644
--- a/core/modules/views/config/schema/views.schema.yml
+++ b/core/modules/views/config/schema/views.schema.yml
@@ -112,8 +112,5 @@ views.view.*:
             position:
               type: integer
               label: 'Position'
-            provider:
-              type: string
-              label: 'Display provider module'
             display_options:
               type: views.display.[%parent.display_plugin]
diff --git a/core/modules/views/src/Entity/View.php b/core/modules/views/src/Entity/View.php
index 19d13c1..361206c 100644
--- a/core/modules/views/src/Entity/View.php
+++ b/core/modules/views/src/Entity/View.php
@@ -199,7 +199,6 @@ public function addDisplay($plugin_id = 'page', $title = NULL, $id = NULL) {
       // @see \Drupal\Core\StringTranslation\TranslationWrapper
       'display_title' => (string) $title,
       'position' => $id === 'default' ? 0 : count($this->display),
-      'provider' => $plugin['provider'],
       'display_options' => array(),
     );
 
@@ -248,47 +247,32 @@ public function calculateDependencies() {
 
     // Ensure that the view is dependant on the module that implements the view.
     $this->addDependency('module', $this->module);
-    // Ensure that the view is dependent on the module that provides the schema
-    // for the base table.
-    $schema = $this->drupalGetSchema($this->base_table);
-    // @todo Entity base tables are no longer registered in hook_schema(). Once
-    //   we automate the views data for entity types add the entity type
-    //   type provider as a dependency. See https://drupal.org/node/1740492.
-    if ($schema && $this->module != $schema['module']) {
-      $this->addDependency('module', $schema['module']);
-    }
 
-    $handler_types = array();
-    foreach (Views::getHandlerTypes() as $type) {
-      $handler_types[] = $type['plural'];
-    }
-    foreach ($this->get('display') as $display) {
+    $executable = $this->getExecutable();
+    $executable->initDisplay();
+    $handler_types = array_keys(Views::getHandlerTypes());
+
+    foreach ($executable->displayHandlers as $display) {
       // Add dependency for the display itself.
-      if (isset($display['provider'])) {
-        $this->addDependency('module', $display['provider']);
-      }
+      /** @var \Drupal\views\Plugin\views\display\DisplayPluginBase $display */
+      $this->addDependency('module', $display->getProvider());
 
       // Collect all dependencies of all handlers.
       foreach ($handler_types as $handler_type) {
-        if (!empty($display['display_options'][$handler_type])) {
-          foreach ($display['display_options'][$handler_type] as $handler) {
-            // Add the provider as dependency.
-            if (isset($handler['provider'])) {
-              $this->addDependency('module', $handler['provider']);
-            }
-            // Add the additional dependencies from the handler configuration.
-            if (!empty($handler['dependencies'])) {
-              $this->addDependencies($handler['dependencies']);
-          }
+        foreach ($display->getHandlers($handler_type) as $handler) {
+          $this->calculatePluginDependencies($handler);
         }
       }
-    }
 
       // Collect all dependencies of plugins.
       foreach (Views::getPluginTypes('plugin') as $plugin_type) {
-        if (!empty($display['display_options'][$plugin_type]['options']['dependencies'])) {
-          $this->addDependencies($display['display_options'][$plugin_type]['options']['dependencies']);
+        // Argument validator/default plugins do not return a plugin.
+        // @todo https://www.drupal.org/node/2368767 Calculate argument
+        //   validator/default plugin dependencies.
+        if (!$plugin = $display->getPlugin($plugin_type)) {
+          continue;
         }
+        $this->calculatePluginDependencies($plugin);
       }
     }
 
@@ -447,11 +431,4 @@ public function mergeDefaultDisplaysOptions() {
     $this->set('display', $displays);
   }
 
-  /**
-   * Wraps drupal_get_schema().
-   */
-  protected function drupalGetSchema($table = NULL, $rebuild = FALSE) {
-    return drupal_get_schema($table, $rebuild);
-  }
-
 }
diff --git a/core/modules/views/src/EntityViewsData.php b/core/modules/views/src/EntityViewsData.php
index 88a0577..4bb38fe 100644
--- a/core/modules/views/src/EntityViewsData.php
+++ b/core/modules/views/src/EntityViewsData.php
@@ -129,6 +129,7 @@ public function getViewsData() {
     // Setup base information of the views data.
     $data[$base_table]['table']['entity type'] = $this->entityType->id();
     $data[$base_table]['table']['group'] = $this->entityType->getLabel();
+    $data[$base_table]['table']['provider'] = $this->entityType->getProvider();
     $data[$base_table]['table']['base'] = [
       'field' => $base_field,
       'title' => $this->entityType->getLabel(),
@@ -157,10 +158,12 @@ public function getViewsData() {
       ];
       $data[$data_table]['table']['entity type'] = $this->entityType->id();
       $data[$data_table]['table']['group'] = $this->entityType->getLabel();
+      $data[$data_table]['table']['provider'] = $this->entityType->getProvider();
     }
     if ($revision_table) {
       $data[$revision_table]['table']['entity type'] = $this->entityType->id();
       $data[$revision_table]['table']['group'] = $this->t('@entity_type revision', ['@entity_type' => $this->entityType->getLabel()]);
+      $data[$revision_table]['table']['provider'] = $this->entityType->getProvider();
       $data[$revision_table]['table']['base'] = array(
         'field' => $revision_field,
         'title' => $this->t('@entity_type revisions', array('@entity_type' => $this->entityType->getLabel())),
diff --git a/core/modules/views/src/Plugin/views/BrokenHandlerTrait.php b/core/modules/views/src/Plugin/views/BrokenHandlerTrait.php
index 4bd9948..8c4e3bc 100644
--- a/core/modules/views/src/Plugin/views/BrokenHandlerTrait.php
+++ b/core/modules/views/src/Plugin/views/BrokenHandlerTrait.php
@@ -20,10 +20,7 @@
    * @see \Drupal\views\Plugin\views\PluginBase::defineOptions().
    */
   public function adminLabel($short = FALSE) {
-    $args = array(
-      '@module' => $this->definition['original_configuration']['provider'],
-    );
-    return t('Broken/missing handler (Module: @module) …', $args);
+    return t('Broken/missing handler');
   }
 
   /**
@@ -61,7 +58,6 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     $description_top = t('The handler for this item is broken or missing. The following details are available:');
 
     $items = array(
-      t('Module: @module', array('@module' => $this->definition['original_configuration']['provider'])),
       t('Table: @table', array('@table' => $this->definition['original_configuration']['table'])),
       t('Field: @field', array('@field' => $this->definition['original_configuration']['field'])),
     );
@@ -97,4 +93,15 @@ public function broken() {
     return TRUE;
   }
 
+  /**
+   * Gets dependencies for a broken handler.
+   *
+   * @return array
+   *
+   * @see \Drupal\views\Plugin\views\PluginBase::calculateDependencies().
+   */
+  public function calculateDependencies() {
+    return array();
+  }
+
 }
diff --git a/core/modules/views/src/Plugin/views/HandlerBase.php b/core/modules/views/src/Plugin/views/HandlerBase.php
index c307178..e9bcb06 100644
--- a/core/modules/views/src/Plugin/views/HandlerBase.php
+++ b/core/modules/views/src/Plugin/views/HandlerBase.php
@@ -165,7 +165,6 @@ protected function defineOptions() {
     $options['relationship'] = array('default' => 'none');
     $options['group_type'] = array('default' => 'group');
     $options['admin_label'] = array('default' => '');
-    $options['dependencies'] = array('default' => array());
 
     return $options;
   }
diff --git a/core/modules/views/src/Plugin/views/PluginBase.php b/core/modules/views/src/Plugin/views/PluginBase.php
index ccb86e3..7992378 100644
--- a/core/modules/views/src/Plugin/views/PluginBase.php
+++ b/core/modules/views/src/Plugin/views/PluginBase.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\views\Plugin\views;
 
+use Drupal\Component\Plugin\DependentPluginInterface;
 use Drupal\Component\Utility\String;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Language\LanguageInterface;
@@ -42,7 +43,7 @@
  *
  * @ingroup views_plugins
  */
-abstract class PluginBase extends ComponentPluginBase implements ContainerFactoryPluginInterface, ViewsPluginInterface {
+abstract class PluginBase extends ComponentPluginBase implements ContainerFactoryPluginInterface, ViewsPluginInterface, DependentPluginInterface {
 
   /**
    * Include negotiated languages when listing languages.
@@ -386,8 +387,16 @@ public static function preRenderFlattenData($form) {
   /**
    * {@inheritdoc}
    */
-  public function getDependencies() {
-    return array();
+  public function calculateDependencies() {
+    return [];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getProvider() {
+    $definition = $this->getPluginDefinition();
+    return $definition['provider'];
   }
 
   /**
diff --git a/core/modules/views/src/Plugin/views/ViewsPluginInterface.php b/core/modules/views/src/Plugin/views/ViewsPluginInterface.php
index df5de7a..352aaf0 100644
--- a/core/modules/views/src/Plugin/views/ViewsPluginInterface.php
+++ b/core/modules/views/src/Plugin/views/ViewsPluginInterface.php
@@ -20,14 +20,11 @@
 interface ViewsPluginInterface extends PluginInspectionInterface, DerivativeInspectionInterface {
 
   /**
-   * Returns an array of module dependencies for this plugin.
+   * Returns the plugin provider.
    *
-   * Dependencies are a list of module names, which might depend on the
-   * configuration.
-   *
-   * @return array
+   * @return string
    */
-  public function getDependencies();
+  public function getProvider();
 
   /**
    * Return the human readable name of the display.
diff --git a/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php b/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
index de9cac6..f7b4752 100644
--- a/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
+++ b/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
@@ -908,7 +908,7 @@ public function getHandlers($type) {
       $types = ViewExecutable::getHandlerTypes();
       $plural = $types[$type]['plural'];
 
-      foreach ($this->getOption($plural) as $id => $info) {
+      foreach ((array) $this->getOption($plural) as $id => $info) {
         // If this is during form submission and there are temporary options
         // which can only appear if the view is in the edit cache, use those
         // options instead. This is used for AJAX multi-step stuff.
@@ -1988,7 +1988,6 @@ public function submitOptionsForm(&$form, FormStateInterface $form_state) {
             $plugin_options = array(
               'type' => $type,
               'options' => $plugin->options,
-              'provider' => $plugin->definition['provider']
             );
             $this->setOption($plugin_type, $plugin_options);
             if ($plugin->usesOptions()) {
diff --git a/core/modules/views/src/Plugin/views/query/QueryPluginBase.php b/core/modules/views/src/Plugin/views/query/QueryPluginBase.php
index 2db89fd..98e7e50 100644
--- a/core/modules/views/src/Plugin/views/query/QueryPluginBase.php
+++ b/core/modules/views/src/Plugin/views/query/QueryPluginBase.php
@@ -118,6 +118,21 @@ public function summaryTitle() {
   }
 
   /**
+   * {@inheritdoc}
+   */
+  public function calculateDependencies() {
+    $dependencies = [];
+
+    foreach ($this->getEntityTableInfo() as $entity_type => $info) {
+      if (!empty($info['provider'])) {
+        $dependencies['module'][] = $info['provider'];
+      }
+    }
+
+    return $dependencies;
+  }
+
+  /**
    * Set a LIMIT on the query, specifying a maximum number of results.
    */
   public function setLimit($limit) {
@@ -260,9 +275,15 @@ public function getEntityTableInfo() {
         'entity_type' => $base_table_data['table']['entity type'],
         'revision' => FALSE,
       );
+
+      // Include the entity provider.
+      if (!empty($table_data['table']['provider'])) {
+        $entity_tables[$table_data['table']['entity type']]['provider'] = $table_data['table']['provider'];
+      }
     }
+
     // Include all relationships.
-    foreach ($this->view->relationship as $relationship_id => $relationship) {
+    foreach ((array) $this->view->relationship as $relationship_id => $relationship) {
       $table_data = $views_data->get($relationship->definition['base']);
       if (isset($table_data['table']['entity type'])) {
         $entity_tables[$table_data['table']['entity type']] = array(
@@ -272,6 +293,11 @@ public function getEntityTableInfo() {
           'entity_type' => $table_data['table']['entity type'],
           'revision' => FALSE,
         );
+
+        // Include the entity provider.
+        if (!empty($table_data['table']['provider'])) {
+          $entity_tables[$table_data['table']['entity type']]['provider'] = $table_data['table']['provider'];
+        }
       }
     }
 
diff --git a/core/modules/views/src/Plugin/views/relationship/RelationshipPluginBase.php b/core/modules/views/src/Plugin/views/relationship/RelationshipPluginBase.php
index 8a39ae9..6123d67 100644
--- a/core/modules/views/src/Plugin/views/relationship/RelationshipPluginBase.php
+++ b/core/modules/views/src/Plugin/views/relationship/RelationshipPluginBase.php
@@ -164,6 +164,18 @@ public function query() {
     }
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function calculateDependencies() {
+    // Figure out what base table this relationship brings to the party and add
+    // a dependency on its provider.
+    $table_data = $this->getViewsData()->get($this->definition['base']);
+    return [
+      'module' => [$table_data['table']['provider']],
+    ];
+  }
+
 }
 
 /**
diff --git a/core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php b/core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php
index b6fa496..f59a958 100644
--- a/core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php
+++ b/core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php
@@ -843,8 +843,6 @@ protected function defaultDisplayOptions() {
     // Add default options array to each plugin type.
     foreach ($display_options as &$options) {
       $options['options'] = array();
-      $options['provider'] = 'views';
-      $options['dependencies'] = array();
     }
 
     // Add a least one field so the view validates and the user has a preview.
@@ -870,9 +868,6 @@ protected function defaultDisplayOptions() {
     // Load the plugin ID and module.
     $base_field = $data['table']['base']['field'];
     $display_options['fields'][$base_field]['plugin_id'] = $data[$base_field]['field']['id'];
-    if ($definition = Views::pluginManager('field')->getDefinition($display_options['fields'][$base_field]['plugin_id'], FALSE)) {
-      $display_options['fields'][$base_field]['provider'] = isset($definition['provider']) ? $definition['provider'] : 'views';
-    }
 
     return $display_options;
   }
diff --git a/core/modules/views/src/Tests/Entity/ViewEntityDependenciesTest.php b/core/modules/views/src/Tests/Entity/ViewEntityDependenciesTest.php
index e111fe2..f08cbca 100644
--- a/core/modules/views/src/Tests/Entity/ViewEntityDependenciesTest.php
+++ b/core/modules/views/src/Tests/Entity/ViewEntityDependenciesTest.php
@@ -7,7 +7,8 @@
 
 namespace Drupal\views\Tests\Entity;
 
-use Drupal\views\Tests\ViewTestBase;
+use Drupal\Component\Utility\Unicode;
+use Drupal\views\Tests\ViewUnitTestBase;
 use Drupal\views\Views;
 
 /**
@@ -15,56 +16,93 @@
  *
  * @group views
  */
-class ViewEntityDependenciesTest extends ViewTestBase {
+class ViewEntityDependenciesTest extends ViewUnitTestBase {
 
   /**
    * Views used by this test.
    *
    * @var array
    */
-  public static $testViews = array('test_field_get_entity');
+  public static $testViews = ['test_field_get_entity', 'test_relationship_dependency', 'test_plugin_dependencies'];
 
   /**
    * Modules to enable.
    *
    * @var array
    */
-  public static $modules = array('node', 'comment');
+  public static $modules = ['node', 'comment', 'user', 'field', 'text', 'entity_reference'];
 
   /**
    * Tests the calculateDependencies method.
    */
   public function testCalculateDependencies() {
-    // The view is a view of comments, their nodes and their authors, so there
-    // are three layers of entities.
-    $account = entity_create('user', array('name' => $this->randomMachineName(), 'bundle' => 'user'));
-    $account->save();
-    $this->drupalCreateContentType(array('type' => 'page'));
-    $this->container->get('comment.manager')->addDefaultField('node', 'page');
-    // Force a flush of the in-memory storage.
-    $this->container->get('views.views_data')->clear();
 
-    $node = entity_create('node', array('uid' => $account->id(), 'type' => 'page'));
-    $node->save();
-    $comment = entity_create('comment', array(
-      'uid' => $account->id(),
-      'entity_id' => $node->id(),
+    $comment_type = entity_create('comment_type', array(
+      'id' => 'comment',
+      'label' => 'Comment settings',
+      'description' => 'Comment settings',
+      'target_entity_type_id' => 'node',
+    ));
+    $comment_type->save();
+    $content_type = entity_create('node_type', array(
+      'type' => $this->randomMachineName(),
+      'name' => $this->randomString(),
+    ));
+    $content_type->save();
+    $field_storage = entity_create('field_storage_config', array(
+      'field_name' => Unicode::strtolower($this->randomMachineName()),
       'entity_type' => 'node',
-      'field_name' => 'comment'
+      'type' => 'comment',
     ));
-    $comment->save();
-
-    $view = Views::getView('test_field_get_entity');
+    $field_storage->save();
+    entity_create('field_config', array(
+      'field_storage' => $field_storage,
+      'bundle' => $content_type->id(),
+      'label' => $this->randomMachineName() . '_label',
+      'description' => $this->randomMachineName() . '_description',
+      'settings' => array(
+        'comment_type' => $comment_type->id(),
+      ),
+    ))->save();
+    // Force a flush of the in-memory storage.
+    $this->container->get('views.views_data')->clear();
 
-    $expected_dependencies = array(
-      'module' => array(
+    $expected = [];
+    $expected['test_field_get_entity'] = [
+      'module' => [
+        'comment',
+        'node',
+        'user',
+      ]
+    ];
+    // Tests dependencies of relationships.
+    $expected['test_relationship_dependency'] = [
+      'module' => [
         'comment',
         'node',
         'user',
-      )
-    );
-    $dependencies = $view->calculateDependencies();
-    $this->assertEqual($expected_dependencies, $dependencies);
+      ]
+    ];
+    $expected['test_plugin_dependencies'] = [
+      'module' => [
+        'comment',
+        // The argument handler has an explicit dependency on views_test_data.
+        'views_test_data',
+      ],
+      'test_dependency' => [
+        'access',
+        'row',
+        'style',
+      ]
+    ];
+    foreach ($this::$testViews as $view_id) {
+      $view = Views::getView($view_id);
+
+      $dependencies = $view->calculateDependencies();
+      $this->assertEqual($expected[$view_id], $dependencies);
+      $config = \Drupal::config('views.view.' . $view_id);
+      \Drupal::service('config.storage.staging')->write($view_id, $config->get());
+    }
   }
 
 }
diff --git a/core/modules/views/src/Tests/Handler/AreaTitleWebTest.php b/core/modules/views/src/Tests/Handler/AreaTitleWebTest.php
index 7d0fde5..fa86118 100644
--- a/core/modules/views/src/Tests/Handler/AreaTitleWebTest.php
+++ b/core/modules/views/src/Tests/Handler/AreaTitleWebTest.php
@@ -51,7 +51,6 @@ public function testTitleText() {
       'table' => 'views_test_data',
       'relationship' => 'none',
       'plugin_id' => 'numeric',
-      'provider' => 'views_test_data',
       // Add a value which does not exist.
       'value' => ['value' => '042118160112'],
     ];
diff --git a/core/modules/views/src/Tests/Plugin/DisplayTest.php b/core/modules/views/src/Tests/Plugin/DisplayTest.php
index bacfdd4..3c52272 100644
--- a/core/modules/views/src/Tests/Plugin/DisplayTest.php
+++ b/core/modules/views/src/Tests/Plugin/DisplayTest.php
@@ -66,7 +66,6 @@ public function testDisplayPlugin() {
       'id' => 'display_test_1',
       'display_title' => 'Display test',
       'position' => 1,
-      'provider' => 'views_test_data',
     );
     $this->assertEqual($displays['display_test_1'], $options);
 
@@ -79,7 +78,6 @@ public function testDisplayPlugin() {
       'id' => 'display_test_2',
       'display_title' => 'Display test 2',
       'position' => 2,
-      'provider' => 'views_test_data',
     );
     $this->assertEqual($displays['display_test_2'], $options);
 
diff --git a/core/modules/views/src/Tests/ViewStorageTest.php b/core/modules/views/src/Tests/ViewStorageTest.php
index 7a05428..3eeda98 100644
--- a/core/modules/views/src/Tests/ViewStorageTest.php
+++ b/core/modules/views/src/Tests/ViewStorageTest.php
@@ -268,7 +268,6 @@ protected function displayMethodTests() {
       'table' => 'views_test_data',
       'field' => 'id',
       'plugin_id' => 'numeric',
-      'provider' => 'views',
     );
     $this->assertEqual($item1, $expected_item);
 
@@ -284,7 +283,6 @@ protected function displayMethodTests() {
       'table' => 'views_test_data',
       'field' => 'name',
       'plugin_id' => 'standard',
-      'provider' => 'views',
     ) + $options;
     $this->assertEqual($item2, $expected_item);
 
diff --git a/core/modules/views/src/Tests/Wizard/BasicTest.php b/core/modules/views/src/Tests/Wizard/BasicTest.php
index b404dd4..7bb0f81 100644
--- a/core/modules/views/src/Tests/Wizard/BasicTest.php
+++ b/core/modules/views/src/Tests/Wizard/BasicTest.php
@@ -204,11 +204,8 @@ public function testWizardDefaultValues() {
     $displays = $view->storage->get('display');
 
     foreach ($displays as $display) {
-      $this->assertIdentical($display['provider'], 'views', 'Expected provider found for display.');
-
       foreach (array('query', 'exposed_form', 'pager', 'style', 'row') as $type) {
         $this->assertFalse(empty($display['display_options'][$type]['options']), String::format('Default options found for @plugin.', array('@plugin' => $type)));
-        $this->assertIdentical($display['display_options'][$type]['provider'], 'views', String::format('Expected provider found for @plugin.', array('@plugin' => $type)));
       }
     }
   }
diff --git a/core/modules/views/src/ViewExecutable.php b/core/modules/views/src/ViewExecutable.php
index 8e5084c..2f9942e 100644
--- a/core/modules/views/src/ViewExecutable.php
+++ b/core/modules/views/src/ViewExecutable.php
@@ -1909,9 +1909,6 @@ public function addHandler($display_id, $type, $table, $field, $options = array(
     $data = Views::viewsData()->get($table);
     if (isset($data[$field][$handler_type]['id'])) {
       $fields[$id]['plugin_id'] = $data[$field][$handler_type]['id'];
-      if ($definition = Views::pluginManager($handler_type)->getDefinition($fields[$id]['plugin_id'], FALSE)) {
-        $fields[$id]['provider'] = isset($definition['provider']) ? $definition['provider'] : 'views';
-      }
     }
 
     $this->displayHandlers->get($display_id)->setOption($types[$type]['plural'], $fields);
diff --git a/core/modules/views/src/ViewsData.php b/core/modules/views/src/ViewsData.php
index 9578994..796e94b 100644
--- a/core/modules/views/src/ViewsData.php
+++ b/core/modules/views/src/ViewsData.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\views;
 
+use Drupal\Component\Utility\NestedArray;
 use Drupal\Core\Cache\Cache;
 use Drupal\Core\Cache\CacheBackendInterface;
 use Drupal\Core\Config\ConfigFactoryInterface;
@@ -230,7 +231,18 @@ protected function getData() {
       return $data->data;
     }
     else {
-      $data = $this->moduleHandler->invokeAll('views_data');
+      $modules = $this->moduleHandler->getImplementations('views_data');
+      $data = [];
+      foreach ($modules as $module) {
+        $views_data = $this->moduleHandler->invoke($module, 'views_data');
+        // Set the provider key for each base table.
+        foreach ($views_data as &$table) {
+          if (isset($table['table']) && !isset($table['table']['provider'])) {
+            $table['table']['provider'] = $module;
+          }
+        }
+        $data = NestedArray::mergeDeep($data, $views_data);
+      }
       $this->moduleHandler->alter('views_data', $data);
 
       $this->processEntityTypes($data);
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_aggregate_count.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_aggregate_count.yml
index f91f67d..c3184c6 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_aggregate_count.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_aggregate_count.yml
@@ -17,7 +17,6 @@ display:
             format: default_summary
           table: entity_test
           plugin_id: string
-          provider: views
       cache:
         type: none
       exposed_form:
@@ -39,7 +38,6 @@ display:
           link_to_node: '0'
           table: entity_test
           plugin_id: numeric
-          provider: views
       group_by: '1'
       pager:
         type: some
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_ajax_view.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_ajax_view.yml
index ba7ce22..6acace5 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_ajax_view.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_ajax_view.yml
@@ -17,21 +17,18 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
         id:
           field: id
           id: id
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
         name:
           field: name
           id: name
           relationship: none
           table: views_test_data
           plugin_id: string
-          provider: views_test_data
       pager:
         options:
           offset: '0'
@@ -46,7 +43,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
       use_ajax: 1
     display_plugin: default
     display_title: Master
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_alias.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_alias.yml
index 899fadd..f1dc05e 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_alias.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_alias.yml
@@ -32,7 +32,6 @@ display:
           overwrite_anonymous: '0'
           table: users_field_data
           plugin_id: user_name
-          provider: user
       filters:
         uid_raw:
           admin_label: ''
@@ -73,7 +72,6 @@ display:
             min: ''
             value: '1'
           plugin_id: numeric
-          provider: views
       pager:
         type: full
       query:
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_area_title.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_area_title.yml
index d5eb231..f65a5d1 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_area_title.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_area_title.yml
@@ -17,7 +17,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
       pager:
         options:
           offset: '0'
@@ -31,7 +30,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
       empty:
         title:
           field: title
@@ -39,7 +37,6 @@ display:
           table: views
           plugin_id: title
           title: test_title_empty
-          provider: views
     display_plugin: default
     display_title: Master
     id: default
@@ -56,7 +53,6 @@ display:
           table: views
           plugin_id: title
           title: test_title_header
-          provider: views
     display_plugin: page
     display_title: 'Page 1'
     id: page_1
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_area_view.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_area_view.yml
index c6fd478..4457538 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_area_view.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_area_view.yml
@@ -17,7 +17,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
       pager:
         options:
           offset: '0'
@@ -31,7 +30,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
       header:
         view:
           field: view
@@ -40,7 +38,6 @@ display:
           view_to_insert: test_simple_argument:default
           inherit_arguments: 1
           plugin_id: view
-          provider: views
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_date.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_date.yml
index 5e3ffad..cde9317 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_date.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_date.yml
@@ -16,7 +16,6 @@ display:
           id: date_fulldate
           table: views_test_data
           plugin_id: date_fulldate
-          provider: views_test_data
       fields:
         id:
           field: id
@@ -24,7 +23,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
       pager:
         options:
           offset: '0'
@@ -38,7 +36,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
     display_plugin: default
     display_title: Master
     id: default
@@ -53,7 +50,6 @@ display:
           id: date_day
           table: views_test_data
           plugin_id: date_day
-          provider: views_test_data
     display_plugin: embed
     id: embed_1
   embed_2:
@@ -66,7 +62,6 @@ display:
           id: date_month
           table: views_test_data
           plugin_id: date_month
-          provider: views_test_data
     display_plugin: embed
     id: embed_2
   embed_3:
@@ -79,7 +74,6 @@ display:
           id: date_week
           table: views_test_data
           plugin_id: date_week
-          provider: views_test_data
     display_plugin: embed
     id: embed_3
   embed_4:
@@ -92,7 +86,6 @@ display:
           id: date_year
           table: views_test_data
           plugin_id: date_year
-          provider: views_test_data
     display_plugin: embed
     id: embed_4
   embed_5:
@@ -105,7 +98,6 @@ display:
           id: date_year_month
           table: views_test_data
           plugin_id: date_year_month
-          provider: views_test_data
     display_plugin: embed
     id: embed_5
 label: ''
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_default_current_user.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_default_current_user.yml
index cb14c2f..63b98fe 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_default_current_user.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_default_current_user.yml
@@ -14,7 +14,6 @@ display:
           id: uid
           table: node_field_data
           plugin_id: numeric
-          provider: views
       cache:
         type: none
       exposed_form:
@@ -36,7 +35,6 @@ display:
           link_to_node: '0'
           table: node_field_data
           plugin_id: node
-          provider: node
       pager:
         options:
           id: '0'
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_default_fixed.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_default_fixed.yml
index 703d355..605bb0e 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_default_fixed.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_argument_default_fixed.yml
@@ -17,7 +17,6 @@ display:
           style_plugin: default_summary
           table: views
           plugin_id: 'null'
-          provider: views
       cache:
         type: none
       exposed_form:
@@ -39,7 +38,6 @@ display:
           link_to_node: '0'
           table: node_field_data
           plugin_id: node
-          provider: node
       pager:
         options:
           id: '0'
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_attachment_ui.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_attachment_ui.yml
index ca105c1..c1d35f7 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_attachment_ui.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_attachment_ui.yml
@@ -25,7 +25,6 @@ display:
           table: views_test_data
           field: id
           plugin_id: numeric
-          provider: views_test_data
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_cache.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_cache.yml
index c5fb87e..526dbd2 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_cache.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_cache.yml
@@ -15,19 +15,16 @@ display:
           table: views_test_data
           field: id
           relationship: none
-          provider: views_test_data
         name:
           id: name
           table: views_test_data
           field: name
           relationship: none
-          provider: views_test_data
         age:
           id: age
           table: views_test_data
           field: age
           relationship: none
-          provider: views_test_data
       defaults:
         fields: '0'
         sorts: '0'
@@ -38,7 +35,6 @@ display:
           table: views_test_data
           field: id
           relationship: none
-          provider: views_test_data
 label: ''
 id: test_cache
 tag: ''
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_click_sort.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_click_sort.yml
index 2bcbbda..e36635b 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_click_sort.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_click_sort.yml
@@ -12,21 +12,18 @@ display:
           field: id
           label: ID
           plugin_id: numeric
-          provider: views_test_data
         name:
           id: name
           table: views_test_data
           field: name
           label: Name
           plugin_id: string
-          provider: views_test_data
         created:
           id: created
           table: views_test_data
           field: created
           label: created
           plugin_id: date
-          provider: views_test_data
       display_options:
         access:
           type: none
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_destroy.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_destroy.yml
index 5dfd8c9..3b24669 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_destroy.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_destroy.yml
@@ -37,7 +37,6 @@ display:
           style_plugin: default_summary
           table: node_field_data
           plugin_id: date_day
-          provider: views
         created_fulldate:
           default_argument_type: fixed
           field: created_fulldate
@@ -45,7 +44,6 @@ display:
           style_plugin: default_summary
           table: node_field_data
           plugin_id: date_fulldate
-          provider: views
         created_month:
           default_argument_type: fixed
           field: created_month
@@ -53,7 +51,6 @@ display:
           style_plugin: default_summary
           table: node_field_data
           plugin_id: date_month
-          provider: views
       cache:
         type: none
       empty:
@@ -63,14 +60,12 @@ display:
           id: area
           table: views
           plugin_id: text
-          provider: views
         area_1:
           empty: '0'
           field: area
           id: area_1
           table: views
           plugin_id: text
-          provider: views
       exposed_form:
         type: basic
       fields:
@@ -79,38 +74,32 @@ display:
           id: created
           table: node_field_data
           plugin_id: date
-          provider: views
         nid:
           field: nid
           id: nid
           table: node
           plugin_id: node
-          provider: node
         path:
           field: path
           id: path
           table: node
           plugin_id: node_path
-          provider: node
       filters:
         nid:
           field: nid
           id: nid
           table: node
           plugin_id: numeric
-          provider: views
         status:
           field: status
           id: status
           table: node_field_data
           plugin_id: boolean
-          provider: views
         title:
           field: title
           id: title
           table: node_field_data
           plugin_id: string
-          provider: views
       footer:
         area:
           empty: '0'
@@ -118,14 +107,12 @@ display:
           id: area
           table: views
           plugin_id: text
-          provider: views
         area_1:
           empty: '0'
           field: area
           id: area_1
           table: views
           plugin_id: text
-          provider: views
       header:
         area:
           empty: '0'
@@ -133,14 +120,12 @@ display:
           id: area
           table: views
           plugin_id: text
-          provider: views
         area_1:
           empty: '0'
           field: area
           id: area_1
           table: views
           plugin_id: text
-          provider: views
       pager:
         type: full
       query:
@@ -151,34 +136,29 @@ display:
           id: comment_cid
           table: node
           plugin_id: standard
-          provider: views
         pid:
           field: pid
           id: pid
           table: comment_field_data
           relationship: comment_cid
           plugin_id: standard
-          provider: views
         uid:
           field: uid
           id: uid
           table: comment_field_data
           relationship: comment_cid
           plugin_id: standard
-          provider: views
       sorts:
         last_comment_name:
           field: last_comment_name
           id: last_comment_name
           table: comment_entity_statistics
           plugin_id: comment_ces_last_comment_name
-          provider: comment
         last_comment_timestamp:
           field: last_comment_timestamp
           id: last_comment_timestamp
           table: comment_entity_statistics
           plugin_id: date
-          provider: views
       style:
         type: default
       row:
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display.yml
index 8f40aa3..fdf04d2 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display.yml
@@ -32,7 +32,6 @@ display:
     display_title: Block
     id: block_1
     position: 2
-    provider: views
   default:
     display_options:
       access:
@@ -47,7 +46,6 @@ display:
           id: title
           table: node_field_data
           plugin_id: node
-          provider: node
       filters:
         status:
           field: status
@@ -56,7 +54,6 @@ display:
           table: node_field_data
           value: '1'
           plugin_id: boolean
-          provider: views
       pager:
         options:
           items_per_page: '10'
@@ -75,7 +72,6 @@ display:
           order: DESC
           table: node_field_data
           plugin_id: date
-          provider: views
       style_plugin: default
       title: 'Test Display'
     display_plugin: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_attachment.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_attachment.yml
index c2d9ced..e2b11d8 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_attachment.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_attachment.yml
@@ -44,7 +44,6 @@ display:
           hide_empty: '0'
           empty_zero: '0'
           link_to_node: '1'
-          provider: views_test_data
       title: test_display_attachment
   page_1:
     display_plugin: page
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_defaults.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_defaults.yml
index 64af2b0..50adce3 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_defaults.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_defaults.yml
@@ -36,14 +36,12 @@ display:
           id: name
           table: views_test_data
           field: name
-          provider: views_test_data
       sorts:
         created:
           id: created
           table: views_test_data
           field: created
           order: DESC
-          provider: views_test_data
 label: ''
 module: views
 id: test_display_defaults
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_feed.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_feed.yml
index d4ece5d..a338d5a 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_feed.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_feed.yml
@@ -30,7 +30,6 @@ display:
           link_to_node: '1'
           table: node_field_data
           plugin_id: node
-          provider: node
       filters:
         status:
           expose:
@@ -41,7 +40,6 @@ display:
           table: node_field_data
           value: '1'
           plugin_id: boolean
-          provider: views
       pager:
         options:
           items_per_page: 10
@@ -61,7 +59,6 @@ display:
           order: DESC
           table: node_field_data
           plugin_id: date
-          provider: views
       style:
         type: default
       title: test_display_feed
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_invalid.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_invalid.yml
index b74f3c0..a69444c 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_invalid.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_invalid.yml
@@ -13,7 +13,6 @@ display:
           table: node
           field: nid
           plugin_id: numeric
-          provider: node
     display_plugin: default
     display_title: Master
     id: default
@@ -30,7 +29,6 @@ display:
     id: block_1
     display_title: Block
     position: 1
-    provider: views
 label: ''
 id: test_display_invalid
 tag: ''
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_more.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_more.yml
index 2ad1e31..7ec536d 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_more.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_display_more.yml
@@ -17,7 +17,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
       pager:
         options:
           offset: '0'
@@ -31,7 +30,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
       use_more: '1'
       use_more_always: '1'
       use_more_text: 'custom more text'
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_dropbutton.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_dropbutton.yml
index e83d67b..4192cbb 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_dropbutton.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_dropbutton.yml
@@ -77,7 +77,6 @@ display:
           empty_zero: '0'
           hide_alter_empty: '1'
           link_to_node: '0'
-          provider: node
         title:
           id: title
           table: node_field_data
@@ -96,7 +95,6 @@ display:
           hide_empty: '0'
           empty_zero: '0'
           link_to_node: '1'
-          provider: node
         nothing:
           id: nothing
           table: views
@@ -146,7 +144,6 @@ display:
           hide_empty: '0'
           empty_zero: '0'
           hide_alter_empty: '0'
-          provider: views
         dropbutton:
           id: dropbutton
           table: views
@@ -201,7 +198,6 @@ display:
             nothing: nothing
             nid: '0'
           destination: '1'
-          provider: views
       filters:
         status:
           value: '1'
@@ -212,7 +208,6 @@ display:
           expose:
             operator: '0'
           group: '1'
-          provider: views
       sorts:
         created:
           id: created
@@ -220,7 +215,6 @@ display:
           field: created
           order: DESC
           plugin_id: date
-          provider: views
       title: test_dropbutton
   page_1:
     display_plugin: page
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_area.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_area.yml
index d61b746..58ab853 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_area.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_area.yml
@@ -18,7 +18,6 @@ display:
           entity_id: 1
           view_mode: full
           plugin_id: entity
-          provider: views
       footer:
         entity_entity_test:
           field: entity_entity_test
@@ -27,7 +26,6 @@ display:
           entity_id: '!1'
           view_mode: full
           plugin_id: entity
-          provider: views
       fields:
         id:
           field: id
@@ -35,14 +33,12 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
       arguments:
         id:
           id: id
           table: views_test_data
           field: id
           plugin_id: numeric
-          provider: views_test_data
       pager:
         options:
           offset: '0'
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_type_filter.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_type_filter.yml
index a9873c2..60a81e0 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_type_filter.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_entity_type_filter.yml
@@ -15,7 +15,6 @@ display:
           table: node
           field: nid
           relationship: none
-          provider: node
         type:
           id: type
           table: node_field_data
@@ -64,7 +63,6 @@ display:
           hide_empty: '0'
           empty_zero: '0'
           hide_alter_empty: '1'
-          provider: node
       defaults:
         fields: '0'
         filters: '0'
@@ -78,7 +76,6 @@ display:
             all: all
             test_bundle: test_bundle
             test_bundle_2: test_bundle_2
-          provider: views
 label: ''
 id: test_entity_type_filter
 tag: ''
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_example_area.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_example_area.yml
index 8005d4f..c8fdadc 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_example_area.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_example_area.yml
@@ -15,21 +15,18 @@ display:
           id: test_example
           table: views
           plugin_id: test_example
-          provider: views_test_data
       footer:
         test_example:
           field: test_example
           id: test_example
           table: views
           plugin_id: test_example
-          provider: views_test_data
       empty:
         test_example:
           field: test_example
           id: test_example
           table: views
           plugin_id: test_example
-          provider: views_test_data
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_exposed_admin_ui.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_exposed_admin_ui.yml
index c7779af..3b03f68 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_exposed_admin_ui.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_exposed_admin_ui.yml
@@ -23,7 +23,6 @@ display:
           id: type
           table: node_field_data
           plugin_id: node_type
-          provider: views
         body_value:
           id: body_value
           table: node__body
@@ -64,7 +63,6 @@ display:
                 operator: empty
                 value: ''
           plugin_id: string
-          provider: views
       pager:
         type: full
       sorts:
@@ -73,7 +71,6 @@ display:
           id: created
           table: node_field_data
           plugin_id: date
-          provider: views
       style:
         type: default
       row:
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_exposed_block.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_exposed_block.yml
index ebda91d..a18b591 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_exposed_block.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_exposed_block.yml
@@ -25,7 +25,6 @@ display:
           id: type
           table: node_field_data
           plugin_id: node_type
-          provider: views
       pager:
         type: full
       query:
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_exposed_form_buttons.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_exposed_form_buttons.yml
index c8fefdb..3a9a4a9 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_exposed_form_buttons.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_exposed_form_buttons.yml
@@ -25,7 +25,6 @@ display:
           id: type
           table: node_field_data
           plugin_id: node_type
-          provider: views
       pager:
         type: full
       query:
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_classes.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_classes.yml
index b439bd9..c20ce10 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_classes.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_classes.yml
@@ -15,7 +15,6 @@ display:
           table: views_test_data
           field: id
           plugin_id: numeric
-          provider: views_test_data
       style:
         type: html_list
     display_plugin: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_get_entity.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_get_entity.yml
index ab11335..0e93c68 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_get_entity.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_get_entity.yml
@@ -17,21 +17,18 @@ display:
           id: cid
           table: comment
           plugin_id: comment
-          provider: comment
         nid:
           field: nid
           id: nid
           table: node
           relationship: node
           plugin_id: node
-          provider: node
         uid:
           field: uid
           id: uid
           table: users
           relationship: uid
           plugin_id: user
-          provider: user
       filter_groups:
         groups: {  }
         operator: AND
@@ -47,7 +44,6 @@ display:
           required: '1'
           table: comment_field_data
           plugin_id: standard
-          provider: views
         uid:
           admin_label: ''
           field: uid
@@ -58,7 +54,6 @@ display:
           required: '0'
           table: node_field_data
           plugin_id: standard
-          provider: views
       sorts: {  }
       style:
         type: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_output.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_output.yml
index ba5b139..2ea608b 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_output.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_output.yml
@@ -15,7 +15,6 @@ display:
           table: views_test_data
           field: name
           plugin_id: string
-          provider: views_test_data
       style:
         type: html_list
     display_plugin: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_tokens.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_tokens.yml
index 117559e..53927bf 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_tokens.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_tokens.yml
@@ -21,25 +21,21 @@ display:
           table: views_test_data
           field: name
           plugin_id: string
-          provider: views_test_data
         name_1:
           id: name_1
           table: views_test_data
           field: name
           plugin_id: string
-          provider: views_test_data
         name_2:
           id: name_2
           table: views_test_data
           field: name
           plugin_id: string
-          provider: views_test_data
         job:
           id: job
           table: views_test_data
           field: job
           plugin_id: string
-          provider: views_test_data
       style:
         type: default
       row:
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter.yml
index f202916..40b82d2 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter.yml
@@ -20,14 +20,12 @@ display:
           label: ''
           table: views_test_data
           plugin_id: string
-          provider: views_test_data
       filters:
         type:
           field: name
           id: test_filter
           table: views_test_data
           plugin_id: string
-          provider: views_test_data
       query:
         type: views_query
       use_more_always: '0'
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_date_between.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_date_between.yml
index 5eefe8f..eaf0410 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_date_between.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_date_between.yml
@@ -17,14 +17,12 @@ display:
           id: nid
           table: node
           plugin_id: node
-          provider: node
       filters:
         created:
           field: created
           id: created
           table: node_field_data
           plugin_id: date
-          provider: views
       pager:
         type: full
       query:
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_group_override.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_group_override.yml
index ca95b6b..fac9bd1 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_group_override.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_group_override.yml
@@ -21,7 +21,6 @@ display:
           label: ''
           table: node_field_data
           plugin_id: node
-          provider: node
       filters:
         status:
           expose:
@@ -32,7 +31,6 @@ display:
           table: node_field_data
           value: '1'
           plugin_id: boolean
-          provider: views
       pager:
         type: full
       query:
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_groups.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_groups.yml
index b0ef217..7c89322 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_groups.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_groups.yml
@@ -21,7 +21,6 @@ display:
           label: ''
           table: node_field_data
           plugin_id: node
-          provider: node
       filter_groups:
         groups:
           1: AND
@@ -35,7 +34,6 @@ display:
           value:
             value: '1'
           plugin_id: numeric
-          provider: views
         nid_1:
           field: nid
           group: '2'
@@ -44,7 +42,6 @@ display:
           value:
             value: '2'
           plugin_id: numeric
-          provider: views
         status:
           expose:
             operator: '0'
@@ -54,7 +51,6 @@ display:
           table: node_field_data
           value: '1'
           plugin_id: boolean
-          provider: views
       pager:
         options:
           items_per_page: '10'
@@ -68,7 +64,6 @@ display:
           order: DESC
           table: node_field_data
           plugin_id: date
-          provider: views
       title: test_filter_groups
       style:
         type: default
@@ -96,7 +91,6 @@ display:
           value:
             value: '1'
           plugin_id: numeric
-          provider: views
         nid_1:
           field: nid
           group: '2'
@@ -105,7 +99,6 @@ display:
           value:
             value: '2'
           plugin_id: numeric
-          provider: views
         status:
           expose:
             operator: '0'
@@ -115,7 +108,6 @@ display:
           table: node_field_data
           value: '1'
           plugin_id: boolean
-          provider: views
       path: test-filter-groups
     display_plugin: page
     display_title: Page
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_in_operator_ui.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_in_operator_ui.yml
index 8473c13..c93fcb3 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_in_operator_ui.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_in_operator_ui.yml
@@ -24,7 +24,6 @@ display:
           id: type
           table: node_field_data
           plugin_id: string
-          provider: views
       pager:
         type: full
       style:
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_get_attach_displays.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_get_attach_displays.yml
index 79c4473..8a3554b 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_get_attach_displays.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_get_attach_displays.yml
@@ -50,7 +50,6 @@ display:
           hide_empty: '0'
           empty_zero: '0'
           link_to_node: '1'
-          provider: node
       filters:
         status:
           value: '1'
@@ -61,7 +60,6 @@ display:
           expose:
             operator: '0'
           group: '1'
-          provider: views
       sorts:
         created:
           id: created
@@ -69,7 +67,6 @@ display:
           field: created
           order: DESC
           plugin_id: date
-          provider: views
       title: test_get_attach_displays
   page_1:
     display_plugin: page
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_glossary.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_glossary.yml
index ec0ea2f..b5babbe 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_glossary.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_glossary.yml
@@ -21,7 +21,6 @@ display:
             items_per_page: '25'
           table: node_field_data
           plugin_id: string
-          provider: views
       cache:
         type: none
       exposed_form:
@@ -33,7 +32,6 @@ display:
           label: ''
           table: node_field_data
           plugin_id: node
-          provider: node
       pager:
         type: full
       query:
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_group_by_count.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_group_by_count.yml
index 7b71624..0ca8f7f 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_group_by_count.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_group_by_count.yml
@@ -28,7 +28,6 @@ display:
           id: id
           table: entity_test
           plugin_id: numeric
-          provider: views
         name:
           alter:
             alter_text: '0'
@@ -44,7 +43,6 @@ display:
           id: name
           table: entity_test
           plugin_id: standard
-          provider: views
       group_by: '1'
       pager:
         type: some
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_group_by_in_filters.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_group_by_in_filters.yml
index 198d94e..843416d 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_group_by_in_filters.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_group_by_in_filters.yml
@@ -27,7 +27,6 @@ display:
           id: name
           table: entity_test
           plugin_id: standard
-          provider: views
       filters:
         id:
           field: id
@@ -38,7 +37,6 @@ display:
           value:
             value: '3'
           plugin_id: numeric
-          provider: views
       group_by: '1'
       pager:
         type: some
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_groupwise_term_ui.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_groupwise_term_ui.yml
index 075d87a..87c0217 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_groupwise_term_ui.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_groupwise_term_ui.yml
@@ -18,14 +18,12 @@ display:
           id: name
           table: taxonomy_term_field_data
           plugin_id: taxonomy
-          provider: taxonomy
         nid:
           field: nid
           id: nid
           relationship: tid_representative
           table: node
           plugin_id: node
-          provider: node
       pager:
         options:
           items_per_page: 10
@@ -48,7 +46,6 @@ display:
           subquery_view: ''
           table: taxonomy_term_data
           plugin_id: groupwise_max
-          provider: views
       row:
         type: fields
       sorts:
@@ -58,7 +55,6 @@ display:
           order: DESC
           table: taxonomy_term_data
           plugin_id: standard
-          provider: views
       style:
         type: default
       title: test_groupwise
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_handler_relationships.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_handler_relationships.yml
index 8a377d9..724d8bd 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_handler_relationships.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_handler_relationships.yml
@@ -11,21 +11,18 @@ display:
           table: node_field_data
           field: title
           plugin_id: node
-          provider: node
       relationships:
         comment_cid:
           id: comment_cid
           table: node
           field: comment_cid
           plugin_id: standard
-          provider: views
         nid:
           id: nid
           table: comment_field_data
           field: node
           relationship: comment_cid
           plugin_id: standard
-          provider: views
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_handler_test_access.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_handler_test_access.yml
index ce49309..c4ec352 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_handler_test_access.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_handler_test_access.yml
@@ -9,52 +9,44 @@ display:
           table: views_test_data
           field: access_callback
           plugin_id: numeric
-          provider: views_test_data
         access_callback_arguments:
           id: access_callback_arguments
           table: views_test_data
           field: access_callback_arguments
           plugin_id: numeric
-          provider: views_test_data
       filters:
         access_callback:
           id: access_callback
           table: views_test_data
           field: access_callback
           plugin_id: numeric
-          provider: views_test_data
         access_callback_arguments:
           id: access_callback_arguments
           table: views_test_data
           field: access_callback_arguments
           plugin_id: numeric
-          provider: views_test_data
       arguments:
         access_callback:
           id: access_callback
           table: views_test_data
           field: access_callback
           plugin_id: numeric
-          provider: views_test_data
         access_callback_arguments:
           id: access_callback_arguments
           table: views_test_data
           field: access_callback_arguments
           plugin_id: numeric
-          provider: views_test_data
       sorts:
         access_callback:
           id: access_callback
           table: views_test_data
           field: access_callback
           plugin_id: standard
-          provider: views_test_data
         access_callback_arguments:
           id: access_callback_arguments
           table: views_test_data
           field: access_callback_arguments
           plugin_id: standard
-          provider: views_test_data
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_history.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_history.yml
index 171b42e..700f181 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_history.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_history.yml
@@ -43,7 +43,6 @@ display:
           hide_empty: '0'
           empty_zero: '0'
           link_to_node: '1'
-          provider: node
         timestamp:
           id: timestamp
           table: history
@@ -95,7 +94,6 @@ display:
           hide_alter_empty: '1'
           link_to_node: '0'
           comments: '0'
-          provider: history
       filters:
         status:
           value: '1'
@@ -106,7 +104,6 @@ display:
           expose:
             operator: '0'
           group: '1'
-          provider: views
       sorts:
         created:
           id: created
@@ -114,7 +111,6 @@ display:
           field: created
           plugin_id: date
           order: DESC
-          provider: views
   page_1:
     display_plugin: page
     id: page_1
@@ -168,7 +164,6 @@ display:
             default_group: All
             default_group_multiple: {  }
             group_items: {  }
-          provider: views
         timestamp:
           id: timestamp
           table: history
@@ -204,7 +199,6 @@ display:
             default_group: All
             default_group_multiple: {  }
             group_items: {  }
-          provider: history
       defaults:
         filters: '0'
         filter_groups: '0'
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_mini_pager.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_mini_pager.yml
index 5409539..6b06c53 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_mini_pager.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_mini_pager.yml
@@ -64,7 +64,6 @@ display:
           empty_zero: '0'
           link_to_node: '1'
           plugin_id: node
-          provider: views
       filters: {  }
       sorts:
         nid:
@@ -73,7 +72,6 @@ display:
           field: nid
           plugin_id: standard
           order: ASC
-          provider: views
       title: test_mini_pager
       filter_groups:
         operator: AND
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display.yml
index d83c987..75d46ff 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display.yml
@@ -17,7 +17,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display_arguments.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display_arguments.yml
index 1b001d7..a5f0074 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display_arguments.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display_arguments.yml
@@ -17,7 +17,6 @@ display:
           field: id
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
     display_plugin: default
     display_title: Master
     id: default
@@ -40,7 +39,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
       path: test_route_with_argument
     display_plugin: page
     display_title: Page
@@ -57,7 +55,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
       path: test_route_with_suffix/%/suffix
     display_plugin: page
     display_title: Page
@@ -74,14 +71,12 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
         id_2:
           field: id
           id: id_2
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
       path: test_route_with_suffix_and_argument/%/suffix
     display_plugin: page
     display_title: Page
@@ -98,7 +93,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
       path: test_route_with_long_argument/%
     display_plugin: page
     display_title: Page
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display_menu.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display_menu.yml
index 7b6efae..489cfe6 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display_menu.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display_menu.yml
@@ -17,7 +17,6 @@ display:
           table: views_test_data
           field: id
           plugin_id: numeric
-          provider: views_test_data
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display_route.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display_route.yml
index 281b2fc..540e10d 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display_route.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_display_route.yml
@@ -17,7 +17,6 @@ display:
           table: views_test_data
           field: id
           plugin_id: numeric
-          provider: views_test_data
     display_plugin: default
     display_title: Master
     id: default
@@ -40,7 +39,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
       path: test_route_with_argument
     display_plugin: page
     display_title: Page
@@ -57,7 +55,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
       path: test_route_with_argument/%/suffix
     display_plugin: page
     display_title: Page
@@ -74,14 +71,12 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
         id_2:
           field: id
           id: id_2
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
       path: test_route_with_argument/%/suffix
     display_plugin: page
     display_title: Page
@@ -98,14 +93,12 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
         id_2:
           field: id
           id: id_2
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
       path: test_route_with_argument
     display_plugin: page
     display_title: Page
@@ -122,14 +115,12 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
         id_2:
           field: id
           id: id_2
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
       path: test_route_with_argument/%/%
     display_plugin: page
     display_title: Page
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_view.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_view.yml
index 3ab4cb9..58739f2 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_view.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_page_view.yml
@@ -17,7 +17,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_plugin_dependencies.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_plugin_dependencies.yml
new file mode 100644
index 0000000..2bdf76d
--- /dev/null
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_plugin_dependencies.yml
@@ -0,0 +1,50 @@
+base_table: comment
+core: 8.0-dev
+description: ''
+status: '1'
+display:
+  default:
+    display_options:
+      access:
+        type: test_static
+      arguments:
+        'null':
+          default_action: default
+          default_argument_type: fixed
+          id: 'null'
+          must_not_be: '0'
+          style_plugin: default_summary
+          table: views
+          field: null
+          plugin_id: 'null'
+      cache:
+        type: none
+      exposed_form:
+        type: basic
+      fields:
+        cid:
+          field: cid
+          id: cid
+          table: comment
+          plugin_id: comment
+      filter_groups:
+        groups: {  }
+        operator: AND
+      filters: {  }
+      pager:
+        type: full
+      query:
+        type: views_query
+      relationships:
+      sorts: {  }
+      style:
+        type: test_style
+      row:
+        type: test_row
+    display_plugin: default
+    display_title: Master
+    id: default
+    position: 0
+label: test_plugin_dependencies
+id: test_plugin_dependencies
+tag: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_preview.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_preview.yml
index bac7301..dd54a34 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_preview.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_preview.yml
@@ -38,7 +38,6 @@ display:
           label: Name
           exclude: '0'
           plugin_id: standard
-          provider: views_test_data
       filters:
         id:
           id: id
@@ -66,7 +65,6 @@ display:
             multiple: '0'
           is_grouped: '0'
           plugin_id: numeric
-          provider: views_test_data
       sorts: {  }
       filter_groups:
         operator: AND
@@ -84,7 +82,6 @@ display:
           title_enable: '0'
           title: ''
           plugin_id: numeric
-          provider: views_test_data
       header:
         area_text_custom:
           id: area_text_custom
@@ -97,7 +94,6 @@ display:
           content: 'Test header text'
           tokenize: '0'
           plugin_id: text_custom
-          provider: views
       footer:
         area_text_custom:
           id: area_text_custom
@@ -110,7 +106,6 @@ display:
           content: 'Test footer text'
           tokenize: '0'
           plugin_id: text_custom
-          provider: views
       empty:
         area_text_custom:
           id: area_text_custom
@@ -123,7 +118,6 @@ display:
           content: 'Test empty text'
           tokenize: '0'
           plugin_id: text_custom
-          provider: views
 label: test_preview
 module: views
 id: test_preview
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_redirect_view.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_redirect_view.yml
index 0f8d35e..8616c4b 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_redirect_view.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_redirect_view.yml
@@ -50,7 +50,6 @@ display:
           empty_zero: '0'
           link_to_node: '1'
           plugin_id: node
-          provider: node
       filters:
         status:
           value: '1'
@@ -61,7 +60,6 @@ display:
             operator: '0'
           group: '1'
           plugin_id: boolean
-          provider: views
       sorts:
         created:
           id: created
@@ -69,7 +67,6 @@ display:
           field: created
           order: DESC
           plugin_id: date
-          provider: views
       title: test_redirect_view
   page_1:
     display_plugin: page
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_get_entity.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_relationship_dependency.yml
similarity index 53%
copy from core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_get_entity.yml
copy to core/modules/views/tests/modules/views_test_config/test_views/views.view.test_relationship_dependency.yml
index ab11335..e6976ab 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_get_entity.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_relationship_dependency.yml
@@ -17,21 +17,6 @@ display:
           id: cid
           table: comment
           plugin_id: comment
-          provider: comment
-        nid:
-          field: nid
-          id: nid
-          table: node
-          relationship: node
-          plugin_id: node
-          provider: node
-        uid:
-          field: uid
-          id: uid
-          table: users
-          relationship: uid
-          plugin_id: user
-          provider: user
       filter_groups:
         groups: {  }
         operator: AND
@@ -44,21 +29,9 @@ display:
         node:
           field: node
           id: node
-          required: '1'
           table: comment_field_data
+          required: true
           plugin_id: standard
-          provider: views
-        uid:
-          admin_label: ''
-          field: uid
-          group_type: group
-          id: uid
-          label: author
-          relationship: node
-          required: '0'
-          table: node_field_data
-          plugin_id: standard
-          provider: views
       sorts: {  }
       style:
         type: default
@@ -68,6 +41,6 @@ display:
     display_title: Master
     id: default
     position: 0
-label: test_field_get_entity
-id: test_field_get_entity
+label: test_relationship_dependency
+id: test_relationship_dependency
 tag: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_search.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_search.yml
index 0c0616c..38587ac 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_search.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_search.yml
@@ -16,7 +16,6 @@ display:
           value: '1'
           table: node_field_data
           field: status
-          provider: node
           id: status
           expose:
             operator: ''
@@ -67,7 +66,6 @@ display:
             fail: 'not found'
           validate_options: {  }
           plugin_id: search
-          provider: search
       title: 'Arg Page'
   default:
     display_plugin: default
@@ -118,7 +116,6 @@ display:
           id: title
           table: node_field_data
           field: title
-          provider: node
           alter:
             alter_text: false
             make_link: false
@@ -151,7 +148,6 @@ display:
           value: '1'
           table: node_field_data
           field: status
-          provider: node
           id: status
           expose:
             operator: ''
@@ -187,7 +183,6 @@ display:
           value: '1'
           table: node_field_data
           field: status
-          provider: node
           id: status
           expose:
             operator: ''
@@ -228,7 +223,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: search_keywords
-          provider: search
       defaults:
         filters: false
         filter_groups: false
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_simple_argument.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_simple_argument.yml
index ff1f938..855a6cc 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_simple_argument.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_simple_argument.yml
@@ -17,19 +17,16 @@ display:
           id: age
           relationship: none
           table: views_test_data
-          provider: views_test_data
         id:
           field: id
           id: id
           relationship: none
           table: views_test_data
-          provider: views_test_data
         name:
           field: name
           id: name
           relationship: none
           table: views_test_data
-          provider: views_test_data
       pager:
         options:
           offset: '0'
@@ -42,7 +39,6 @@ display:
           order: ASC
           relationship: none
           table: views_test_data
-          provider: views_test_data
       arguments:
         age:
           default_action: ignore
@@ -79,7 +75,6 @@ display:
           validate_argument_transform: '0'
           validate_user_restrict_roles: '0'
           validate_argument_php: ''
-          provider: views_test_data
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_style_html_list.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_style_html_list.yml
index 0323178..7bca1c9 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_style_html_list.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_style_html_list.yml
@@ -34,7 +34,6 @@ display:
           type: ul
           wrapper_class: ''
           class: ''
-        provider: views
       row:
         type: fields
         options: {  }
@@ -43,7 +42,6 @@ display:
           id: name
           table: views_test_data
           field: name
-          provider: views_test_data
 label: ''
 module: views
 id: test_style_html_list
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_style_mapping.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_style_mapping.yml
index 2f4cb9c..ef3b07b 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_style_mapping.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_style_mapping.yml
@@ -17,21 +17,18 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
         job:
           field: job
           id: job
           relationship: none
           table: views_test_data
           plugin_id: string
-          provider: views_test_data
         name:
           field: name
           id: name
           relationship: none
           table: views_test_data
           plugin_id: string
-          provider: views_test_data
       pager:
         options:
           offset: '0'
@@ -45,7 +42,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
       style:
         type: mapping_test
         options:
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_style_opml.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_style_opml.yml
index af65fc9..0e5f729 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_style_opml.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_style_opml.yml
@@ -9,7 +9,6 @@ display:
     id: default
     display_title: Master
     position: 0
-    provider: views
     display_options:
       access:
         type: none
@@ -35,11 +34,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ""
-          dependencies:
-            module:
-            - aggregator
-            - aggregator
-            - aggregator
           label: Title
           exclude: false
           alter:
@@ -83,7 +77,6 @@ display:
           hide_alter_empty: true
           display_as_link: false
           plugin_id: aggregator_title_link
-          provider: aggregator
         url:
           id: url
           table: aggregator_feed
@@ -91,9 +84,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ""
-          dependencies:
-            module:
-            - views
           label: URL
           exclude: false
           alter:
@@ -137,7 +127,6 @@ display:
           hide_alter_empty: true
           display_as_link: false
           plugin_id: url
-          provider: views
         description:
           id: description
           table: aggregator_feed
@@ -145,9 +134,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ""
-          dependencies:
-            module:
-            - views
           label: Description
           exclude: false
           alter:
@@ -190,7 +176,6 @@ display:
           empty_zero: false
           hide_alter_empty: true
           plugin_id: xss
-          provider: views
         modified:
           id: modified
           table: aggregator_feed
@@ -198,9 +183,6 @@ display:
           relationship: none
           group_type: group
           admin_label: ""
-          dependencies:
-            module:
-            - views
           label: Last modified
           exclude: false
           alter:
@@ -246,7 +228,6 @@ display:
           custom_date_format: ""
           timezone: ""
           plugin_id: date
-          provider: views
       filters: []
       sorts: []
       title: test_style_opml
@@ -260,7 +241,6 @@ display:
     id: page_1
     display_title: Page
     position: 1
-    provider: views
     display_options:
       path: test-opml-style
   feed_1:
@@ -268,7 +248,6 @@ display:
     id: feed_1
     display_title: Feed
     position: 2
-    provider: views
     display_options:
       pager:
         type: some
@@ -276,7 +255,6 @@ display:
         type: opml
         options:
           grouping: []
-        provider: views
       row:
         type: opml_fields
         options:
@@ -288,7 +266,6 @@ display:
           language_field: ""
           xml_url_field: url
           url_field: ""
-        provider: views
       path: test-feed-opml-style
       displays: {  }
 label: test_style_opml
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_table.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_table.yml
index 7ea2f9f..de0a8ae 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_table.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_table.yml
@@ -17,21 +17,18 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
         id:
           field: id
           id: id
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
         name:
           field: name
           id: name
           relationship: none
           table: views_test_data
           plugin_id: string
-          provider: views_test_data
       pager:
         options:
           offset: '0'
@@ -45,7 +42,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
       style:
         type: table
         options:
@@ -100,7 +96,6 @@ display:
           content: 'custom text'
           tokenize: '0'
           plugin_id: text_custom
-          provider: views
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_tag_cache.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_tag_cache.yml
index c1df594..e8abc2a 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_tag_cache.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_tag_cache.yml
@@ -29,7 +29,6 @@ display:
           id: nid
           table: node
           plugin_id: numeric
-          provider: views
         title:
           id: title
           table: node_field_data
@@ -46,7 +45,6 @@ display:
           hide_alter_empty: true
           link_to_node: true
           plugin_id: node
-          provider: node
       filters:
         type:
           id: type
@@ -86,7 +84,6 @@ display:
             default_group_multiple: {  }
             group_items: {  }
           plugin_id: bundle
-          provider: views
       group_by: '1'
       pager:
         type: some
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_tokens.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_tokens.yml
index a9c55df..79c2bf0 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_tokens.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_tokens.yml
@@ -20,21 +20,18 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
         id:
           field: id
           id: id
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
         name:
           field: name
           id: name
           relationship: none
           table: views_test_data
           plugin_id: string
-          provider: views_test_data
       pager:
         type: full
         options:
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view.yml
index 164abad..bfcc681 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view.yml
@@ -19,21 +19,18 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
         id:
           field: id
           id: id
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
         name:
           field: name
           id: name
           relationship: none
           table: views_test_data
           plugin_id: string
-          provider: views_test_data
       pager:
         options:
           offset: '0'
@@ -47,7 +44,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_argument_validate_numeric.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_argument_validate_numeric.yml
index 61379cd..e5a934a 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_argument_validate_numeric.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_argument_validate_numeric.yml
@@ -18,7 +18,6 @@ display:
           validate:
             type: numeric
           plugin_id: 'null'
-          provider: views
       cache:
         type: none
       exposed_form:
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_argument_validate_php.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_argument_validate_php.yml
index 871206d..315be0d 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_argument_validate_php.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_argument_validate_php.yml
@@ -18,7 +18,6 @@ display:
           validate:
             type: php
           plugin_id: 'null'
-          provider: views
       cache:
         type: none
       exposed_form:
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_broken.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_broken.yml
index b51f6b3..08ade5f 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_broken.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_broken.yml
@@ -17,7 +17,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views
       filters:
         id_broken:
           field: id_broken
@@ -25,7 +24,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views
       arguments:
         id_broken:
           field: id_broken
@@ -33,7 +31,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views
       sorts:
         id_broken:
           field: id_broken
@@ -42,7 +39,6 @@ display:
           table: views_test_data
           plugin_id: numeric
           order: ASC
-          provider: views
       relationships:
         id_broken:
           field: id_broken
@@ -50,7 +46,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views
       header:
         id_broken:
           field: id_broken
@@ -58,7 +53,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views
       footer:
         id_broken:
           field: id_broken
@@ -66,7 +60,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views
       empty:
         id_broken:
           field: id_broken
@@ -74,7 +67,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views
       pager:
         options:
           offset: '0'
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_display_template.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_display_template.yml
index eb50d32..3c3d448 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_display_template.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_display_template.yml
@@ -30,7 +30,6 @@ display:
           label: ''
           exclude: '0'
           alter: {  }
-          provider: views_test_config
       filters: {  }
       sorts: {  }
       header: {  }
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_empty.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_empty.yml
index 75cbfe6..90f8bf3 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_empty.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_empty.yml
@@ -17,7 +17,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
       pager:
         options:
           offset: '0'
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_handler_weight.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_handler_weight.yml
index 089e80b..c95c54e 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_handler_weight.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_handler_weight.yml
@@ -17,21 +17,18 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
         age:
           field: age
           id: age
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
         name:
           field: name
           id: name
           relationship: none
           table: views_test_data
           plugin_id: string
-          provider: views_test_data
       pager:
         options:
           offset: '0'
@@ -45,7 +42,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
         age:
           field: age
           id: standard
@@ -53,20 +49,17 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
       filters:
         name:
           field: name
           id: string
           table: views_test_data
           plugin_id: string
-          provider: views_test_data
         age:
           field: age
           id: numeric
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_pager_full_zero_items_per_page.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_pager_full_zero_items_per_page.yml
index baa376a..c8f8de1 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_pager_full_zero_items_per_page.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_pager_full_zero_items_per_page.yml
@@ -28,7 +28,6 @@ display:
           link_to_node: '0'
           table: node_field_data
           plugin_id: node
-          provider: node
       pager:
         options:
           id: '0'
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_render.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_render.yml
index 2631533..4a22e1d 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_render.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_render.yml
@@ -17,21 +17,18 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
         id:
           field: id
           id: id
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
         name:
           field: name
           id: name
           relationship: none
           table: views_test_data
           plugin_id: string
-          provider: views_test_data
       pager:
         options:
           offset: '0'
@@ -45,7 +42,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: standard
-          provider: views_test_data
       style:
         type: table
     display_plugin: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_storage.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_storage.yml
index 7cf6c19..edc34fa 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_storage.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_view_storage.yml
@@ -18,7 +18,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: numeric
-          provider: views_test_data
       sorts:
         id:
           field: id
@@ -27,7 +26,6 @@ display:
           relationship: none
           table: views_test_data
           plugin_id: standard
-          provider: views_test_data
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_views_groupby_save.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_views_groupby_save.yml
index 9104e91..942b3fd 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_views_groupby_save.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_views_groupby_save.yml
@@ -23,7 +23,6 @@ display:
           table: views_test_data
           id: id
           plugin_id: id
-          provider: views_test_data
     display_plugin: default
     display_title: Master
     id: default
diff --git a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/access/StaticTest.php b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/access/StaticTest.php
index e880b48..0f95a09 100644
--- a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/access/StaticTest.php
+++ b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/access/StaticTest.php
@@ -42,4 +42,13 @@ public function alterRouteDefinition(Route $route) {
     }
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function calculateDependencies() {
+    return [
+      'test_dependency' => ['access'],
+    ];
+  }
+
 }
diff --git a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/argument_default/ArgumentDefaultTest.php b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/argument_default/ArgumentDefaultTest.php
index ece75e0..91f2a39 100644
--- a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/argument_default/ArgumentDefaultTest.php
+++ b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/argument_default/ArgumentDefaultTest.php
@@ -36,4 +36,13 @@ public function getArgument() {
     return $this->options['value'];
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function calculateDependencies() {
+    return [
+      'test_dependency' => ['argument_default'],
+    ];
+  }
+
 }
diff --git a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/display/DisplayTest.php b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/display/DisplayTest.php
index 0fd5c1a..c466fa9 100644
--- a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/display/DisplayTest.php
+++ b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/display/DisplayTest.php
@@ -140,4 +140,13 @@ public function preview() {
     return $this->execute();
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function calculateDependencies() {
+    return parent::calculateDependencies() + [
+      'test_dependency' => ['display'],
+    ];
+  }
+
 }
diff --git a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/query/QueryTest.php b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/query/QueryTest.php
index 546a635..f81c500 100644
--- a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/query/QueryTest.php
+++ b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/query/QueryTest.php
@@ -146,5 +146,13 @@ public function match($element, $condition) {
     return FALSE;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function calculateDependencies() {
+    return parent::calculateDependencies() + [
+      'test_dependency' => ['query'],
+    ];
+  }
 
 }
diff --git a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/row/RowTest.php b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/row/RowTest.php
index 1a7dbdc..f4489e1 100644
--- a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/row/RowTest.php
+++ b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/row/RowTest.php
@@ -82,4 +82,13 @@ public function render($row) {
     return $this->getOutput();
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function calculateDependencies() {
+    return [
+      'test_dependency' => ['row'],
+    ];
+  }
+
 }
diff --git a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/style/StyleTest.php b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/style/StyleTest.php
index 3cf8779..1f891cc 100644
--- a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/style/StyleTest.php
+++ b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/style/StyleTest.php
@@ -111,4 +111,13 @@ public function render() {
     return $output;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function calculateDependencies() {
+    return [
+      'test_dependency' => ['style'],
+    ];
+  }
+
 }
diff --git a/core/modules/views/tests/modules/views_test_data/views_test_data.views.inc b/core/modules/views/tests/modules/views_test_data/views_test_data.views.inc
index 4fe1fe4..ceaa8e9 100644
--- a/core/modules/views/tests/modules/views_test_data/views_test_data.views.inc
+++ b/core/modules/views/tests/modules/views_test_data/views_test_data.views.inc
@@ -23,7 +23,7 @@ function views_test_data_views_data() {
   $count++;
   $state->set('views_test_data_views_data_count', $count);
 
-  return $state->get('views_test_data_views_data');
+  return $state->get('views_test_data_views_data', []);
 }
 
 /**
diff --git a/core/modules/views/tests/src/Unit/Entity/ViewTest.php b/core/modules/views/tests/src/Unit/Entity/ViewTest.php
deleted file mode 100644
index 8af4e6d..0000000
--- a/core/modules/views/tests/src/Unit/Entity/ViewTest.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-
-/**
- * @file
- * Contains \Drupal\Tests\views\Unit\Entity\ViewTest.
- */
-
-namespace Drupal\Tests\views\Unit\Entity {
-
-use Drupal\Core\DependencyInjection\ContainerBuilder;
-use Drupal\Core\Entity\EntityType;
-use Drupal\Tests\UnitTestCase;
-use Drupal\views\Entity\View;
-
-/**
- * @coversDefaultClass \Drupal\views\Entity\View
- * @group views
- */
-class ViewTest extends UnitTestCase {
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-
-    // Setup the entity manager.
-    $entity_definition = new EntityType(array('id' => 'view'));
-    $entity_manager = $this->getMock('Drupal\Core\Entity\EntityManagerInterface');
-    $entity_manager->expects($this->any())
-      ->method('getDefinition')
-      ->will($this->returnValue($entity_definition));
-    $container_builder = new ContainerBuilder();
-    $container_builder->set('entity.manager', $entity_manager);
-
-    // Setup the string translation.
-    $string_translation = $this->getStringTranslationStub();
-    $container_builder->set('string_translation', $string_translation);
-    \Drupal::setContainer($container_builder);
-  }
-
-  /**
-   * Tests calculating dependencies.
-   *
-   * @covers ::calculateDependencies
-   * @dataProvider calculateDependenciesProvider
-   */
-  public function testCalculateDependencies($values, $deps) {
-    $view = new TestView($values, 'view');
-    $this->assertEquals(array('module' => $deps), $view->calculateDependencies());
-  }
-
-  public function calculateDependenciesProvider(){
-    $handler['display']['default']['provider'] = 'block';
-    $handler['display']['default']['display_options']['fields']['example']['dependencies'] = array();
-    $handler['display']['default']['display_options']['fields']['example2']['dependencies']['module'] = array('views', 'field');
-    $handler['display']['default']['display_options']['fields']['example3']['dependencies']['module'] = array('views', 'image');
-
-    $plugin['display']['default']['display_options']['access']['options']['dependencies'] = array();
-    $plugin['display']['default']['display_options']['row']['options']['dependencies']['module'] = array('views', 'field');
-    $plugin['display']['default']['display_options']['style']['options']['dependencies']['module'] = array('views', 'image');
-
-    return array(
-      array(array(), array('node', 'views')),
-      array($handler, array('block', 'field', 'image', 'node', 'views')),
-      array($plugin, array('field', 'image', 'node', 'views')),
-    );
-  }
-}
-
-class TestView extends View {
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function drupalGetSchema($table = NULL, $rebuild = FALSE) {
-    $result = array();
-    if ($table == 'node') {
-      $result['module'] = 'node';
-    }
-    return $result;
-  }
-
-}
-
-}
diff --git a/core/modules/views/tests/src/Unit/EntityViewsDataTest.php b/core/modules/views/tests/src/Unit/EntityViewsDataTest.php
index 3199a51..476a199 100644
--- a/core/modules/views/tests/src/Unit/EntityViewsDataTest.php
+++ b/core/modules/views/tests/src/Unit/EntityViewsDataTest.php
@@ -35,7 +35,7 @@ class EntityViewsDataTest extends UnitTestCase {
   /**
    * Entity info to use in this test.
    *
-   * @var \Drupal\Core\Entity\EntityTypeInterface
+   * @var \Drupal\Core\Entity\EntityTypeInterface|\Drupal\views\Tests\TestEntityType
    */
   protected $baseEntityType;
 
@@ -88,6 +88,7 @@ protected function setUp() {
       'id' => 'entity_test',
       'label' => 'Entity test',
       'entity_keys' => ['id' => 'id'],
+      'provider' => 'entity_test',
     ]);
 
     $this->translationManager = $this->getStringTranslationStub();
@@ -160,6 +161,7 @@ public function testBaseTables() {
 
     $this->assertEquals('entity_test', $data['entity_test']['table']['entity type']);
     $this->assertEquals('Entity test', $data['entity_test']['table']['group']);
+    $this->assertEquals('entity_test', $data['entity_test']['table']['provider']);
 
     $this->assertEquals('id', $data['entity_test']['table']['base']['field']);
     $this->assertEquals('Entity test', $data['entity_test']['table']['base']['title']);
@@ -188,6 +190,7 @@ public function testDataTable() {
 
     $this->assertEquals('entity_test_mul', $data['entity_test_mul_property_data']['table']['entity type']);
     $this->assertEquals('Entity test', $data['entity_test_mul_property_data']['table']['group']);
+    $this->assertEquals('entity_test', $data['entity_test']['table']['provider']);
     $this->assertEquals(['field' => 'label', 'table' => 'entity_test_mul_property_data'], $data['entity_test']['table']['base']['defaults']);
 
     // Ensure the join information is set up properly.
@@ -214,6 +217,7 @@ public function testRevisionTable() {
     $this->assertEquals('entity_test_mulrev', $data['entity_test_mulrev_revision']['table']['entity type']);
     $this->assertEquals('entity_test_mulrev', $data['entity_test_mulrev_property_revision']['table']['entity type']);
     $this->assertEquals('Entity test revision', $data['entity_test_mulrev_revision']['table']['group']);
+    $this->assertEquals('entity_test', $data['entity_test']['table']['provider']);
 
     // Ensure the join information is set up properly.
     // Tests the join definition between the base and the revision table.
diff --git a/core/modules/views/tests/src/Unit/ViewsDataTest.php b/core/modules/views/tests/src/Unit/ViewsDataTest.php
index 43528c3..0476ffd 100644
--- a/core/modules/views/tests/src/Unit/ViewsDataTest.php
+++ b/core/modules/views/tests/src/Unit/ViewsDataTest.php
@@ -109,20 +109,51 @@ protected function viewsData() {
   }
 
   /**
-   * Tests the fetchBaseTables() method.
+   * Returns the views data definition with the provider key.
+   *
+   * @return array
+   *
+   * @see static::viewsData()
    */
-  public function testFetchBaseTables() {
-    $views_data = $this->viewsData();
+  protected function viewsDataWithProvider() {
+    $views_data = static::viewsData();
+    foreach (array_keys($views_data) as $table) {
+      $views_data[$table]['table']['provider'] = 'views_test_data';
+    }
+    return $views_data;
+  }
 
-    $this->moduleHandler->expects($this->once())
-      ->method('invokeAll')
+  /**
+   * Mocks the basic module handler used for the test.
+   *
+   * @return \Drupal\Core\Extension\ModuleHandlerInterface|\PHPUnit_Framework_MockObject_MockObject
+   */
+  protected function setupMockedModuleHandler() {
+    $views_data = $this->viewsData();
+    $this->moduleHandler->expects($this->at(0))
+      ->method('getImplementations')
       ->with('views_data')
-      ->will($this->returnValue($views_data));
+      ->willReturn(array('views_test_data'));
+    $this->moduleHandler->expects($this->at(1))
+      ->method('invoke')
+      ->with('views_test_data', 'views_data')
+      ->willReturn($views_data);
+  }
 
+  /**
+   * Tests the fetchBaseTables() method.
+   */
+  public function testFetchBaseTables() {
+    $this->setupMockedModuleHandler();
     $data = $this->viewsData->get();
 
     $base_tables = $this->viewsData->fetchBaseTables();
 
+    // Ensure that 'provider' is set for each base table.
+    foreach (array_keys($base_tables) as $base_table) {
+      $this->assertEquals('views_test_data', $data[$base_table]['table']['provider']);
+    }
+
     // Test the number of tables returned and their order.
     $this->assertCount(6, $base_tables, 'The correct amount of base tables were returned.');
     $base_tables_keys = array_keys($base_tables);
@@ -151,24 +182,19 @@ public function testFetchBaseTables() {
    * Tests fetching all the views data without a static cache.
    */
   public function testGetOnFirstCall() {
-    $views_data = $this->viewsData();
-
     // Ensure that the hooks are just invoked once.
-    $this->moduleHandler->expects($this->once())
-      ->method('invokeAll')
-      ->with('views_data')
-      ->will($this->returnValue($views_data));
+    $this->setupMockedModuleHandler();
 
-    $this->moduleHandler->expects($this->once())
+    $this->moduleHandler->expects($this->at(2))
       ->method('alter')
-      ->with('views_data', $views_data);
+      ->with('views_data', $this->viewsDataWithProvider());
 
     $this->cacheBackend->expects($this->once())
       ->method('get')
       ->with("views_data:en")
       ->will($this->returnValue(FALSE));
 
-    $expected_views_data = $this->viewsData();
+    $expected_views_data = $this->viewsDataWithProvider();
     $views_data = $this->viewsData->get();
     $this->assertSame($expected_views_data, $views_data);
   }
@@ -177,21 +203,37 @@ public function testGetOnFirstCall() {
    * Tests the cache of the full and single table data.
    */
   public function testFullAndTableGetCache() {
-    $expected_views_data = $this->viewsData();
+    $expected_views_data = $this->viewsDataWithProvider();
     $table_name = 'views_test_data';
     $table_name_2 = 'views_test_data_2';
     $random_table_name = $this->randomMachineName();
 
     // Views data should be invoked twice due to the clear call.
-    $this->moduleHandler->expects($this->exactly(2))
-      ->method('invokeAll')
+    $this->moduleHandler->expects($this->at(0))
+      ->method('getImplementations')
       ->with('views_data')
-      ->will($this->returnValue($expected_views_data));
+      ->willReturn(array('views_test_data'));
+    $this->moduleHandler->expects($this->at(1))
+      ->method('invoke')
+      ->with('views_test_data', 'views_data')
+      ->willReturn($this->viewsData());
+    $this->moduleHandler->expects($this->at(2))
+      ->method('alter')
+      ->with('views_data', $expected_views_data);
 
-    $this->moduleHandler->expects($this->exactly(2))
+    $this->moduleHandler->expects($this->at(3))
+      ->method('getImplementations')
+      ->with('views_data')
+      ->willReturn(array('views_test_data'));
+    $this->moduleHandler->expects($this->at(4))
+      ->method('invoke')
+      ->with('views_test_data', 'views_data')
+      ->willReturn($this->viewsData());
+    $this->moduleHandler->expects($this->at(5))
       ->method('alter')
       ->with('views_data', $expected_views_data);
 
+
     // The cache should only be called once (before the clear() call) as get
     // will get all table data in the first get().
     $this->cacheBackend->expects($this->at(0))
@@ -252,13 +294,10 @@ public function testFullAndTableGetCache() {
    * Tests the caching of the full views data.
    */
   public function testFullGetCache() {
-    $expected_views_data = $this->viewsData();
+    $expected_views_data = $this->viewsDataWithProvider();
 
     // Views data should be invoked once.
-    $this->moduleHandler->expects($this->once())
-      ->method('invokeAll')
-      ->with('views_data')
-      ->will($this->returnValue($expected_views_data));
+    $this->setupMockedModuleHandler();
 
     $this->moduleHandler->expects($this->once())
       ->method('alter')
@@ -281,17 +320,14 @@ public function testFullGetCache() {
    */
   public function testSingleTableGetCache() {
     $table_name = 'views_test_data';
-    $expected_views_data = $this->viewsData();
+    $expected_views_data = $this->viewsDataWithProvider();
 
     // Views data should be invoked once.
-    $this->moduleHandler->expects($this->once())
-      ->method('invokeAll')
-      ->with('views_data')
-      ->will($this->returnValue($expected_views_data));
+    $this->setupMockedModuleHandler();
 
     $this->moduleHandler->expects($this->once())
       ->method('alter')
-      ->with('views_data', $expected_views_data);
+      ->with('views_data', $this->viewsDataWithProvider());
 
     $this->cacheBackend->expects($this->at(0))
       ->method('get')
@@ -320,17 +356,13 @@ public function testSingleTableGetCache() {
    */
   public function testNonExistingTableGetCache() {
     $random_table_name = $this->randomMachineName();
-    $expected_views_data = $this->viewsData();
 
     // Views data should be invoked once.
-    $this->moduleHandler->expects($this->once())
-      ->method('invokeAll')
-      ->with('views_data')
-      ->will($this->returnValue($expected_views_data));
+    $this->setupMockedModuleHandler();
 
     $this->moduleHandler->expects($this->once())
       ->method('alter')
-      ->with('views_data', $expected_views_data);
+      ->with('views_data', $this->viewsDataWithProvider());
 
     $this->cacheBackend->expects($this->at(0))
       ->method('get')
@@ -354,12 +386,9 @@ public function testNonExistingTableGetCache() {
    * Tests the cache backend behavior with requesting the same table multiple
    */
   public function testCacheCallsWithSameTableMultipleTimes() {
-    $expected_views_data = $this->viewsData();
+    $expected_views_data = $this->viewsDataWithProvider();
 
-    $this->moduleHandler->expects($this->any())
-      ->method('invokeAll')
-      ->with('views_data')
-      ->will($this->returnValue($expected_views_data));
+    $this->setupMockedModuleHandler();
 
     $this->cacheBackend->expects($this->at(0))
       ->method('get')
@@ -392,9 +421,9 @@ public function testCacheCallsWithSameTableMultipleTimes() {
    *   - views_test_data
    */
   public function testCacheCallsWithSameTableMultipleTimesAndWarmCache() {
-    $expected_views_data = $this->viewsData();
+    $expected_views_data = $this->viewsDataWithProvider();
     $this->moduleHandler->expects($this->never())
-      ->method('invokeAll');
+      ->method('getImplementations');
 
     // Setup a warm cache backend for a single table.
     $this->cacheBackend->expects($this->once())
@@ -422,9 +451,9 @@ public function testCacheCallsWithSameTableMultipleTimesAndWarmCache() {
    *   - views_test_data_2
    */
   public function testCacheCallsWithWarmCacheAndDifferentTable() {
-    $expected_views_data = $this->viewsData();
+    $expected_views_data = $this->viewsDataWithProvider();
     $this->moduleHandler->expects($this->never())
-      ->method('invokeAll');
+      ->method('getImplementations');
 
     // Setup a warm cache backend for a single table.
     $this->cacheBackend->expects($this->at(0))
@@ -457,10 +486,10 @@ public function testCacheCallsWithWarmCacheAndDifferentTable() {
    *   - $non_existing_table
    */
   public function testCacheCallsWithWarmCacheAndInvalidTable() {
-    $expected_views_data = $this->viewsData();
+    $expected_views_data = $this->viewsDataWithProvider();
     $non_existing_table = $this->randomMachineName();
     $this->moduleHandler->expects($this->never())
-      ->method('invokeAll');
+      ->method('getImplementations');
 
     // Setup a warm cache backend for a single table.
     $this->cacheBackend->expects($this->at(0))
@@ -496,7 +525,7 @@ public function testCacheCallsWithWarmCacheAndInvalidTable() {
   public function testCacheCallsWithWarmCacheForInvalidTable() {
     $non_existing_table = $this->randomMachineName();
     $this->moduleHandler->expects($this->never())
-      ->method('invokeAll');
+      ->method('getImplementations');
 
     // Setup a warm cache backend for a single table.
     $this->cacheBackend->expects($this->once())
@@ -521,10 +550,8 @@ public function testCacheCallsWithWarmCacheForInvalidTable() {
    * Tests the cache calls for all views data without a warm cache.
    */
   public function testCacheCallsWithoutWarmCacheAndGetAllTables() {
-    $expected_views_data = $this->viewsData();
-    $this->moduleHandler->expects($this->once())
-      ->method('invokeAll')
-      ->will($this->returnValue($expected_views_data));
+    $expected_views_data = $this->viewsDataWithProvider();
+    $this->setupMockedModuleHandler();
 
     // Setup a warm cache backend for a single table.
     $this->cacheBackend->expects($this->once())
@@ -549,9 +576,9 @@ public function testCacheCallsWithoutWarmCacheAndGetAllTables() {
    *   - all tables
    */
   public function testCacheCallsWithWarmCacheAndGetAllTables() {
-    $expected_views_data = $this->viewsData();
+    $expected_views_data = $this->viewsDataWithProvider();
     $this->moduleHandler->expects($this->never())
-      ->method('invokeAll');
+      ->method('getImplementations');
 
     // Setup a warm cache backend for a single table.
     $this->cacheBackend->expects($this->once())
@@ -575,7 +602,7 @@ public function testCacheCallsWithWarmCacheAndGetAllTables() {
    * @covers ::get
    */
   public function testCacheCallsWithoutWarmCacheAndGetMultipleTables() {
-    $expected_views_data = $this->viewsData();
+    $expected_views_data = $this->viewsDataWithProvider();
     $table_name = 'views_test_data';
     $table_name_2 = 'views_test_data_2';
 
diff --git a/core/modules/views/views.api.php b/core/modules/views/views.api.php
index 35e99be..a537fe6 100644
--- a/core/modules/views/views.api.php
+++ b/core/modules/views/views.api.php
@@ -143,6 +143,12 @@ function hook_views_data() {
   // a field, filter, etc. you can also filter by the group.
   $data['example_table']['table']['group'] = t('Example table');
 
+  // Within 'table', the value of 'provider' is the module that provides schema
+  // or the entity type that causes the table to exist. Setting this ensures
+  // that views have the correct dependencies. This is automatically set to the
+  // module that implements hook_views_data().
+  $data['example_table']['table']['provider'] = 'example_module';
+
   // Some tables are "base" tables, meaning that they can be the base tables
   // for views. Non-base tables can only be brought in via relationships in
   // views based on other tables. To define a table to be a base table, add
diff --git a/core/modules/views_ui/src/Form/Ajax/ConfigHandler.php b/core/modules/views_ui/src/Form/Ajax/ConfigHandler.php
index 90de6d9..bdad87b 100644
--- a/core/modules/views_ui/src/Form/Ajax/ConfigHandler.php
+++ b/core/modules/views_ui/src/Form/Ajax/ConfigHandler.php
@@ -242,14 +242,6 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
     // extra stuff on the form is not sent through.
     $handler->unpackOptions($handler->options, $options, NULL, FALSE);
 
-    // Add any dependencies as the handler is saved. Put it here so
-    // it does not need to be declared in defineOptions().
-    if ($dependencies = $handler->getDependencies()) {
-      $handler->options['dependencies'] = $dependencies;
-    }
-    // Add the module providing the handler as a dependency as well.
-    $handler->options['dependencies']['module'][] = $handler->definition['provider'];
-
     // Store the item back on the view
     $executable->setHandler($display_id, $type, $id, $handler->options);
 
diff --git a/core/modules/views_ui/src/Tests/DisplayCRUDTest.php b/core/modules/views_ui/src/Tests/DisplayCRUDTest.php
index fecf451..4dc31f0 100644
--- a/core/modules/views_ui/src/Tests/DisplayCRUDTest.php
+++ b/core/modules/views_ui/src/Tests/DisplayCRUDTest.php
@@ -52,11 +52,6 @@ public function testAddDisplay() {
 
     $this->drupalPostForm("admin/structure/views/nojs/display/{$view['id']}/page_1/path", array('path' => 'test/path'), t('Apply'));
     $this->drupalPostForm(NULL, array(), t('Save'));
-
-    // Test that the new view display contains the correct provider.
-    $view = Views::getView($view['id']);
-    $displays = $view->storage->get('display');
-    $this->assertIdentical($displays['page_1']['provider'], 'views', 'The expected provider was added to the new display.');
   }
 
   /**
diff --git a/core/modules/views_ui/src/Tests/HandlerTest.php b/core/modules/views_ui/src/Tests/HandlerTest.php
index 034106d..bf1ac2a 100644
--- a/core/modules/views_ui/src/Tests/HandlerTest.php
+++ b/core/modules/views_ui/src/Tests/HandlerTest.php
@@ -150,7 +150,7 @@ public function testBrokenHandlers() {
       $result = $this->xpath('//a[contains(@href, :href)]', array(':href' => $href));
       $this->assertEqual(count($result), 1, String::format('Handler (%type) edit link found.', array('%type' => $type)));
 
-      $text = t('Broken/missing handler (Module: @module) …', array('@module' => 'views'));
+      $text = t('Broken/missing handler');
 
       $this->assertIdentical((string) $result[0], $text, 'Ensure the broken handler text was found.');
 
diff --git a/core/modules/views_ui/src/Tests/ViewEditTest.php b/core/modules/views_ui/src/Tests/ViewEditTest.php
index f7d591a..184d339 100644
--- a/core/modules/views_ui/src/Tests/ViewEditTest.php
+++ b/core/modules/views_ui/src/Tests/ViewEditTest.php
@@ -112,49 +112,6 @@ public function testEditFormOtherOptions() {
   }
 
   /**
-   * Tests that plugins selected from the view edit form contain providers.
-   */
-  public function testPluginProviders() {
-    $plugin_data = array(
-      'access' => array(
-        'value' => 'test_static',
-        'provider' => 'views_test_data',
-      ),
-      'cache' => array(
-        'value' => 'time',
-        'provider' => 'views',
-      ),
-      'exposed_form' => array(
-        'value' => 'input_required',
-        'provider' => 'views',
-      ),
-      'pager' => array(
-        'value' => 'full',
-        'provider' => 'views',
-      ),
-      'row' => array(
-        'value' => 'test_row',
-        'provider' => 'views_test_data',
-      ),
-      'style' => array(
-        'value' => 'test_style',
-        'provider' => 'views_test_data',
-      ),
-    );
-
-    foreach ($plugin_data as $plugin_type => $plugin_options) {
-      $element_name = $plugin_type . '[type]';
-      // Save the plugin form, to change the plugin used.
-      $this->drupalPostForm("admin/structure/views/nojs/display/test_view/default/$plugin_type", array($element_name => $plugin_options['value']), t('Apply'));
-      $this->drupalPostForm('admin/structure/views/view/test_view', array(), t('Save'));
-      // Check the plugin provider.
-      $view = Views::getView('test_view');
-      $displays = $view->storage->get('display');
-      $this->assertIdentical($displays['default']['display_options'][$plugin_type]['provider'], $plugin_options['provider'], String::format('Expected provider found for @plugin.', array('@plugin' => $plugin_type)));
-    }
-  }
-
-  /**
    * Tests Representative Node for a Taxonomy Term.
    */
   public function testRelationRepresentativeNode() {
diff --git a/core/modules/views_ui/tests/modules/views_ui_test/config/install/views.view.sa_contrib_2013_035.yml b/core/modules/views_ui/tests/modules/views_ui_test/config/install/views.view.sa_contrib_2013_035.yml
index 5972d15..2936331 100644
--- a/core/modules/views_ui/tests/modules/views_ui_test/config/install/views.view.sa_contrib_2013_035.yml
+++ b/core/modules/views_ui/tests/modules/views_ui_test/config/install/views.view.sa_contrib_2013_035.yml
@@ -18,19 +18,14 @@ display:
     id: default
     display_title: Master
     position: 0
-    provider: views
     display_options:
       access:
         type: perm
         options:
           perm: 'access content'
-        provider: user
-        dependencies: {  }
       cache:
         type: none
         options: {  }
-        provider: views
-        dependencies: {  }
       query:
         type: views_query
         options:
@@ -39,8 +34,6 @@ display:
           replica: false
           query_comment: false
           query_tags: {  }
-        provider: views
-        dependencies: {  }
       exposed_form:
         type: basic
         options:
@@ -51,13 +44,10 @@ display:
           expose_sort_order: true
           sort_asc_label: Asc
           sort_desc_label: Desc
-        provider: views
-        dependencies: {  }
       pager:
         type: none
         options:
           offset: 0
-        provider: views
       style:
         type: default
         options:
@@ -65,8 +55,6 @@ display:
           row_class: ''
           default_row_class: true
           uses_fields: false
-        provider: views
-        dependencies: {  }
       row:
         type: fields
         options:
@@ -74,8 +62,6 @@ display:
           separator: ''
           hide_empty: false
           default_field_elements: true
-        provider: views
-        dependencies: {  }
       fields:
         title:
           id: title
@@ -84,11 +70,6 @@ display:
           relationship: none
           group_type: group
           admin_label: '<marquee>test</marquee>'
-          dependencies:
-            module:
-              - node
-              - node
-              - node
           label: ''
           exclude: false
           alter:
@@ -132,7 +113,6 @@ display:
           hide_alter_empty: true
           link_to_node: true
           plugin_id: node
-          provider: node
         title_1:
           id: title_1
           table: node_field_data
@@ -140,9 +120,6 @@ display:
           relationship: none
           group_type: group
           admin_label: '<script>alert("XSS")</script>'
-          dependencies:
-            module:
-              - node
           label: ''
           exclude: false
           alter:
@@ -186,7 +163,6 @@ display:
           hide_alter_empty: true
           link_to_node: true
           plugin_id: node
-          provider: node
       filters: {  }
       sorts: {  }
       header:
@@ -195,7 +171,6 @@ display:
           table: views
           field: area
           plugin_id: text
-          provider: views
       footer: {  }
       empty: {  }
       relationships: {  }
@@ -208,7 +183,6 @@ display:
     id: page_1
     display_title: Page
     position: 2
-    provider: views
     display_options:
       field_langcode: '***LANGUAGE_language_content***'
       field_langcode_add_to_query: null
