diff --git a/app/code/Magento/Developer/etc/di.xml b/app/code/Magento/Developer/etc/di.xml
index 12c274970986224b6eae4d77aab342151c9d5dcc..d923b3d55553d83da4bd4d54defdd00bf2baf8d6 100644
--- a/app/code/Magento/Developer/etc/di.xml
+++ b/app/code/Magento/Developer/etc/di.xml
@@ -6,7 +6,7 @@
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
-    <preference for="Magento\Framework\View\Asset\PreProcessor\ChainFactory" type="Magento\Developer\Model\View\Asset\PreProcessor\DeveloperChainFactory"/>
+    <preference for="Magento\Framework\View\Asset\PreProcessor\ChainFactoryInterface" type="Magento\Developer\Model\View\Asset\PreProcessor\DeveloperChainFactory"/>
     <type name="Magento\Framework\View\TemplateEngineFactory">
         <plugin name="debug_hints" type="Magento\Developer\Model\TemplateEngine\Plugin\DebugHints" sortOrder="10"/>
     </type>
diff --git a/dev/tools/Magento/Tools/Webdev/App/FileAssembler.php b/dev/tools/Magento/Tools/Webdev/App/FileAssembler.php
index daabe33c89d2ea84007e0ad5a880ce3d0d614285..fb8529dd7596966ce189816f5276a222fb7bd4fa 100644
--- a/dev/tools/Magento/Tools/Webdev/App/FileAssembler.php
+++ b/dev/tools/Magento/Tools/Webdev/App/FileAssembler.php
@@ -17,7 +17,7 @@ use Magento\Framework\View\Asset\Repository;
 use Magento\Framework\ObjectManagerInterface;
 use Magento\Framework\App\ObjectManager\ConfigLoader;
 use Magento\Framework\View\Asset\SourceFileGeneratorPool;
-use Magento\Framework\View\Asset\PreProcessor\ChainFactory;
+use Magento\Framework\View\Asset\PreProcessor\ChainFactoryInterface;
 
 /**
  * Class FileAssembler
@@ -73,7 +73,7 @@ class FileAssembler implements AppInterface
     private $logger;
 
     /**
-     * @var ChainFactory
+     * @var ChainFactoryInterface
      */
     private $chainFactory;
 
@@ -87,7 +87,7 @@ class FileAssembler implements AppInterface
      * @param Source $assetSource
      * @param \Magento\Framework\View\Asset\SourceFileGeneratorPool $sourceFileGeneratorPoll
      * @param \Magento\Tools\View\Deployer\Log $logger
-     * @param ChainFactory $chainFactory
+     * @param ChainFactoryInterface $chainFactory
      *
      * @SuppressWarnings(PHPMD.ExcessiveParameterList)
      */
@@ -101,7 +101,7 @@ class FileAssembler implements AppInterface
         Source $assetSource,
         SourceFileGeneratorPool $sourceFileGeneratorPoll,
         Log $logger,
-        ChainFactory $chainFactory
+        ChainFactoryInterface $chainFactory
     ) {
         $this->response = $response;
         $this->params = $params;
diff --git a/lib/internal/Magento/Framework/View/Asset/Source.php b/lib/internal/Magento/Framework/View/Asset/Source.php
index 8158572c82339ee62494f376b6752ee4f89358fd..eed8d15e584e34ca9637a3288b0047660f5da014 100644
--- a/lib/internal/Magento/Framework/View/Asset/Source.php
+++ b/lib/internal/Magento/Framework/View/Asset/Source.php
@@ -7,7 +7,7 @@
 namespace Magento\Framework\View\Asset;
 
 use Magento\Framework\App\Filesystem\DirectoryList;
-use Magento\Framework\View\Asset\PreProcessor\ChainFactory;
+use Magento\Framework\View\Asset\PreProcessor\ChainFactoryInterface;
 use Magento\Framework\View\Design\FileResolution\Fallback\Resolver\Simple;
 
 /**
@@ -53,7 +53,7 @@ class Source
     private $themeList;
 
     /**
-     * @var ChainFactory
+     * @var ChainFactoryInterface
      */
     private $chainFactory;
 
@@ -63,7 +63,7 @@ class Source
      * @param PreProcessor\Pool $preProcessorPool
      * @param \Magento\Framework\View\Design\FileResolution\Fallback\StaticFile $fallback
      * @param \Magento\Framework\View\Design\Theme\ListInterface $themeList
-     * @param ChainFactory $chainFactory
+     * @param ChainFactoryInterface $chainFactory
      */
     public function __construct(
         PreProcessor\Cache $cache,
@@ -71,7 +71,7 @@ class Source
         PreProcessor\Pool $preProcessorPool,
         \Magento\Framework\View\Design\FileResolution\Fallback\StaticFile $fallback,
         \Magento\Framework\View\Design\Theme\ListInterface $themeList,
-        ChainFactory $chainFactory
+        ChainFactoryInterface $chainFactory
     ) {
         $this->cache = $cache;
         $this->filesystem = $filesystem;
diff --git a/lib/internal/Magento/Framework/View/Test/Unit/Asset/SourceTest.php b/lib/internal/Magento/Framework/View/Test/Unit/Asset/SourceTest.php
index cd102c0503e22dd0fb91d3694f34bdcc300b9435..3d5a2b950638d231e5833a845ec8848ba08d9057 100644
--- a/lib/internal/Magento/Framework/View/Test/Unit/Asset/SourceTest.php
+++ b/lib/internal/Magento/Framework/View/Test/Unit/Asset/SourceTest.php
@@ -10,7 +10,7 @@ namespace Magento\Framework\View\Asset;
 
 use Magento\Framework\App\Filesystem\DirectoryList;
 use Magento\Framework\Filesystem\DriverPool;
-use Magento\Framework\View\Asset\PreProcessor\ChainFactory;
+use Magento\Framework\View\Asset\PreProcessor\ChainFactoryInterface;
 use Magento\Framework\View\Asset\PreProcessor\Chain;
 
 /**
@@ -64,7 +64,7 @@ class SourceTest extends \PHPUnit_Framework_TestCase
     private $object;
 
     /**
-     * @var ChainFactory | \PHPUnit_Framework_MockObject_MockObject
+     * @var ChainFactoryInterface | \PHPUnit_Framework_MockObject_MockObject
      */
     private $chainFactory;
 
@@ -87,9 +87,7 @@ class SourceTest extends \PHPUnit_Framework_TestCase
         $this->theme = $this->getMockForAbstractClass('Magento\Framework\View\Design\ThemeInterface');
         /** @var \Magento\Framework\App\Config\ScopeConfigInterface $config */
 
-        $this->chainFactory = $this->getMockBuilder('Magento\Framework\View\Asset\PreProcessor\ChainFactory')
-            ->disableOriginalConstructor()
-            ->setMethods([])
+        $this->chainFactory = $this->getMockBuilder('Magento\Framework\View\Asset\PreProcessor\ChainFactoryInterface')
             ->getMock();
         $this->chain = $this->getMockBuilder('Magento\Framework\View\Asset\PreProcessor\Chain')
             ->disableOriginalConstructor()