diff --git a/typo3/sysext/extbase/Classes/Mvc/Web/RequestBuilder.php b/typo3/sysext/extbase/Classes/Mvc/Web/RequestBuilder.php
index 8f68ce33df36ac4f86399550dd788b2c90cccc32..cd5c41f3e1079e29d3a07b1676754f4305260c52 100644
--- a/typo3/sysext/extbase/Classes/Mvc/Web/RequestBuilder.php
+++ b/typo3/sysext/extbase/Classes/Mvc/Web/RequestBuilder.php
@@ -27,7 +27,6 @@ use TYPO3\CMS\Extbase\Mvc\Exception as MvcException;
 use TYPO3\CMS\Extbase\Mvc\Exception\InvalidActionNameException;
 use TYPO3\CMS\Extbase\Mvc\Exception\InvalidControllerNameException;
 use TYPO3\CMS\Extbase\Mvc\Request;
-use TYPO3\CMS\Extbase\Object\ObjectManagerInterface;
 use TYPO3\CMS\Extbase\Service\EnvironmentService;
 use TYPO3\CMS\Extbase\Service\ExtensionService;
 
@@ -37,11 +36,6 @@ use TYPO3\CMS\Extbase\Service\ExtensionService;
  */
 class RequestBuilder implements SingletonInterface
 {
-    /**
-     * @var \TYPO3\CMS\Extbase\Object\ObjectManagerInterface
-     */
-    protected $objectManager;
-
     /**
      * This is a unique key for a plugin (not the extension key!)
      *
@@ -114,14 +108,6 @@ class RequestBuilder implements SingletonInterface
      */
     private $allowedControllerAliases = [];
 
-    /**
-     * @param \TYPO3\CMS\Extbase\Object\ObjectManagerInterface $objectManager
-     */
-    public function injectObjectManager(ObjectManagerInterface $objectManager)
-    {
-        $this->objectManager = $objectManager;
-    }
-
     /**
      * @param \TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface $configurationManager
      */
@@ -217,7 +203,7 @@ class RequestBuilder implements SingletonInterface
         }
 
         /** @var \TYPO3\CMS\Extbase\Mvc\Request $request */
-        $request = $this->objectManager->get(Request::class);
+        $request = GeneralUtility::makeInstance(Request::class);
         $request->setPluginName($this->pluginName);
         $request->setControllerExtensionName($this->extensionName);
         $request->setControllerAliasToClassNameMapping($this->controllerAliasToClassMapping);
diff --git a/typo3/sysext/fluid/Classes/Core/Widget/WidgetRequestBuilder.php b/typo3/sysext/fluid/Classes/Core/Widget/WidgetRequestBuilder.php
index f1e6a861bd05dc52365e1d693e5108df7a88f7f7..677c0c99b9b9d35efa427a6cffe2482ce0502b1c 100644
--- a/typo3/sysext/fluid/Classes/Core/Widget/WidgetRequestBuilder.php
+++ b/typo3/sysext/fluid/Classes/Core/Widget/WidgetRequestBuilder.php
@@ -61,7 +61,7 @@ class WidgetRequestBuilder extends RequestBuilder
         }
         $widgetContext = $this->ajaxWidgetContextHolder->get($rawGetArguments['fluid-widget-id']);
 
-        $request = $this->objectManager->get(WidgetRequest::class, $widgetContext->getControllerObjectName());
+        $request = GeneralUtility::makeInstance(WidgetRequest::class, $widgetContext->getControllerObjectName());
         $request->setRequestUri(GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL'));
         $request->setBaseUri($baseUri);
         $request->setMethod($_SERVER['REQUEST_METHOD'] ?? null);
diff --git a/typo3/sysext/fluid/Tests/Unit/Core/Widget/WidgetRequestBuilderTest.php b/typo3/sysext/fluid/Tests/Unit/Core/Widget/WidgetRequestBuilderTest.php
index 0956beb11eb8fde739daf46740bdcfe44e6e714d..dd156b85ff6cfbad273112641b0fb8f309208203 100644
--- a/typo3/sysext/fluid/Tests/Unit/Core/Widget/WidgetRequestBuilderTest.php
+++ b/typo3/sysext/fluid/Tests/Unit/Core/Widget/WidgetRequestBuilderTest.php
@@ -15,8 +15,8 @@
 
 namespace TYPO3\CMS\Fluid\Tests\Unit\Core\Widget;
 
+use Prophecy\Argument;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
-use TYPO3\CMS\Extbase\Object\ObjectManagerInterface;
 use TYPO3\CMS\Extbase\Service\EnvironmentService;
 use TYPO3\CMS\Fluid\Core\Widget\AjaxWidgetContextHolder;
 use TYPO3\CMS\Fluid\Core\Widget\WidgetContext;
@@ -34,40 +34,22 @@ class WidgetRequestBuilderTest extends UnitTestCase
      */
     protected $widgetRequestBuilder;
 
-    /**
-     * @var ObjectManagerInterface
-     */
-    protected $mockObjectManager;
-
-    /**
-     * @var WidgetRequest
-     */
-    protected $mockWidgetRequest;
-
-    /**
-     * @var AjaxWidgetContextHolder
-     */
-    protected $mockAjaxWidgetContextHolder;
-
-    /**
-     * @var WidgetContext
-     */
-    protected $mockWidgetContext;
-
     protected function setUp(): void
     {
         parent::setUp();
-        $this->widgetRequestBuilder = $this->getAccessibleMock(WidgetRequestBuilder::class, ['setArgumentsFromRawRequestData']);
-        $this->mockWidgetRequest = $this->createMock(WidgetRequest::class);
-        $this->mockObjectManager = $this->createMock(ObjectManagerInterface::class);
-        $this->mockObjectManager->expects(self::any())->method('get')->with(WidgetRequest::class)->willReturn($this->mockWidgetRequest);
-        $this->widgetRequestBuilder->_set('objectManager', $this->mockObjectManager);
-        $this->mockWidgetContext = $this->createMock(WidgetContext::class);
-        $this->mockAjaxWidgetContextHolder = $this->createMock(AjaxWidgetContextHolder::class);
-        $this->widgetRequestBuilder->injectAjaxWidgetContextHolder($this->mockAjaxWidgetContextHolder);
+
+        $mockWidgetContext = $this->createMock(WidgetContext::class);
+        $mockWidgetContext->method('getControllerObjectName')->willReturn('TYPO3\\CMS\\Core\\Controller\\FooController');
+
+        $ajaxWidgetContextHolderProphecy = $this->prophesize(AjaxWidgetContextHolder::class);
+        $ajaxWidgetContextHolderProphecy->get(Argument::cetera())->willReturn($mockWidgetContext);
+
         $environmentServiceMock = $this->createMock(EnvironmentService::class);
         $environmentServiceMock->expects(self::any())->method('isEnvironmentInFrontendMode')->willReturn(true);
         $environmentServiceMock->expects(self::any())->method('isEnvironmentInBackendMode')->willReturn(false);
+
+        $this->widgetRequestBuilder = new WidgetRequestBuilder();
+        $this->widgetRequestBuilder->injectAjaxWidgetContextHolder($ajaxWidgetContextHolderProphecy->reveal());
         $this->widgetRequestBuilder->injectEnvironmentService($environmentServiceMock);
     }
 
@@ -76,16 +58,6 @@ class WidgetRequestBuilderTest extends UnitTestCase
      */
     public function buildThrowsIfNoFluidWidgetIdWasSet()
     {
-        $_SERVER = [
-            'REMOTE_ADDR' => 'foo',
-            'SSL_SESSION_ID' => 'foo',
-            'REQUEST_URI' => 'foo',
-            'ORIG_SCRIPT_NAME' => 'foo',
-            'REQUEST_METHOD' => 'foo'
-        ];
-        $_GET = [
-            'not-the-fluid-widget-id' => 'foo'
-        ];
         $this->expectException(\InvalidArgumentException::class);
         $this->expectExceptionCode(1521190675);
         $this->widgetRequestBuilder->build();
@@ -97,19 +69,17 @@ class WidgetRequestBuilderTest extends UnitTestCase
     public function buildSetsRequestUri()
     {
         $_SERVER = [
-            'REMOTE_ADDR' => 'foo',
-            'SSL_SESSION_ID' => 'foo',
-            'REQUEST_URI' => 'foo',
-            'ORIG_SCRIPT_NAME' => 'foo',
-            'REQUEST_METHOD' => 'foo'
+            'REQUEST_METHOD' => 'GET'
         ];
         $_GET = [
             'fluid-widget-id' => 'foo'
         ];
         $requestUri = GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL');
-        $this->mockAjaxWidgetContextHolder->expects(self::once())->method('get')->willReturn($this->mockWidgetContext);
-        $this->mockWidgetRequest->expects(self::once())->method('setRequestURI')->with($requestUri);
-        $this->widgetRequestBuilder->build();
+        /** @var WidgetRequest $request */
+        $request = $this->widgetRequestBuilder->build();
+
+        self::assertInstanceOf(WidgetRequest::class, $request);
+        self::assertSame($requestUri, $request->getRequestUri());
     }
 
     /**
@@ -118,19 +88,17 @@ class WidgetRequestBuilderTest extends UnitTestCase
     public function buildSetsBaseUri()
     {
         $_SERVER = [
-            'REMOTE_ADDR' => 'foo',
-            'SSL_SESSION_ID' => 'foo',
-            'REQUEST_URI' => 'foo',
-            'ORIG_SCRIPT_NAME' => 'foo',
-            'REQUEST_METHOD' => 'foo'
+            'REQUEST_METHOD' => 'GET'
         ];
         $_GET = [
             'fluid-widget-id' => 'foo'
         ];
         $baseUri = GeneralUtility::getIndpEnv('TYPO3_SITE_URL');
-        $this->mockAjaxWidgetContextHolder->expects(self::once())->method('get')->willReturn($this->mockWidgetContext);
-        $this->mockWidgetRequest->expects(self::once())->method('setBaseURI')->with($baseUri);
-        $this->widgetRequestBuilder->build();
+        /** @var WidgetRequest $request */
+        $request = $this->widgetRequestBuilder->build();
+
+        self::assertInstanceOf(WidgetRequest::class, $request);
+        self::assertSame($baseUri, $request->getBaseUri());
     }
 
     /**
@@ -139,18 +107,16 @@ class WidgetRequestBuilderTest extends UnitTestCase
     public function buildSetsRequestMethod()
     {
         $_SERVER = [
-            'REMOTE_ADDR' => 'foo',
-            'SSL_SESSION_ID' => 'foo',
-            'REQUEST_URI' => 'foo',
-            'ORIG_SCRIPT_NAME' => 'foo',
             'REQUEST_METHOD' => 'POST'
         ];
         $_GET = [
             'fluid-widget-id' => 'foo'
         ];
-        $this->mockAjaxWidgetContextHolder->expects(self::once())->method('get')->willReturn($this->mockWidgetContext);
-        $this->mockWidgetRequest->expects(self::once())->method('setMethod')->with('POST');
-        $this->widgetRequestBuilder->build();
+        /** @var WidgetRequest $request */
+        $request = $this->widgetRequestBuilder->build();
+
+        self::assertInstanceOf(WidgetRequest::class, $request);
+        self::assertSame('POST', $request->getMethod());
     }
 
     /**
@@ -159,10 +125,6 @@ class WidgetRequestBuilderTest extends UnitTestCase
     public function buildSetsPostArgumentsFromRequest()
     {
         $_SERVER = [
-            'REMOTE_ADDR' => 'foo',
-            'SSL_SESSION_ID' => 'foo',
-            'REQUEST_URI' => 'foo',
-            'ORIG_SCRIPT_NAME' => 'foo',
             'REQUEST_METHOD' => 'POST'
         ];
         $_GET = [
@@ -172,9 +134,11 @@ class WidgetRequestBuilderTest extends UnitTestCase
         $_POST = [
             'post' => 'bar'
         ];
-        $this->mockAjaxWidgetContextHolder->expects(self::once())->method('get')->willReturn($this->mockWidgetContext);
-        $this->mockWidgetRequest->expects(self::once())->method('setArguments')->with($_POST);
-        $this->widgetRequestBuilder->build();
+        /** @var WidgetRequest $request */
+        $request = $this->widgetRequestBuilder->build();
+
+        self::assertInstanceOf(WidgetRequest::class, $request);
+        self::assertSame($_POST, $request->getArguments());
     }
 
     /**
@@ -183,10 +147,6 @@ class WidgetRequestBuilderTest extends UnitTestCase
     public function buildSetsGetArgumentsFromRequest()
     {
         $_SERVER = [
-            'REMOTE_ADDR' => 'foo',
-            'SSL_SESSION_ID' => 'foo',
-            'REQUEST_URI' => 'foo',
-            'ORIG_SCRIPT_NAME' => 'foo',
             'REQUEST_METHOD' => 'GET'
         ];
         $_GET = [
@@ -196,9 +156,11 @@ class WidgetRequestBuilderTest extends UnitTestCase
         $_POST = [
             'post' => 'bar'
         ];
-        $this->mockAjaxWidgetContextHolder->expects(self::once())->method('get')->willReturn($this->mockWidgetContext);
-        $this->mockWidgetRequest->expects(self::once())->method('setArguments')->with($_GET);
-        $this->widgetRequestBuilder->build();
+        /** @var WidgetRequest $request */
+        $request = $this->widgetRequestBuilder->build();
+
+        self::assertInstanceOf(WidgetRequest::class, $request);
+        self::assertSame($_GET, $request->getArguments());
     }
 
     /**
@@ -207,19 +169,17 @@ class WidgetRequestBuilderTest extends UnitTestCase
     public function buildSetsControllerActionNameFromGetArguments()
     {
         $_SERVER = [
-            'REMOTE_ADDR' => 'foo',
-            'SSL_SESSION_ID' => 'foo',
-            'REQUEST_URI' => 'foo',
-            'ORIG_SCRIPT_NAME' => 'foo',
-            'REQUEST_METHOD' => 'foo'
+            'REQUEST_METHOD' => 'GET'
         ];
         $_GET = [
             'action' => 'myAction',
             'fluid-widget-id' => 'foo'
         ];
-        $this->mockAjaxWidgetContextHolder->expects(self::once())->method('get')->willReturn($this->mockWidgetContext);
-        $this->mockWidgetRequest->expects(self::once())->method('setControllerActionName')->with('myAction');
-        $this->widgetRequestBuilder->build();
+        /** @var WidgetRequest $request */
+        $request = $this->widgetRequestBuilder->build();
+
+        self::assertInstanceOf(WidgetRequest::class, $request);
+        self::assertSame('myAction', $request->getControllerActionName());
     }
 
     /**
@@ -228,39 +188,16 @@ class WidgetRequestBuilderTest extends UnitTestCase
     public function buildSetsWidgetContext()
     {
         $_SERVER = [
-            'REMOTE_ADDR' => 'foo',
-            'SSL_SESSION_ID' => 'foo',
-            'REQUEST_URI' => 'foo',
-            'ORIG_SCRIPT_NAME' => 'foo',
-            'REQUEST_METHOD' => 'foo'
+            'REQUEST_METHOD' => 'GET'
         ];
         $_GET = [
             'fluid-widget-id' => '123'
         ];
-        $this->mockAjaxWidgetContextHolder->expects(self::once())->method('get')->willReturn($this->mockWidgetContext);
-        $this->mockAjaxWidgetContextHolder->expects(self::once())->method('get')->with('123')->willReturn($this->mockWidgetContext);
-        $this->mockWidgetRequest->expects(self::once())->method('setWidgetContext')->with($this->mockWidgetContext);
-        $this->widgetRequestBuilder->build();
-    }
+        /** @var WidgetRequest $request */
+        $request = $this->widgetRequestBuilder->build();
 
-    /**
-     * @test
-     */
-    public function buildReturnsRequest()
-    {
-        $_SERVER = [
-            'REMOTE_ADDR' => 'foo',
-            'SSL_SESSION_ID' => 'foo',
-            'REQUEST_URI' => 'foo',
-            'ORIG_SCRIPT_NAME' => 'foo',
-            'REQUEST_METHOD' => 'foo'
-        ];
-        $_GET = [
-            'fluid-widget-id' => 'foo'
-        ];
-        $this->mockAjaxWidgetContextHolder->expects(self::once())->method('get')->willReturn($this->mockWidgetContext);
-        $expected = $this->mockWidgetRequest;
-        $actual = $this->widgetRequestBuilder->build();
-        self::assertSame($expected, $actual);
+        self::assertInstanceOf(WidgetRequest::class, $request);
+        self::assertSame('TYPO3\\CMS\\Core\\Controller\\FooController', $request->getControllerObjectName());
+        self::assertSame('[]', $request->getArgumentPrefix());
     }
 }