commit 7f1fcd8d5cd3db9f8301d28ad0bd35fce9325392
Author: Bart Feenstra <bart@mynameisbart.com>
Date:   Sat Mar 1 13:35:37 2014 +0100

    foo

diff --git a/core/lib/Drupal/Core/Extension/ExtensionHandlerInterface.php b/core/lib/Drupal/Core/Extension/ExtensionHandlerInterface.php
new file mode 100644
index 0000000..21905e5
--- /dev/null
+++ b/core/lib/Drupal/Core/Extension/ExtensionHandlerInterface.php
@@ -0,0 +1,43 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Core\Extension\ExtensionHandlerInterface.
+ */
+
+namespace Drupal\Core\Extension;
+
+/**
+ * Defines an extension handler.
+ */
+interface ExtensionHandlerInterface {
+
+  /**
+   * Gets the path to the directory of an extension.
+   *
+   * @param string $name
+   *   The name of the extension.
+   *
+   * @return string
+   *   The path to the extension.
+   *
+   * @throws \InvalidArgumentException
+   *   Thrown if the provided extension does not exist.
+   */
+  public function getPath($name);
+
+  /**
+   * Gets the path to the primary file of an extension.
+   *
+   * @param string $name
+   *   The name of the extension.
+   *
+   * @return string
+   *   The path to the primary file of the extension.
+   *
+   * @throws \InvalidArgumentException
+   *   Thrown if the provided extension does not exist.
+   */
+  public function getPrimaryFilePath($name);
+
+}
diff --git a/core/lib/Drupal/Core/Extension/ModuleHandlerInterface.php b/core/lib/Drupal/Core/Extension/ModuleHandlerInterface.php
index 3012627..7254b90 100644
--- a/core/lib/Drupal/Core/Extension/ModuleHandlerInterface.php
+++ b/core/lib/Drupal/Core/Extension/ModuleHandlerInterface.php
@@ -14,7 +14,7 @@
  * responsible for loading module files and maintaining information about module
  * dependencies and hook implementations.
  */
-interface ModuleHandlerInterface {
+interface ModuleHandlerInterface extends ExtensionHandlerInterface {
 
   /**
    * Includes a module's .module file.
diff --git a/core/lib/Drupal/Core/Extension/ThemeHandlerInterface.php b/core/lib/Drupal/Core/Extension/ThemeHandlerInterface.php
index 2ba52cd..00be65a 100644
--- a/core/lib/Drupal/Core/Extension/ThemeHandlerInterface.php
+++ b/core/lib/Drupal/Core/Extension/ThemeHandlerInterface.php
@@ -10,7 +10,7 @@
 /**
  * Manages the list of available themes as well as enable/disable them.
  */
-interface ThemeHandlerInterface {
+interface ThemeHandlerInterface extends ExtensionHandlerInterface {
 
   /**
    * Enables a given list of themes.
