diff --git a/core/modules/views/src/Plugin/ViewsHandlerManager.php b/core/modules/views/src/Plugin/ViewsHandlerManager.php
index e7e1c89..08671b4 100644
--- a/core/modules/views/src/Plugin/ViewsHandlerManager.php
+++ b/core/modules/views/src/Plugin/ViewsHandlerManager.php
@@ -59,6 +59,7 @@ public function __construct($handler_type, \Traversable $namespaces, ViewsData $
     parent::__construct("Plugin/views/$handler_type", $namespaces, $module_handler, $plugin_interface, $plugin_definition_annotation_name);
 
     $this->setCacheBackend($cache_backend, "views:$handler_type", array('extension' => array(TRUE, 'views')));
+    $this->alterInfo('views_handlers_' . $handler_type);
 
     $this->viewsData = $views_data;
     $this->handlerType = $handler_type;
diff --git a/core/modules/views/tests/src/Unit/ViewsHandlerManagerTest.php b/core/modules/views/tests/src/Unit/ViewsHandlerManagerTest.php
new file mode 100644
index 0000000..63c6d4d
--- /dev/null
+++ b/core/modules/views/tests/src/Unit/ViewsHandlerManagerTest.php
@@ -0,0 +1,58 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Tests\views\Unit\ViewsHandlerManagerTest.
+ */
+
+namespace Drupal\Tests\views\Unit;
+
+use Drupal\Tests\UnitTestCase;
+use Drupal\views\Plugin\ViewsHandlerManager;
+
+/**
+ * Tests the ViewsHandlerManager class.
+ *
+ * @group views
+ *
+ * @coversDefaultClass \Drupal\views\Plugin\ViewsHandlerManager
+ */
+class ViewsHandlerManagerTest extends UnitTestCase {
+
+  /**
+   * @var \Drupal\views\Plugin\ViewsHandlerManager
+   */
+  protected $handlerManager;
+
+  /**
+   * @var \Drupal\Core\Extension\ModuleHandlerInterface|\PHPUnit_Framework_MockObject_MockObject
+   */
+  protected $moduleHandler;
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setUp() {
+    $views_data = $this->getMockBuilder('Drupal\views\ViewsData')
+      ->disableOriginalConstructor()
+      ->getMock();
+    $cache_backend = $this->getMock('Drupal\Core\Cache\CacheBackendInterface');
+    $this->moduleHandler = $this->getMock('Drupal\Core\Extension\ModuleHandlerInterface');
+    $this->handlerManager = new ViewsHandlerManager('test', new \ArrayObject(array()), $views_data, $cache_backend, $this->moduleHandler);
+  }
+
+  /**
+   * Tests that hook_views_handlers_TYPE_alter() is invoked.
+   *
+   * @covers ::__construct
+   * @covers ::getDefinitions
+   */
+  public function testAlterHookInvokation() {
+    $this->moduleHandler->expects($this->once())
+      ->method('alter')
+      ->with('views_handlers_test', array());
+
+    $this->handlerManager->getDefinitions();
+  }
+
+}
diff --git a/core/modules/views/views.api.php b/core/modules/views/views.api.php
index 5534df6..d01173a 100644
--- a/core/modules/views/views.api.php
+++ b/core/modules/views/views.api.php
@@ -1081,5 +1081,101 @@ function hook_views_plugins_wizard_alter(array &$plugins) {
 }
 
 /**
+ * Modify the list of available views area handlers.
+ *
+ * This hook may be used to modify handler properties after they have been
+ * specified by other modules.
+ *
+ * @param array $handlers
+ *   An array of all the existing handler definitions, passed by reference.
+ *
+ * @see \Drupal\views\Plugin\ViewsHandlerManager
+ */
+function hook_views_handlers_area_alter(array &$handlers) {
+  // Change the 'title' handler class.
+  $handlers['title']['class'] = 'Drupal\\example\\ExampleClass';
+}
+
+/**
+ * Modify the list of available views argument handlers.
+ *
+ * This hook may be used to modify handler properties after they have been
+ * specified by other modules.
+ *
+ * @param array $handlers
+ *   An array of all the existing handler definitions, passed by reference.
+ *
+ * @see \Drupal\views\Plugin\ViewsHandlerManager
+ */
+function hook_views_handlers_argument_alter(array &$handlers) {
+  // Change the 'title' handler class.
+  $handlers['title']['class'] = 'Drupal\\example\\ExampleClass';
+}
+
+/**
+ * Modify the list of available views field handlers.
+ *
+ * This hook may be used to modify handler properties after they have been
+ * specified by other modules.
+ *
+ * @param array $handlers
+ *   An array of all the existing handler definitions, passed by reference.
+ *
+ * @see \Drupal\views\Plugin\ViewsHandlerManager
+ */
+function hook_views_handlers_field_alter(array &$handlers) {
+  // Change the 'title' handler class.
+  $handlers['title']['class'] = 'Drupal\\example\\ExampleClass';
+}
+
+/**
+ * Modify the list of available views filter handlers.
+ *
+ * This hook may be used to modify handler properties after they have been
+ * specified by other modules.
+ *
+ * @param array $handlers
+ *   An array of all the existing handler definitions, passed by reference.
+ *
+ * @see \Drupal\views\Plugin\ViewsHandlerManager
+ */
+function hook_views_handlers_filter_alter(array &$handlers) {
+  // Change the 'title' handler class.
+  $handlers['title']['class'] = 'Drupal\\example\\ExampleClass';
+}
+
+/**
+ * Modify the list of available views relationship handlers.
+ *
+ * This hook may be used to modify handler properties after they have been
+ * specified by other modules.
+ *
+ * @param array $handlers
+ *   An array of all the existing handler definitions, passed by reference.
+ *
+ * @see \Drupal\views\Plugin\ViewsHandlerManager
+ */
+function hook_views_handlers_relationship_alter(array &$handlers) {
+  // Change the 'title' handler class.
+  $handlers['title']['class'] = 'Drupal\\example\\ExampleClass';
+}
+
+/**
+ * Modify the list of available views sort handlers.
+ *
+ * This hook may be used to modify handler properties after they have been
+ * specified by other modules.
+ *
+ * @param array $handlers
+ *   An array of all the existing handler definitions, passed by reference.
+ *
+ * @see \Drupal\views\Plugin\ViewsHandlerManager
+ */
+function hook_views_handlers_sort_alter(array &$handlers) {
+  // Change the 'title' handler class.
+  $handlers['title']['class'] = 'Drupal\\example\\ExampleClass';
+}
+
+/**
  * @}
  */
