diff --git a/app/code/Magento/Captcha/Block/CheckoutLayoutProcessor.php b/app/code/Magento/Captcha/Block/CheckoutLayoutProcessor.php
new file mode 100644
index 0000000000000..36c5df123a152
--- /dev/null
+++ b/app/code/Magento/Captcha/Block/CheckoutLayoutProcessor.php
@@ -0,0 +1,45 @@
+helper->getConfig('enable')) {
+ $captcha = [
+ 'component' => 'Magento_Captcha/js/view/checkout/loginCaptcha',
+ 'displayArea' => 'additional-login-form-fields',
+ 'formId' => 'user_login',
+ 'configSource' => 'checkoutConfig'
+ ];
+ $jsLayout['components']['checkout']['children']['authentication']['children']['captcha'] = $captcha;
+ $jsLayout['components']['checkout']['children']['steps']['children']['shipping-step']['children']
+ ['shippingAddress']['children']['customer-email']['children']['additional-login-form-fields']
+ ['children']['captcha'] = $captcha;
+ }
+ return $jsLayout;
+ }
+}
diff --git a/app/code/Magento/Captcha/Block/Customer/AuthenticationPopup/LayoutProcessor.php b/app/code/Magento/Captcha/Block/Customer/AuthenticationPopup/LayoutProcessor.php
new file mode 100644
index 0000000000000..927118fb8d1b3
--- /dev/null
+++ b/app/code/Magento/Captcha/Block/Customer/AuthenticationPopup/LayoutProcessor.php
@@ -0,0 +1,41 @@
+helper->getConfig('enable')) {
+ $jsLayout['components']['authenticationPopup']['children']['captcha'] = [
+ 'component' => 'Magento_Captcha/js/view/checkout/loginCaptcha',
+ 'displayArea' => 'additional-login-form-fields',
+ 'formId' => 'user_login',
+ 'configSource' => 'checkout'
+ ];
+ }
+ return $jsLayout;
+ }
+}
diff --git a/app/code/Magento/Captcha/etc/frontend/di.xml b/app/code/Magento/Captcha/etc/frontend/di.xml
index 6ecbb156b44f1..71987e5003afd 100644
--- a/app/code/Magento/Captcha/etc/frontend/di.xml
+++ b/app/code/Magento/Captcha/etc/frontend/di.xml
@@ -1,8 +1,8 @@
@@ -37,4 +37,18 @@
+
+
+
+ - Magento\Captcha\Block\CheckoutLayoutProcessor
+
+
+
+
+
+
+ - Magento\Captcha\Block\Customer\AuthenticationPopup\LayoutProcessor
+
+
+
diff --git a/app/code/Magento/Captcha/view/frontend/layout/checkout_index_index.xml b/app/code/Magento/Captcha/view/frontend/layout/checkout_index_index.xml
deleted file mode 100644
index 7180372f004e5..0000000000000
--- a/app/code/Magento/Captcha/view/frontend/layout/checkout_index_index.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
- Magento_Captcha/js/view/checkout/loginCaptcha
- - additional-login-form-fields
- - user_login
- - checkoutConfig
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Magento_Captcha/js/view/checkout/loginCaptcha
- - additional-login-form-fields
- - user_login
- - checkoutConfig
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/code/Magento/Captcha/view/frontend/layout/default.xml b/app/code/Magento/Captcha/view/frontend/layout/default.xml
deleted file mode 100644
index 5015d6b021cd9..0000000000000
--- a/app/code/Magento/Captcha/view/frontend/layout/default.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
- Magento_Captcha/js/view/checkout/loginCaptcha
- - additional-login-form-fields
- - user_login
- - checkout
-
-
-
-
-
-
-
-
-
diff --git a/app/code/Magento/Customer/Block/Account/AuthenticationPopup.php b/app/code/Magento/Customer/Block/Account/AuthenticationPopup.php
index fce84885d55f4..66e3d644a4f14 100644
--- a/app/code/Magento/Customer/Block/Account/AuthenticationPopup.php
+++ b/app/code/Magento/Customer/Block/Account/AuthenticationPopup.php
@@ -1,12 +1,15 @@
jsLayout = isset($data['jsLayout']) && is_array($data['jsLayout']) ? $data['jsLayout'] : [];
$this->serializer = $serializer ?: \Magento\Framework\App\ObjectManager::getInstance()
->get(\Magento\Framework\Serialize\Serializer\Json::class);
+ $this->layoutProcessors = $layoutProcessors;
}
/**
@@ -48,6 +59,9 @@ public function __construct(
*/
public function getJsLayout()
{
+ foreach ($this->layoutProcessors as $processor) {
+ $this->jsLayout = $processor->process($this->jsLayout);
+ }
return $this->serializer->serialize($this->jsLayout);
}
diff --git a/app/code/Magento/Customer/Model/Form.php b/app/code/Magento/Customer/Model/Form.php
index 807e684c1fab4..12aaaafd0628a 100644
--- a/app/code/Magento/Customer/Model/Form.php
+++ b/app/code/Magento/Customer/Model/Form.php
@@ -1,7 +1,7 @@